0

在尝试了我遇到的几乎所有示例之后,我遇到了障碍。我希望这里有人可以帮助我。

简而言之,我有一个 Flex 父级,它嵌入了一个 Flash SWF 文件,该文件有一个需要从 Flex 访问的方法。

MXML:

    <mx:states>

        <mx:State name="intro">
            <mx:AddChild position="lastChild">
                <mx:SWFLoader x="285" y="170" id="introSwfLoader" source="@Embed(source='Introduction.swf')" />
            </mx:AddChild>
        </mx:State> 

我尝试将 SWFLoader 强输入为 MovieClip 来控制它,但没有运气。

闪光:

function reset(){

    // some code
}

有没有人有什么建议?基本上我需要做的就是在 mx:State 更改时重置/重新加载 Flash SWF。

谢谢你的时间..

4

1 回答 1

1

你不应该需要LocalConnection。

试试这个 - 这不是最优雅的解决方案,但这似乎有效 - 在您的 Flex 应用程序中的某些方法中,您可以通过以下方式访问加载的 SWF 作为 MovieClip:

function accessLoadedSWFAsMovieClip():void{
    var container:DisplayObjectContainer = introSwfLoader.content as DisplayObjectContainer; //gets the SWFLoader content as a DisplayObjectContainer
    var loader:Loader  = container.getChildAt (0) as Loader; // gets the first child of the DisplayObjectContainer, which is a Loader (not sure why)
    var mc:MovieClip = loader.content as MovieClip; //access to the main timeline of the Loader's content (cast as a MovieClip, because we can then call ambiguous functions with no errors. I assume if your loaded swf had a document class you could cast it as the document class here)
    mc.reset(); // call the function inside our loaded SWF
}
于 2011-06-24T17:08:33.833 回答