Skip to main content
sirogurepi
Participant
November 6, 2018
解決済み

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

  • November 6, 2018
  • 返信数 2.
  • 496 ビュー

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;がエラーしてしまいます。

なぜでしょうか?

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

    このトピックへの返信は締め切られました。
    解決に役立った回答 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

    返信数 2

    Fumio Nonaka
    Fumio Nonaka解決!
    Inspiring
    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
    sirogurepi作成者
    Participant
    November 6, 2018

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

    うまくいきました。

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

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