0
私はこの問題の解決策を探しましたが、いくつかの古い投稿を見つけても問題を解決できないようだが、特定のタスク。だから私は誰かがもっと普遍的な何かを提案できるかどうかを確認するためにこれをもう一度持ち出すことを望んでいた。CreateJS(アニメーションCC)は、クリック時にムービーインスタンス名を取得します。
ムービークリップが鳴っているのを聞いて内部にスイッチがあり、ムービークリップの名前によっては何らかのアクションがとられます。 CreateJSはムービークリップの名前をピックアップしていないようですので、私は自分のムービークリップに自分自身を割り当てていますが、どうすれば簡単にクリックできますか?
this.parentMovie.button1.name = "button1";
this.parentMovie.button2.name = "button2";
this.parentMovie.button3.name = "button3";
this.parentMovie.button1.addEventListener("click", onClick.bind(this));
this.parentMovie.button2.addEventListener("click", onClick.bind(this));
this.parentMovie.button3.addEventListener("click", onClick.bind(this));
function onClick(e)
{
console.log(this.parentMovie.button1.name); // returns the name of the movieclip just fine, so I know at least that is carried over.
switch(/* what do I need to put here?? */) // in AS3 it was e.target.name and it worked great. In JS it returns as null
{
case "button1":
// do something
break;
case "button2":
// do something
break;
case "button3":
// do something
break;
}
}
はどうもありがとうございました:AS3では、ここに私のコードの抜粋だe.target.name
で簡単に行われていました!
e.targetの代わりにe.currentTargetが実際に動作するはずです。 だから、upvoted。 – tatactic
完璧、ありがとう!正しいとマークアップupvoted! – anton980
ありがとう、これは確かに良いようです。しかし、このオブジェクトの比較は非常に重いですか? '.name'を使用して文字列を比較することがより効率的であると私は信じています。 – Danyright