一直以来,如果需要加载另外一个SWF,并与之互动的话,都是用Adobe文档中的
Loader.contentLoaderInfo.applicationDomain.getDefinition(className)
今天猛然发现,原来Loader加载完成后,是可以直接调用原SWF中的方法以及舞台上的对象:
1.新建一个target.fla,第一帧代码如下
function method():void{
trace("Function on ActionSctipt");
}
2.在target.fla的舞台上放置一个文本,取名为textOnStage
3.编译好target.swf文件
4.加载target的SWF使用下面的代码作为文档类
package
{
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLRequest;
public class T1 extends Sprite
{
private var loader:Loader = new Loader();
public function T1()
{
var req:URLRequest = new URLRequest("target.swf");
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
loader.load(req);
}
public function onComplete(e:Event):void{
Object(loader.content).method();//如果能确定loader.content类型的话,可以直接用类型代替Object,如MovieClip(loader.content)
trace(Object(loader.content).textOnStage.text);
}
}
}