如何播放MovieClip x次

时间:2016-03-01 06:01:53

标签: movieclip createjs easeljs

EaselJS模块中的MovieClip类有一个loop属性,可以设置为true或false,使影片剪辑无限播放或仅播放一次。 http://www.createjs.com/docs/easeljs/classes/MovieClip.html

我需要播放三次电影剪辑(横幅广告)。怎么办?

这是init函数:

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

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

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

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

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

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

</script>

1 个答案:

答案 0 :(得分:2)

目前没有循环计数支持,也没有来自MovieClip的任何事件表明动画何时结束。后者不是一个坏主意,请随时记录GitHub中的错误。

您可以使用的一种解决方案是从Animate中的时间轴脚本发送一些自定义事件:

this.dispatchEvent("walkend");

然后你可以听取这个事件,并自己处理。

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

希望有所帮助。