Bonjour,
Ma question semble avoir été posée à plusieurs reprises et sous diverses formes, mais je suis surpris de ne trouver de vraie solution sur aucun forum.
Mon problème est simple : je charge dans un flash des
.swf externes. Ils sont censés être lus à la suite, je devrais donc créer un évènement pour détecter la fin de la lecture d'un flash, et ouvrir le suivant. Seulement sur le composant utilisé (Loader),
aucun évènement ne permet de détecter la fin de la lecture. La fin du chargement, pas de problème, mais ce n'est pas du tout le but !
J'ai essayé de trouver une solution passant par un test sur
currentframe et
totalframes, mais impossible de cibler un objet qui ait les bonnes propriétés, je ne tombe que sur des objets ayant 1 seule frame, l'évènement se déclenche donc de façon intempestive.
Détecter la fin d'un flash, ça ne devrait pourtant pas être si compliqué !
Je précise que je n'ai aucune possibilité de modifier les .swf chargés, fournis tels quels par le client. Si je retire l'évènement la 1ère vidéo marche bien, le problème n'est vraisemblablement pas dans la syntaxe.
Mon code est probablement bien plus lourd que nécessaire car j'ai pas mal testé :
import flash.external.ExternalInterface;
import flash.display.*;
import flash.net.URLRequest;
import flash.events.*;
Security.allowDomain("localhost/spip2");
var tab_url = new Array('
[ Lien ] '
[ Lien ]var ldr:Loader = new Loader();
var ldra:Loader = new Loader();
var context = new LoaderContext();
var container:MovieClip = new MovieClip();
addChild(container);
function actionScriptFunction(taburl) {
var request:URLRequest = new URLRequest(taburl[0]);
ldr.contentLoaderInfo.addEventListener(Event.UNLOAD,termine);
ldr.load(request,context);
container.addChild(ldr);
function termine(pEvt:Event):void{
ldr.unload();
var request:URLRequest = new URLRequest(taburl[1]);
var context2 = new LoaderContext();
ldr.load(request,context2);
addChild(ldr);
}
}
actionScriptFunction(tab_url);
Si quelqu'un sait quel objet indique le nombre de frames écoulés, ou quel évènement utiliser (j'ai laissé le Event.UNLOAD mais ce n'est pas adapté), je lui en serais grandement reconnaissant !
Ehryx