Flex: как получить доступ к видеоклипам в импортированном SWF - PullRequest
1 голос
/ 06 мая 2010

Я импортировал SWF (не созданный с помощью Flex, то есть не-фреймворк) в приложение Flex. После загрузки я хотел бы получить доступ к видеоклипам в этом импортированном SWF. Глядя на документы Adobe (http://livedocs.adobe.com/flex/3/html/help.html?content=controls_15.html),, это кажется простым, однако их примеры находятся между приложением Flex и импортированным swf (созданным с помощью Flex).

Как и их пример, я пытаюсь использовать SystemManager для доступа к импортированному содержимому SWF; однако я получаю следующую ошибку:

Ошибка типа: ошибка # 1034: сбой приведения типа: невозможно преобразовать flash.display :: MovieClip @ 58ca241 в mx.managers.SystemManager.

Эта ошибка возникает из-за того, что я импортирую не-фреймворк swf в фреймворк swf? Заранее благодарим за любую помощь.

Код:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<mx:SWFLoader source="assets/test.swf"  id="loader"  creationComplete="swfLoaded()" /> 

<mx:Script>
 <![CDATA[

  import mx.managers.SystemManager;

  [Bindable]
        public var loadedSM:SystemManager;


  private function swfLoaded():void 
  { 
   loadedSM = SystemManager(loader.content);
  } 
 ]]>


</mx:Script>
</mx:Application>

Ответы [ 2 ]

0 голосов
/ 06 мая 2010

Вы можете обращаться к ним напрямую, используя их имена экземпляров.

private function swfLoaded():void {
    var clip1:MovieClip = MovieClip(loader.content.myClip1);
    var clip2:MovieClip = MovieClip(loader.content.myClip2);
    // ...
}
0 голосов
/ 06 мая 2010

Был ли test.swf создан с более ранней версией AS? Согласно эти swfs, опубликованные для AS 1.0 / 2.0, работают на виртуальной машине AS, отличной от AS 3.

Родительский SWF-файл AVM2 не будет иметь доступ к свойствам, методам или объекты загруженного AVM1Movie объект.

...