在动画CC中创建JS JavasScript框架脚本

CreateJS JavasScript Frame Scripting in Animate CC

本文关键字:JavasScript 框架 脚本 JS 创建 动画 CC      更新时间:2023-09-26

我曾经是一名Flash开发人员,我正在努力理解ActionScript和新的CreateJS平台之间的差异。我发现在谷歌上很难找到答案,所以我想我会在这里提问,希望专家能给我一个可靠的解释。非常感谢您的帮助。

基本上,我很难理解时间线范围的复杂性,以及舞台上的电影片段如何在CreateJS中相互作用。我也很难理解时间轴上各帧之间的范围是如何工作的。

在AS3中,你基本上可以把一个符号放在舞台上,然后在主时间线上引用它,如下所示:

if(ball_mc.aVariable == true) ball_mc.gotoAndPlay(2);

然而,在新的HTML5画布动画CC中,这似乎不再有效。我得到了很多"未定义"。我还发现每一帧都被锁定在范围内。如果我在ball_mc的第1帧上创建一个变量,然后试图在第2帧上引用它,我会得到一个错误,除非我做这样的事情:

var aMovieClip = this.aMovieClip;

在ActionScript中,每个嵌套的时间线都有自己的作用域。如果在第一帧上创建了一个变量,那么该变量将在整个时间轴上保持不变。我发现很难相信没有简单的方法可以在时间线上扩展变量或函数的范围。这就是Flash在添加时间线上的交互性时轻而易举的原因。

我试图用一个函数做同样的事情,但我得到了这样的错误:

createjs-2015.11.26.min.js:12未捕获类型错误:无法读取未定义的属性"handleEvent"

我想了解如何在一个时间线上有两个电影片段,并让它们以类似于AS3:的方式相互作用

MovieClip(parent).ball_mc.colour = 'red';

或。。

this.addEventListener(MOUSE_EVENT.CLICK, callParentTimeline);
function callParentTimeline():void{
MovieClip(parent).gotoAndPlay(5);
}

等等。等等。

this.parent对我不起作用。从主时间线引用movieclip不允许我沿着它的时间线访问它的框架变量。

我发现这令人困惑和沮丧,因为当我在谷歌上搜索这些问题时,我发现很多文章都说"只要说this.variable,它就会起作用"或"只需使用parent.ball_mc来调用根",但我发现这些建议似乎都不起作用。

你们谁能向我解释一下吗?

谢谢!

@Cmaxster您始终可以通过exportRoot访问舞台上的MovieClips。例如:如果你有一个实例名为myBall的球,它可以像这个var myBall = exportRoot.myBall; 一样被引用

如果你想发布一个有更多特定问题的FLA,我可以看看:)