创建JS播放儿童电影剪辑时间线

CreateJS play child movieClip timeline

本文关键字:时间线 儿童电影 JS 播放 创建      更新时间:2023-09-26

我真的很想喜欢CreateJS,但令人愤怒的是,AS3中的基本东西不起作用或无法正常工作。 下面是一个快速示例:

我在MovieClip中有一个简单的动画,一个从右向左移动的圆圈。 我有一个

this.stop();

在第一帧上,然后

this.stop(); 

在最后一帧上。

我将那个mc拖到主时间线,给它一个"main_mc"的实例,然后创建一个名为init()的函数

function init()
{
  this.main_mc.play();
}
init();

这是我得到的错误:

捕获的类型错误:无法读取未定义的属性"play"

有什么想法吗?

@thatkidrich 问题是"this"的作用域为窗口,而你的"main_mc"不存在于窗口对象上。要引用您的实例,您必须遍历"exportRoot"对象,该对象将为您提供对当前在 FLA 阶段拥有的所有实例的引用。我也不建议在 FLA 中编写 JS 代码,我只会使用导出的 JS 来构建资产。在您的情况下,我会通过 HTML 中的外部代码控制"main_mc"。

例:

function init() {
 canvas = document.getElementById("canvas");
 exportRoot = new lib.Balltimeline();
 stage = new createjs.Stage(canvas);
 stage.addChild(exportRoot);
 stage.update();
 //This will give you a reference to your MC on stage.
 var mc = exportRoot.main_mc;
 mc.play();
 createjs.Ticker.setFPS(lib.properties.fps);
 createjs.Ticker.addEventListener("tick", stage);

}