2010-09-23 13 views
0

Je chargé un swf dans un autre swf comme siDéchargement swf du fichier SWF parent

correctURL étant ma variable swf

fonction startLoad() {

var mRequest:URLRequest = new URLRequest(correctURL.toString()); 
mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler); 
mLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressHandler); 
mLoader.load(mRequest); 

}

fonction onCompleteHandler (loadEvent: Evénement) {

var gmc:MovieClip = new MovieClip(); 
    gmc.x = 266; 
    gmc.y = 67; 
    addChild(gmc); 
    gmc.addChild(loadEvent.currentTarget.loader); 

}

Mais je me bats pour décharger la fichue chose quand je veux le remplacer par un autre swf.

Le code que je suis en train est ce

closeAllStreams fonction (e: Event) {

e.currentTarget.loader.unloadAndStop(); 
    gmc = null; 
    gmc.removeChild(e.currentTarget.loader); 
    trace("unloaded"); 

}

mLoader.contentLoaderInfo.addEventListener (Event.UNLOAD, closeAllStreams); Je n'ai tout simplement pas de chance car je peux encore entendre le vieux son par-dessus.

Je ne veux pas non plus accéder aux variables chargées du swf, sinon je tricherais haha.

Merci

Répondre

0

Eh bien, unloadAndStop() fonctionnera avec seulement Flash Player 10 et vous ne besoin d'assigner une référence null à loader, cette méthode se fait elle-même. Votre méthode closeAllStreams sera appelée après cette instruction

e.currentTarget.loader.unloadAndStop(); OU e.currentTarget.loader.unload(); Il est donc préférable de ne pas l'appeler dans le répartiteur d'événements de déchargement, par exemple dans closeAllStreams dans votre cas.

+0

Vous êtes une star, merci :) – Hornerlas

0

Eh bien, c'est un problème quand même:

gmc = null; 
gmc.removeChild(e.currentTarget.loader); 

Ai-je besoin d'expliquer pourquoi

+0

C'est généralement l'idée avec stackoverfow ouais;), à moins que ce soit devenu pointoutheissueanddontsolveit.com ?? :) – Hornerlas

Questions connexes