FLex: выгрузить SWF-файл в SWFLoader - PullRequest
2 голосов
/ 10 марта 2011

В Flex 3 у меня есть SWFLoader:

<mx:SWFLoader id="player" source="http://youtube.com/v/..." />

и через некоторое время я вызываю player.unloadAndStop().И я всегда получаю эту ошибку:

ReferenceError: Error #1056: Cannot create property __tweenLite_mc on _swftest_mx_managers_SystemManager.

Что это значит и как этого избежать?

UPD: В AIR 2 такой проблемы нет

1 Ответ

0 голосов
/ 15 марта 2011

Может, попробовать класс Loader?Я не уверен, поможет ли это, но я делаю всю свою загрузку через ActionScript.Вообще говоря, я делаю "тяжелый вес" программирования / логики / Cotrol вещи в ActionScript и оставляю Flex для более упрощенного кода макета.То есть, flex расставляет все по местам, а ActionScript контролирует все это.При загрузке клипов в нашем проекте Flex 3 у меня есть управляющий код в виде:

import flash.display.Loader;

private var loader:Loader;
public function init() {
    loader = new Loader();              
    loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadFailed);
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadCompleted);
}

с вызовами таких вещей, как:

//here, pop returns a string like "/path/to/movie.swf"
loader.load(new URLRequest(clipsToPlay.pop())); 
...
loader.unload();

, содержащимися в таких функциях, как:

    private function loadNextClip():void {
        if(clipsToPlay.length == 0) {
           dispatchEvent(new PlayBackCompleteEvent(PlaybackCompleteEvent.ALL));
           return;
        }
        loader.load(new URLRequest(clipsToPlay.pop()));
    }

    private function loadCompleted(event:Event):void {
        currentClip = event.target.content as MovieClip;
        loader.unload();
        displayClip();
    }

    private function displayClip():void {
        applyEffects();
        currentClip.addEventListener(Event.ENTER_FRAME, monitorForCompletion);
        addChild(currentClip);          
    }

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

РЕДАКТИРОВАТЬ:Я только что посмотрел, и у mx.controls.SWFLoader и flash.display.Loader очень похожая функциональность.Я бы попробовал использовать Loader, как описано выше, и посмотреть, решит ли он проблему.Вы, вероятно, могли бы также инициализировать загрузчик через MXML, но я бы не рекомендовал его, поскольку это не визуальный компонент, я думаю, лучше разрешить MXML обрабатывать визуальные вещи, тогда как ActionScript обрабатывает логические вещи.

...