简而言之,我有一个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。
谢谢你的时间..
答案 0 :(得分: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
}