有没有更好的方法可以在actionscript中使用不带eval的字符串获取对电影剪辑的引用
我已经创建了一系列电影剪辑,它们都有相似的名称,然后在其他一些事件之后,我创建了一个字符串,如:有没有更好的方法可以在actionscript中使用不带eval的字符串获取对电影剪辑的引用,actionscript,Actionscript,我已经创建了一系列电影剪辑,它们都有相似的名称,然后在其他一些事件之后,我创建了一个字符串,如: var clipName = "barLeft42" 它放在另一个叫做“东西”的电影剪辑里 我通过以下方式获得了一份推荐信: var movieClip = Eval( "_root.thing." + clipName ) 但这感觉很糟糕-有更好的方法吗?电影剪辑是actionscript中的集合,与大多数类似,与javascript类似,所有内容基本上都是键值对。您可以使用方括号和键名字符串
var clipName = "barLeft42"
它放在另一个叫做“东西”的电影剪辑里
我通过以下方式获得了一份推荐信:
var movieClip = Eval( "_root.thing." + clipName )
但这感觉很糟糕-有更好的方法吗?电影剪辑是actionscript中的集合,与大多数类似,与javascript类似,所有内容基本上都是键值对。您可以使用方括号和键名字符串索引到集合中,如:
_root.thing[ "barLeft42" ]
这应该能帮你解决问题。电影剪辑是actionscript中的集合,与大多数javascript类似,基本上都是键值对。您可以使用方括号和键名字符串索引到集合中,如:
_root.thing[ "barLeft42" ]
这对您来说应该是个好办法……避免使用不推荐的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 ];
避免使用不推荐的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 ];
您可以使用括号并在其中包含变量。。。因此,如果您想循环浏览所有内容,您可以这样做:
for (var i=0; i<99; i++) {
var clipName = _root.thing["barLeft"+i];
}
您可以使用括号并在其中包含变量。。。因此,如果您想循环浏览所有内容,您可以这样做:
for (var i=0; i<99; i++) {
var clipName = _root.thing["barLeft"+i];
}