Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有更好的方法可以在actionscript中使用不带eval的字符串获取对电影剪辑的引用_Actionscript - Fatal编程技术网

有没有更好的方法可以在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];
}