AS3 concat // MovieClip(parent).variable.gotoAndStop(otherVariable);

AS3 concat // MovieClip(parent).variable.gotoAndStop(otherVariable);

中是否存在串联问题
MovieClip(parent).robes_position_num_clicked.gotoAndStop(traje1);

当我点击项目 n°2 时,trace('robes_position_num_clicked') returns "robes_position2",这是正确的,符合预期。

var index_clicked:int = myPositions.indexOf(e.target); // = Position num in array
var robes_position_num_clicked ="robes_position"+(index_clicked+1).toString();
  trace (robes_position_num_clicked);

 var traje1 = MovieClip(parent).robes_position1.currentLabel;

 if (   MovieClip(parent).robes_position1.currentLabel==traje1 &&  MovieClip(parent).robes_position1.currentLabel!=null)
    {   /*1*/ MovieClip(parent).robes_position2.gotoAndStop(traje1);
        /*2*/ MovieClip(parent).robes_position_num_clicked.gotoAndStop(traje1);   
      MovieClip(parent).robes_position1.gotoAndStop(1); 
    }

第一个 "sentence" /* 1*/ 完成了预期的工作,
而句子 /* 2*/ 本应是同义词,却不是,并且 returns 错误 "One term is undefined and has no property".

谢谢你的灯光,正如我们用法语所说的那样!

robes_position_num_clicked 是一个字符串而不是 MovieClip

"gotoAndStop" 应该与 MovieClips 而不是 Strings 一起使用;

其次:"robes_position_num_clicked" 是在当前 MovieClip 中定义的,而不是在父 MovieClip 中定义的,因此它将在父 MovieClip 中为 null

你应该知道 robes_position_num_clicked 这里只是一个 String 包含你的目标名称 MovieClip 而不是 MovieClip 本身,所以这一行:

MovieClip(parent).robes_position_num_clicked.gotoAndStop(traje1); 

应该给你一个错误。

因此,要使用其名称访问您的 MovieClip,您只需使用 DisplayObjectContainer.getChildByName() 函数,如下所示:

MovieClip(parent.getChildByName(robes_position_num_clicked)).gotoAndStop(traje1);

你也可以这样做:

MovieClip(parent)[robes_position_num_clicked].gotoAndStop(traje1);

希望能帮到你。