之前没有接触过flash的开发,原先都不知道在flash professtional cs6制作好的UI,AS3脚本怎么个调用方法。学习后得知道两种方法:
1. flash cs6将整个fla发布为swc, 借助flashdevelop直接编译时使用;对象直接编译到swf里。
2. flash cs6发布为swf,AS3通过loader运行时加载。
第一种使用比较直接,我记录一下第二种的方法。
首先flash cs6把fla发布成swf。
AS通过Loader加载swf,在某个继承自Sprite的类里:
public class Main extends Sprite
{
private var city:Sprite;
private var tf:TextField;
public function Main():void
{
if (stage)
init();
else
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
tf = new TextField;
tf.text = "init text";
addChild(tf);
var helloLoader:Loader = new Loader;
var url:URLRequest = new URLRequest("abc.swf");
helloLoader.load(url);
helloLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
}
private function onComplete(event:Event):void
{
city = event.target.content as Sprite; // flash cs制作的根容器
addChild(city);
var btn:DisplayObject = city.getChildByName("btn_ok"); // 容器上的一个button,根据实例名去取这个对象
if (btn != null)
btn.addEventListener(MouseEvent.CLICK, onClick);
}
private function onClick(event:MouseEvent):void
{
tf.text = "click btn";
}
看一下onComplete,主要在于取根容器和根据名字取某个元件的方法。
这个东西不知道的时候很迷惑,知道后,感觉非常自然简单了。