0

我的 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 的 url(这个域可以相同或不同,我在这两种情况下都会遇到问题)

现在,在 上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 之间不同帧速率的问题吗?任何帮助将不胜感激。

谢谢

4

1 回答 1

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);
}

有关使用加载程序的完整示例,您可以查看 Vimeo 播放器 API,该 API 将他们的视频播放器 SWF 从他们的站点加载到您的应用程序中:

http://www.vimeo.com/api/docs/moogaloop

于 2010-05-05T19:17:35.833 回答