2016-09-14 8 views
-1

私はCanvasモードで動作しているAnimateで簡単なアプリケーションを開発しています。ステージには、インスタンス名が「p1」、「p2」、...から「p19」までの多数のムービークリップボタンがあります。ボタンをクリックすると、別のムービークリップ 'partOverlay'が表示され、タイムライン上のフレームに移動します。Adob​​e Animate Javascript TypeErrorの謎 - 解決できない

p1〜p13のみが以下のようにコード化されていると、すべてうまく動作します。しかし、p14はTypeErrorを返します。this.p14は未定義です。それでは、p13の後に他のインスタンスを行います。私はトリプルの名前と構文をチェックし、すべてが正常に見える。 p14ボタンとコードを新しいAnimateドキュメントにコピーすると問題なく動作します。

私はこのオンライン検索とテストに数時間を費やしてきました。どんな助けもありがとうございます。

サンプルコード:

this.p13.cursor = "pointer"; 
this.p13.addEventListener("click", GoToPartFrame2.bind(this, "p13")); 

this.p14.cursor = "pointer"; 
this.p14.addEventListener("click", GoToPartFrame2.bind(this, "p14")); 

function GoToPartFrame2(view) 
{ 
    this.partOverlay.gotoAndStop(view); 
    this.partOverlay.visible=true; 

} 

答えて

0

私は奇妙な何かを発見しました。すべてのボタンは、クローンした単一のボタンのインスタンスであり、新しいボタンを作成するために新しいインスタンス名を付けました。 3つの異なるタイムラインキーフレームに異なるボタンセットがありました - 元のボタンのすべてのコピー。 TypeErrorでボタンのコードをコメントアウトしてファイルをテストすると、何らかの形でそのボタンがまだリスナーを操作していて、別のキーフレームの他のボタンから関数を起動します。どちらのボタンも一意のインスタンス名を持っていました。

ボタンの内部名と私が与えたインスタンス名の間に名前の競合があると仮定しました。 Animateはインスタンス名を無視し、別の内部オブジェクト名を適用していました。私は、それぞれのキーフレームに新しいオリジナルボタンを作成しました。つまり、各キーフレームには、そのキーフレームの一意のマスターボタンからクローンされた一連のボタンがあります。今はすべてが正常に動作します。この方法ではうまくいかないことがあります。プログラムでは、クローンボタンがどのキーフレームにあるかにかかわらず、オブジェクトのプライマリIDとして適用される一意のインスタンス名を考慮する必要があります。多くの無駄な時間。

関連する問題