私は Flash 開発者でしたが、ActionScript と新しい CreateJS プラットフォームの違いを理解しようとしています。Google で回答を見つけるのが難しいと感じているので、専門家が構築するための確かな説明を提供してくれることを期待して、ここで質問することにしました。どんな助けでも大歓迎です。
基本的に、タイムライン スコープの複雑さと、ステージ上のムービー クリップが CreateJS でどのように相互作用するかを理解するのに苦労しています。また、タイムラインのフレーム間でスコープがどのように機能するかを理解するのに苦労しています。
AS3 では、基本的にステージにシンボルをドロップし、メイン タイムラインで次のように参照するだけで済みます。
if(ball_mc.aVariable == true) ball_mc.gotoAndPlay(2);
ただし、新しい HTML5 Canvas Animate CC では、これは機能しなくなったようです。「未定義」がたくさんあります。また、各フレームがスコープ内でロックされていることもわかりました。ball_mc のフレーム 1 で変数を作成し、それをフレーム 2 で参照しようとすると、次のようにしないとエラーが発生します。
var aMovieClip = this.aMovieClip;
ActionScript では、ネストされた各タイムラインに独自のスコープがありました。最初のフレームで変数を作成した場合、その変数はタイムライン全体で持続します。タイムライン全体で変数または関数のスコープを拡張する簡単な方法がないとは信じがたいです。これが、タイムラインに双方向性を追加することに関して、Flash を簡単にした理由です。
関数で同じことをしようとしたところ、次のようなエラーが発生しました。
createjs-2015.11.26.min.js:12 Uncaught TypeError: 未定義のプロパティ 'handleEvent' を読み取れません
タイムラインに 2 つのムービークリップを配置し、AS3 で可能だったのと同様の方法で相互にやり取りさせる方法を理解したいと思います。
MovieClip(parent).ball_mc.colour = 'red';
また..
this.addEventListener(MOUSE_EVENT.CLICK, callParentTimeline);
function callParentTimeline():void{
MovieClip(parent).gotoAndPlay(5);
}
等等等
this.parent は私にとっては機能しません..メインのタイムラインからムービークリップを参照しても、タイムラインに沿ってフレーム変数にアクセスできません。
これらの問題をグーグルで検索すると、「this.variableと言うだけで機能する」または「parent.ball_mcを使用してルートを呼び出すだけ」などの記事が多数あるため、これは混乱し、イライラしています。これらの提案はどれもうまくいかないようです。
どなたか私にこれを説明していただけますか?
ありがとうございました!