Доступ к методу SWF из Flex - PullRequest
0 голосов
/ 24 июня 2011

Я попал в кирпичную стену после того, как попробовал почти каждый пример, который мне попался. Я надеялся, что кто-то здесь сможет мне помочь.

В двух словах, у меня есть родитель Flex, который встраивает SWF-файл Flash, у которого есть метод, к которому нужно обращаться из 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 в качестве мувиклипа, чтобы получить контроль над ним, но безуспешно.

Flash:

function reset(){

    // some code
}

У кого-нибудь есть предложения? По сути, все, что мне нужно сделать, это сбросить / перезагрузить Flash SWF при изменении mx: State.

Спасибо за ваше время ..

1 Ответ

1 голос
/ 24 июня 2011

Вам не нужно LocalConnection.

Попробуйте это - это не самое элегантное решение, но, похоже, это работает - в некотором методе в вашем приложении Flex вы можете получить доступ к загруженному SWF как мувиклипу таким образом:

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
}
...