2016-04-28 11 views
1

私は以前はFlash開発者でしたが、ActionScriptと新しいCreateJSプラットフォームの違いを理解しようとしています。私はGoogleで答えを見つけるのが難しいと思っているので、専門家が私に確かな説明を与えてくれることを期待してここで尋ねると思った。どんな助力も非常に感謝しています。アニメーションのCreateJS JavasScriptフレームスクリプティングCC

基本的に、タイムラインの範囲の複雑さと、ステージ上のムービークリップがCreateJSで相互にやりとりする様子を理解するのが難しいです。タイムライン上のフレーム間でスコープがどのように機能するかを理解するのも難しいです。

AS3では、基本的には、ステージ上のシンボルをドロップする可能性があり、このようなメインのタイムライン上でそれを参照:

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

それはそうです、しかし、新しいHTML5キャンバスアニメイトCCでこのもはや作品ということ。私は多くの '未定義'を得る。私はまた、各フレームが範囲にロックされていることを発見しています。 ActionScriptで

var aMovieClip = this.aMovieClip; 

は、ネストされた各タイムラインは、それが自分のスコープの持っていた:私はball_mcのフレーム1に変数を作成し、フレーム2にそれを参照しようとした場合、私はこのような何かをしない限り、私はエラーを取得します。最初のフレームに変数を作成した場合、その変数はタイムライン全体にわたって保持されます。タイムライン上で変数や関数の範囲を拡張する簡単な方法がないと考えるのは難しいです。これは、タイムライン上にインタラクティビティを追加することになったときに、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); 
} 

などなど

this.parentは私のために働いていません。メインタイムラインのムービークリップを参照してもタイムラインに沿ってフレーム変数にアクセスすることはできません。

Googleがこれらの問題をGoogleに投稿したとき、「これは変わって動作する」や「parent.ball_mcを使用してルートを呼び出す」などの記事が多数見つかりましたので、これは分かりにくく、 "、私はこれらの提案のどれもうまくいかないと思っています。

これを私に説明できますか?

ありがとうございました!

答えて

2

@Cmaxster exportRootを介して、ステージにあるムービークリップにいつでもアクセスできます。たとえば :あなたはmyBallのインスタンス名でボールを持っている場合、あなたがより多くのsepecific問題とFLAを投稿したい場合は、私が見ることができ、このvar myBall = exportRoot.myBall;

のように参照することができます:)

+0

このコード私のアニメCCプロジェクトの最初のフレームにあります。私は次のコードが動作していないことを発見しています。 これです。アニメーション=真; 'this.stopAnimation = function(){' 'this.animating = false;' 'console.log( '>>タイムアウト'、this.animating); //コンソールログは 'false'となります '}' 'this.timeout = setTimeout(this.stopAnimation、1000);' – Cmaxster

+0

私はthis.animating(フレーム1に位置しています)にアクセスする方法を理解したいと思いますフレーム18など – Cmaxster

+0

@Cmaxster私はあなたが何を求めているのか分かりません。あなたは何を期待していますか? 'this.animating'は' this.stopAnimation'を呼び出すとfalseになります。フレーム18からconsole.log 'this.animating'を呼び出すと、値を変更するためにコール(this.stopAnimation)を遅らせているのでtrueに戻ります。 'this.animating'は' Window'にスコープされているのでどこからでもアクセスできます。私はあなたが一緒に例を挙げると、私は一見を持つことができます。 –

関連する問題