我试图创建一个循环,该循环将遍历影片剪辑名称,允许您附加图像。
这是我到目前为止的代码:
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 = /[srn]*/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) 添加到影片剪辑的名称中。
目前,此代码不起作用,并产生错误:
将String 类型的值隐式强制转换为不相关的类型 flash.display:MovieClip.
我已经解决意味着它使用字符串名称作为 MC,因此不起作用。
如果我也更改它:
mc = P1; // with no quotes
这有效,但显然只使用一个 MC。
如果您能提供帮助,请告诉我。
谢谢。
伊
如果您尝试访问的所有 MovieClip 实例都是当前组件的子级,则可以使用以下表示法。
mc = this["P" + i];
如果它们都是其他组件的子组件,您也可以以...
mc = myComponent["P" + i];
查看 DisplayObjectContainer 的 getChildByName 方法。如果showFriends在你的文档类中,那么它应该作为\
mc = this.getChildByName("P" + i);
这应该有效 - * 但是 *- 这是相对较慢的,不是好的做法。最好将这些影片剪辑动态添加到舞台(在代码中,而不是拖到舞台上),以便您已经具有对它们的引用。