Skip to main content
sirogurepi
Participant
November 6, 2018
Answered

複製したMCのインスタンス名

  • November 6, 2018
  • 1 reply
  • 483 views

canvasで、

複製したムービークリップのインスタンス名関連が

うまくいきません。

for (  var i = 1;  i < 10;  i++  ) {

  var new_mc = "mc"+ i;

  new_mc = new lib.mc();

  exportRoot.addChild(new_mc);

  new_mc.x=100*i;

  new_mc.y=100;

}

mc5.y += 200;

上記の場合、

mc5.y += 200;がエラーしてしまいます。

なぜでしょうか?

解決方法がある場合は教えていただけると助かります。

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

    変数値をインスタンスで上書きしているからです。

    var i = 1;

    var new_mc = "mc"+ i;

    new_mc = 0;

    console.log(new_mc);  // 0;

    this参照を使いましょう。

    var i = 1;

    var new_mc = new lib.mc();;

    this["mc"+ i] = new_mc;

    this.mc1.y += 200;

    console.log(this.mc1.y);  // 200

    1 reply

    Fumio Nonaka
    Community Expert
    Fumio NonakaCommunity ExpertCorrect answer
    Community Expert
    November 6, 2018

    変数値をインスタンスで上書きしているからです。

    var i = 1;

    var new_mc = "mc"+ i;

    new_mc = 0;

    console.log(new_mc);  // 0;

    this参照を使いましょう。

    var i = 1;

    var new_mc = new lib.mc();;

    this["mc"+ i] = new_mc;

    this.mc1.y += 200;

    console.log(this.mc1.y);  // 200

    sirogurepi
    Participant
    November 6, 2018

    早速の回答ありがとうございました。

    うまくいきました。

    たぶん私は基本的なことを理解していないのでしょうね。

    もうちょっと勉強します。