var file:FileReference=new FileReference();
然后
trace (file.data);
工作正常
之后我试图将收到的数据嵌入到场景中但没有成功
var ExtSWF:MovieClip;
ExtSWF = file.data.readObject() as MovieClip;
trace(ExtSWF);
返回null
但如果我将其作为远程文件加载Loader
- 它可以正常工作
var ldr:Loader = new Loader();
ldr.load(new URLRequest("ext.swf"));
......
ExtSWF = MovieClip(ldr.contentLoaderInfo.content);
是否可以只上传swf文件并将其嵌入到场景中,或者Loader
类是唯一可能实现此目标的方法?
答案 0 :(得分:1)
Loader类用于加载SWF文件或图像(JPG,PNG或GIF) 文件。
但是"加载"真正含义" 解码格式"用于显示。因此,使用file.data
将Loader.loadbytes
字节传递给Loader,以便解码为有效的MovieClip对象。
尝试
//var ExtSWF : MovieClip = new MovieClip;
//ExtSWF = file.data.readObject() as MovieClip;
var ldr : Loader = new Loader(); //# declare outside of any functions (make as public var)
ldr.loadBytes(file.data); //#use Loader to auto-decode bytes of SWF
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, on_swfLoaded );
还有解码完成的处理函数......
function on_swfLoaded (evt:Event) : void
{
var ExtSWF : MovieClip = new MovieClip;
ldr.contentLoaderInfo.removeEventListener(Event.COMPLETE, on_swfLoaded );
ExtSWF = ldr.content as MovieClip;
trace(ExtSWF);
ExtSWF.x =50; ExtSWF.y = 50; addChild(ExtSWF);
}