我有两个文件:Main.swf和DataEnter.swf。每个都有一个文档类。我尝试在Main.swf中加载DataEnter.swf。意外的__Preloader__加载外部SWF与
Main.as
package
{
import flash.events.*;
import flash.display.MovieClip;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.display.Loader;
public class Main extends MovieClip
{
public function Main()
{
var loader: Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, DataEnter_loadComplete);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onError);
loader.load(new URLRequest('DataEnter.swf'));
}
function DataEnter_loadComplete(evt: Event):void
{
trace(evt.target.content); // DataEnter__Preloader__
var SWF = evt.target.content;
SWF.FooBar(); //Error #1069: Property FooBar not found on DataEnter__Preloader__ and there is no default value
}
}
}
DataEnter.as
package
{
import flash.display.Sprite;
public class DataEnter extends Sprite
{
private var _socketWorker:Foo;
public function setSocketWorker(sw:Foo)
{
_socketWorker = sw;
}
public function FooBar()
{
//do something
}
}
}
当发生事件装载机Event.COMPLETE在主类,则evt.target.content包含对象DataEnter_ 预加载器 _。 但它必须是“DataEnter”。
出了什么问题?如何调用加载类的方法FooBar?
看来,如果*在Flash文档的任何*符号设置为“导出到AS3的” Flash可以选择注入预加载到与文件输出任何SWF的第1帧。 – kpatelPro