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

时间:2015-11-25 19:40:07

标签: actionscript-3 flash

中是否存在连接问题
trace('robes_position_num_clicked')

当我点击第2项时,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); } 会返回“robes_position2”,这是正确的&什么预期。

{{1}}

第一个“句子”/ * 1 * /执行预期的工作,
而句子/ * 2 * /应该是同义词,不会,并返回错误“一个术语未定义且没有属性”。

感谢您用法语说的灯光!

2 个答案:

答案 0 :(得分:1)

您应该知道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);

希望可以提供帮助。

答案 1 :(得分:0)

robes_position_num_clicked是一个字符串而不是MovieClip

“gotoAndStop”应与MovieClips一起使用,而不是字符串;

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