将swf嵌入框架标签并在Flex中控制它

时间:2012-05-22 16:54:59

标签: flex flash embed

我正在尝试将带有时间轴中定义的一些帧标签的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文件并以我想要的方式控制它?

谢谢!

1 个答案:

答案 0 :(得分:0)

对此进行的一些搜索似乎表明嵌入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可能为空:)