有没有更好的方法来获得在ActionScript中使用一个字符串的影片剪辑引用


1

我已经创建了一堆电影剪辑,它们都具有相似的名称,然后在一些其他事件后,我建立了一个字符串如:

var clipName = "barLeft42" 

它被放在另一个叫做'东西'的影片剪辑里面。

我已经能够用得到的引用保持:

var movieClip = Eval("_root.thing." + clipName) 

但是,这感觉不好 - 有没有更好的办法?

4

电影剪辑是ActionScript中的集合(就像大多数JavaScript类似,一切基本都是键值对)。你可以索引用方括号的收集和像键名的字符串:

_root.thing[ "barLeft42" ] 

这应该为你做的伎俩......


0

更好的方法,从而避免了使用过时eval,是索引用方括号:

var movieClip = _root.thing[ "barLeft42" ] 

但是,最好的办法就是保持引用您做出的剪辑,并通过引用访问它们,而不是名称:

var movieClipArray = new Array(); 
for (var i=0; i<45; i++) { 
    var mc = _root.thing.createEmptyMovieClip("barLeft"+i, i); 
    // ... 
    movieClipArray.push(mc); 
} 

// ... 

var movieClip = movieClipArray[ 42 ]; 

0

你可以用括号和包括在其中的变量...因此,如果您通过他们想环路所有你可以这样做:

for (var i=0; i<99; i++) { 
    var clipName = _root.thing["barLeft"+i]; 
}