我在我的flex应用程序的mxml中有一个SWFLoader。
<mx:SWFLoader id="swfPreview"
width="100%" height="90%" y="20" visible="false"/>
现在点击一下按钮,我在动作脚本中执行以下代码。
swfPreview.addEventListener(Event.COMPLETE,loadComplete);
swfPreview.scaleContent = true;
swfPreview.load(url);
“url”是互联网上存在的swf的网址(这个网域可能相同或不同,我在两种情况下都会遇到问题)
现在,在loadComplete
上,我执行以下操作:
private function loadComplete(event:Event):void
{
Alert.show("Load complete");
swfPreview.removeEventListener(Event.COMPLETE,loadComplete);
swfPreview.visible = true;
}
我收到警告弹出窗口(即调用了loadComplete),但没有加载任何swf,无法查看任何内容。可能是什么问题,我错过了什么或某些安全问题?我还尝试了图像控制来加载swf。此外,swf是转换为swf的pdf文件,所以这可能是flash和flex之间不同帧速率的问题吗? 任何帮助将不胜感激。
由于
答案 0 :(得分:0)
我从未专门使用过SWFLoader,但听起来你没有将加载的对象添加到显示器中。如果SWFLoader的行为至少与flash.display.Loader相似,则必须在Event.COMPLETE上获取该对象并将其添加到显示中。类似的东西:
loader = new Loader();
var req:URLRequest = new URLRequest("http://example.com/your.swf");
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
loader.load(req);
private function onComplete(e:Event):void {
addChild(e.target.loader.content);
}
对于使用loader的完整示例,您可以检查Vimeo播放器API,它将视频播放器SWF从其网站加载到您的应用中: