2016-02-29 114 views
0

下午。我在舞台上有一个带有单个MovieClip的FLA - 剪辑在库中名为myThing,并且还具有myThing的实例名称。在另一层我有以下脚本:Animate CC - getChildByName canvas vs WebGL

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

当我在一个WebGL项目它作为我期望,并返回一个JS对象,但是当我运行在一个canvas项目同样的事情(这是运行此我需要使用)它回来null

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

除此之外,任何人都可以通过脚本撰写这些项目来获得任何体面的资源吗?看起来不管我搜索什么,我总是最终回到那个*!@%@兔子教程,这个教程设法把很少的信息塞进很多很多的单词中。

谢谢大家,你的帮助总是赞赏:)

回答

0

所以我是一个数字。

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

我迷上了错误的方法,因为它是我能找到的唯一例子。与AS3相比,我还是发现文档非常粗略,并没有什么帮助,甚至与其他竞争对手的JS库如Greensock

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

+0

很确定,在导出到CreateJS时,Animate不会将name属性设置为实例名称。许多人已经要求它,所以也许在http://github.com/CreateJS/EaselJS/issues/上记录一个错误...很高兴你找到了解决方法。 – Lanny

0

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

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

在帆布,同样可以做到如下:

var mySymbol = this.instance-name; 

命名实例可以同时在画布和WebGL使用this.getChildAt(index)引用。 一旦获得了所需实例的引用,就可以根据需要轻松控制它。 (gotoAndPlay()/ Stop()等)

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

相关问题