动画CC - getChildByName画布与WebGL

时间:2016-02-29 15:04:33

标签: javascript flash adobe createjs

下午。我在舞台上有一个FLA,一个MovieClip - 剪辑在库中名为myThing,实例名称为myThing。在另一层,我有以下脚本:

this.myThing=this.getChildByName("myThing");
console.log(this.myThing);

当我在WebGL项目中运行它时,它按照我的预期工作并返回一个JS对象,但是当我在canvas项目中运行相同的东西时(我需要使用它) )它回来了null

最初,任何人都可以解释Adobe Animate CC中WebGL和画布项目之间的区别,以及如何获取子剪辑的引用来控制其时间轴?

除此之外,还有人能指出我在编写这些项目脚本方面的任何体面资源吗?似乎无论我搜索什么,我总是最终回到那个*!@%的兔子教程,设法将很少的信息塞进很多单词。

谢谢大家,我们非常感谢您的帮助:)

2 个答案:

答案 0 :(得分:0)

所以我是个笨蛋。

任何资产的name属性默认为null。这不是问题,因为一旦我意识到您可以致电getChildByName()this.someChild.someMethod()方法对我来说并不是必需的(至少对我而言)。

我迷上了错误的方法,因为它是我唯一能找到的例子。与AS3或甚至竞争的JS库(如Greensock

相比,我仍然发现文档非常粗略且不太有用

也不确定为什么我的第一种方法在WebGL中起作用而在画布中起作用。好吧,向上和向上......

答案 1 :(得分:0)

WebGL和HTML5 Canvas文档在Animate CC中的工作方式略有不同。 在WebGL中,具有实例名称的符号可按如下方式访问:

var mySymbol = this.getChildByName("instance-name");

在Canvas中,可以按如下方式完成:

var mySymbol = this.instance-name;

可以在canvas和WebGL中使用this.getChildAt(index)引用未命名的实例。 获得对所需实例的引用后,您可以根据需要轻松控制它。 (gotoAndPlay()/ Stop()等)

PS:在画布中,符号实例名称未显式设置为输出中相应符号的名称属性 - 因此name属性返回为null。