2016-04-28 73 views
1

我曾經是一名Flash開發人員,我試圖理解ActionScript和新的CreateJS平臺之間的區別。我發現很難在谷歌上找到答案,所以我想我會在這裏問,希望專家能給我一個堅實的解釋,以建立起來。很感謝任何形式的幫助。在Animate CC中CreateJS JavasScript框架腳本

基本上,我很難理解時間線範圍的複雜性以及舞臺上的影片剪輯如何在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 Uncaught TypeError: Cannot read property 'handleEvent' of undefined

我想了解如何有一個時間表2個影片剪輯,並讓他們與對方互動在AS3相似的方式是可能的:

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

或..

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

etc. etc. etc. etc. etc.等等等等

this.parent不適用於我......並且從主時間軸中引用movieclip不允許我沿着它的時間軸訪問它的幀變量。

我發現這個令人困惑和沮喪,因爲當我谷歌這些問題,我發現很多文章說,諸如「只是說這個。變量,它會工作」或「只是使用parent.ball_mc調用根「,而且我發現這些建議似乎都行不通。

你們能解釋一下嗎?

謝謝!

回答

2

@Cmaxster您可以隨時通過exportRoot訪問舞臺上的影片剪輯。 例如:如果你有一個的myBall實例名稱一球,它可以像這樣var myBall = exportRoot.myBall;

引用如果你想後更sepecific問題的FLA我可以看看:)

+0

此代碼在我的Animate CC項目的第一幀。我發現下面的代碼不起作用.. 這個。animating = true; (this.animating);這個動畫就是一個動畫,這個動畫就是這個動畫的一部分,這個動畫就是這個動畫的一部分,而這個動畫就是這個動畫。 //控制檯日誌爲'false'' '}' 'this.timeout = setTimeout(this.stopAnimation,1000);' – Cmaxster

+0

我想了解如何訪問this.animating(位於第1幀)on框架18等 – Cmaxster

+0

@Cmaxster我不知道我明白你在問什麼。你期望發生什麼?一旦你調用'this.stopAnimation','this.animating'將等於false。如果你從第18幀開始console.log this.animating,它將返回true,因爲你延遲了調用(this.stopAnimation)來改變值。 'this.animating'的作用範圍是'Window',所以你應該可以從任何地方訪問它。我建議你放一個例子,我可以看看。 –

相關問題