Skip to main content
TIIDACAST
Inspiring
August 12, 2017
Answered

インスタンス名を取得したい

  • August 12, 2017
  • 2 replies
  • 1118 views

初めて投稿します。よろしくお願いします。

ステージ上に複数のムービークリップがあります。

メインのフレームで以下を表記しています。

var movieClip_1 = this.movieClip_1;

var movieClip_2 = this.movieClip_2;

...

this.movieClip_1.addEventListener("click", changeAnimation);

this.movieClip_2.addEventListener("click", changeAnimation);

...

function changeAnimation() {

}

●の部分で、自分のインスタンス名を取得するにはどのようなコードを書けばよいでしょうか?

お手数をおかけしますが、どうしても進まないのでどなたかよろしくお願いします。

    This topic has been closed for replies.
    Correct answer Fumio Nonaka

    まず、お使いのドキュメントは、スクリプトの書き方からHTML5 Canvasだと考えます。つぎに、インスタンスとインスタンス名(DisplayObject.nameプロパティ)は、区別されることにご注意ください。普通はインスタンスの参照が得られれば足りますので、デフォルトではインスタンス名のプロパティ値はnullです。必要があれば設定しなければなりません。インスタンスの参照は、マウスイベントのEvent.currentTargetプロパティから得られます。

    var movieClip_1 = this.movieClip_1;

    movieClip_1.name = 'movieClip_1';  // インスタンス名

    movieClip_1.addEventListener("click", changeAnimation);

    function changeAnimation(event) {

         var instance = event.currentTarget;  // インスタンスの参照

         instance.rotation += 30;

         console.log(instance.name);

    }

    2 replies

    TIIDACAST
    TIIDACASTAuthor
    Inspiring
    August 14, 2017

    Nonakaさん、ありがとうございます!お陰様で解決しました!

    Lyndaも参考にさせていただいています。

    これからもどうぞよろしくお願いします!m(_ _)m

    Fumio Nonaka
    Community Expert
    Fumio NonakaCommunity ExpertCorrect answer
    Community Expert
    August 13, 2017

    まず、お使いのドキュメントは、スクリプトの書き方からHTML5 Canvasだと考えます。つぎに、インスタンスとインスタンス名(DisplayObject.nameプロパティ)は、区別されることにご注意ください。普通はインスタンスの参照が得られれば足りますので、デフォルトではインスタンス名のプロパティ値はnullです。必要があれば設定しなければなりません。インスタンスの参照は、マウスイベントのEvent.currentTargetプロパティから得られます。

    var movieClip_1 = this.movieClip_1;

    movieClip_1.name = 'movieClip_1';  // インスタンス名

    movieClip_1.addEventListener("click", changeAnimation);

    function changeAnimation(event) {

         var instance = event.currentTarget;  // インスタンスの参照

         instance.rotation += 30;

         console.log(instance.name);

    }