我试图创建一个循环,它将通过影片剪辑名称,允许您附加图像。
到目前为止,这是我的代码:
private var mc:MovieClip;
private var instance:String;
public function showFriends(e:Event)
{
var str:String = e.target.data;
var num:uint;
var i:Number;
var rex:RegExp = /[\s\r\n]*/gim;
var friends_array:Array = [];
num = friends_array.length;
friends_array = str.split(',');
for(i=0; i<num; i++){
var fri_id = friends_array[i].replace(rex,'');
mc = "P"+i; // THIS IS THE PROBLEM LINE
instance = 'DP';// Sets the Instance Name
load_DP(fri_id);
}
}
我试图找出如何将循环中的数字(var i)添加到MovieClip的名称。
目前此代码无法发出错误:
将String类型的值隐式强制转换为不相关的类型 flash.display使用:MovieClip的
我已经解决了它意味着它使用字符串名称作为MC而因此不起作用。
如果我也改变它:
mc = P1; // with no quotes
这有效,但显然只使用一个MC。
如果你能提供帮助,请告诉我。
谢谢。
利
答案 0 :(得分:1)
查看DisplayObjectContainer的getChildByName方法。如果showFriends在您的Document类中,那么它应该作为\
mc = this.getChildByName("P" + i);
这应该有效 - *但是* - 这是相对缓慢而且不是很好的做法。最好将这些MovieClip动态地添加到舞台上(在代码中,而不是拖到舞台上),这样你就已经有了对它们的引用。
答案 1 :(得分:1)
如果您尝试访问的所有MovieClip实例都是当前组件的子项,则可以使用以下表示法。
mc = this["P" + i];
如果他们都是其他组件的孩子,您也可以将其作为...
访问mc = myComponent["P" + i];