AS3:循环播放影片剪辑名称



我试图创建一个循环,该循环将遍历影片剪辑名称,允许您附加图像。

这是我到目前为止的代码:

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);

这应该有效 - * 但是 *- 这是相对较慢的,不是好的做法。最好将这些影片剪辑动态添加到舞台(在代码中,而不是拖到舞台上),以便您已经具有对它们的引用。

最新更新