1

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

var clipName = "barLeft42"

它被保存在另一个名为“事物”的电影剪辑中。

我已经能够使用以下方法获得参考:

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

但这感觉很糟糕——有更好的方法吗?

4

3 回答 3

4

电影剪辑是 actionscript 中的集合(与大多数类似并且类似于 javascript,所有内容基本上都是键值对)。您可以使用方括号和键名的字符串对集合进行索引,例如:

_root.thing[ "barLeft42" ]

那应该对你有用...

于 2008-09-23T21:27:17.830 回答
0

避免使用 deprecated 的更好方法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 ];
于 2008-09-24T03:38:54.990 回答
0

您可以使用括号并在其中包含变量...因此,如果您想遍历它们,您可以这样做:

for (var i=0; i<99; i++) {
  var clipName = _root.thing["barLeft"+i];
}
于 2008-09-25T14:09:47.740 回答