7月 162015
 

陌生的开始。那么,问题来了。

场景是这样的。在一个纯as编写的swf中,用Loader加载一个Flex工程的swf。当Event.COMPLETE事件抛出后。急切的想要访问Flex工程的swf里边的属性的时候,却发现给你的是空属性。

于是,就去找呀找原因。原来,Flex工程的swf被加载完成后,e.target得到只是SystemManger。然后等呀等,于是等到了e.target.application,这个时候就是我们急切需要的真的文档类。

Flex的初始化等过程,是通过事件来通知的。在Flex的Application类中,有

[Frame(factoryClass="mx.managers.SystemManager")]

Frame标签又将文档类指向了SystemManager。
Continue reading »

7月 112015
 

有感Flex的两帧构造,就特意查了下相关文章。那里是用到元标签Frame。网上的说法,是用Frame指定的类替换文档类,然后将文档类的内容放到第二帧。虽然是说放到第二帧,可还得去实例,去addchild等等。

记得,记得一定要用Flex SDK来编译,用AIR SDK编译会出现意想不到效果。Frame指定的类根本就进不去。


那如果Frame指定的类不是MovieClip会怎么样呢。。。如果是那样。那就是无法安放的青春啊。看下边具体代码。
Continue reading »

3月 062015
 

做flex项目时,对于flex组件的宽高,坐标,有时候会遇到取不正确的问题。像是被延迟后,才会得到正确的值。即使是Label也是

如果用同步异步的说法,想取到正确的值。就得到异步结束。

这样,就需要对对象进行侦听。在这里,Flex对应的有一个事件:FlexEvent.UPDATE_COMPLETE

打个比方。你创建一个Label,然后给它不断的填充text属性。然后再trace label的宽高。你会发现label的宽高有时候是不准确的。

这个时候,你对labe进行FlexEvent.UPDATE_COMPLETE侦听。在侦听器里完成label宽高的读取就是正确的。

这里只是一个例子。其他的组件也是。貌似都继承UIComponent的都有。

var label:Label = new Label();
label.addEventListener(FlexEvent.UPDATE_COMPLETE , labelUpdateCompleteHandler);
function labelUpdateCompleteHandler():void
{
      trace(label.width , label.height);
}

 Posted by at 下午12:50
网站地图