开发者

FLex : unload swf file in SWFLoader

In Flex 3 I have a SWFLoa开发者_开发问答der:

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

and after some time I invoke player.unloadAndStop(). And I always get this error:

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

What does it mean and how to avoid this?

UPD: AIR 2 doesn't have this problem


Maybe try the Loader class? I'm not sure if it will help but I do all my loading via ActionScript. Generally speaking, I do "heavyWeight" programming/logic/cotrol stuff in ActionScript and leave Flex for more simplistic layout code. That is, flex puts things in place and actionscript controls it all. When loading clips in our Flex 3 project, I have control code along the lines of:

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);
}

with calls to things like:

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

contained in functions like:

    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);          
    }

I'm not sure if Loader can be used instead of SWFLoader but if so I hope that helps you or someone else, in some way...

EDIT:
I just looked it up and mx.controls.SWFLoader and flash.display.Loader have very similar functionality. I'd try using Loader, as prescribed above, and see if it fixes the problem. You could probably initialize the loader via MXML, too, but I wouldn't recommend it since it's not a visual component, I think it's better to let MXML handle visual things while ActionScript handles logical things.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜