2016-03-01 2 views
0

La classe MovieClip du module EaselJS possède une propriété de boucle qui peut être définie sur true ou false, ce qui provoque la lecture infinie ou unique du clip. J'ai besoin de lire un clip (bannière publicitaire) trois fois. Comment cela peut-il être fait?Comment lire un MovieClip x fois

C'est la fonction init:

<script> 
 
var canvas, stage, exportRoot; 
 
function init() { 
 
\t // --- write your JS code here --- 
 
\t 
 
\t canvas = document.getElementById("canvas"); 
 
\t images = images||{}; 
 

 
\t var loader = new createjs.LoadQueue(false); 
 
\t loader.addEventListener("fileload", handleFileLoad); 
 
\t loader.addEventListener("complete", handleComplete); 
 
\t loader.loadManifest(lib.properties.manifest); 
 
} 
 

 
function handleFileLoad(evt) { 
 
\t if (evt.item.type == "image") { images[evt.item.id] = evt.result; } 
 
} 
 

 
function handleComplete(evt) { 
 
\t exportRoot = new lib.banner_728x90(); 
 

 
\t stage = new createjs.Stage(canvas); 
 
\t stage.addChild(exportRoot); 
 
\t stage.update(); 
 
\t stage.enableMouseOver(); 
 

 
\t createjs.Ticker.setFPS(lib.properties.fps); 
 
\t createjs.Ticker.addEventListener("tick", stage); 
 
} 
 

 
</script>

Répondre

2

Il n'y a pas de support de comptage en boucle, ni les événements de MovieClip indiquant quand une fin de l'animation. Ce n'est pas une mauvaise idée, n'hésitez pas à vous connecter un bug dans GitHub.

Une solution que vous pouvez utiliser serait envoyer des événements personnalisés à partir d'un script de scénario Animer:

this.dispatchEvent("walkend"); 

Ensuite, vous pouvez écouter l'événement, et gérer vous-même.

var loopCount = 0; 
exportRoot.myClip.on("walkend", function(event) { 
    loopCount++; 
    if (loopCount > 2) { 
     doSomething(); 
     event.remove(); // No longer get this event. 
    } 
}); 

Hope that helps.

+0

Merci Lanny. Votre réponse a contribué à trouver la solution. Un Tween a un événement complet. Je l'ai utilisé à partir de la dernière interpolation du clip pour déclencher une fonction similaire à celle de votre réponse. – DevR