嵌入带有框架标签的 swf,并在 Flex 中对其进行控制



我正在尝试将带有时间轴中定义的一些帧标签的 swf 文件嵌入到我的 Flex 应用程序中:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="1000" height="563" creationComplete="doSomething()">
    <mx:Script>
        <![CDATA[
            private var movieClip:MovieClip;
            private function doSomething():void {
                movieClip = swfFile.content as MovieClip;
                movieClip.gotoAndPlay('playIntro');
                movieClip.addEventListener("swfFinished", doSomethingElse);
            }
            private function doSomethingElse():void {
                //
            }
        ]]>
    </mx:Script>
    <mx:SWFLoader id="swfFile" width="1000" height="563" source="@Embed(source='test.swf')" /> 
</mx:Application>

但是,我无法以这种方式控制 swf 时间线......是否可以嵌入 swf 文件并以我想要的方式控制它?

谢谢!

对此进行一些搜索似乎表明这是在嵌入 swf 时发生的。如果您可以侥幸不嵌入 swf,请这样做。

这是我找到的一个允许嵌入工作的解决方案:http://iamjosh.wordpress.com/2008/04/09/embedding-flash-in-flex/

我认为问题可能出在Flash Player的安全模型上,只是一种预感。它可能不允许与嵌入式 swf 进行这种类型的通信......但是你也许可以做一些类似Security.allowDomain("*")的事情(一个危险的捷径)。

但首先,请查看 allowDomain 的文档,因为文档建议您可以这样做:

Security.allowDomain(loader.contentLoaderInfo.url); // 'loader' is a SwfLoader

但我猜url在嵌入情况下可能为空:)

最新更新