2016-02-29 152 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。

相關問題