如何在对象路径中使用字符串?

How to use string in path to object?

我需要在对象路径中使用字符串。

var nameOfTrails:String = "trail"+this.getDepth();
_parent.createEmptyMovieClip(nameOfTrails,this.getDepth()+1);
_parent.nameOfTrails.beginFill(FillColor,FillAlpha);

如何在 ActionScript 2.0 中执行此操作?

你可以这样做:

for(var i:Number = 0; i < 3; i++){
    var movie_clip:MovieClip = this.createEmptyMovieClip('movie_clip_' + i, i);
        movie_clip._y = i * 22;

    var text_field:TextField = movie_clip.createTextField('text_field', 0, 0, 0, 120, 18); 
        text_field.text = 'movie clip : ' + i;
}

var j:Number = 2;
trace(this['movie_clip_' + j].text_field.text);     // gives : movie clip : 2
trace(eval('movie_clip_' + 1).text_field.text);     // gives : movie clip : 1

有关详细信息,请查看 eval function

希望能帮到你。

在您的情况下,您可以像这样访问您创建的实例:

    _parent[nameOfTrails]

要点是,您可以通过搜索具有该名称的 属性 的适当对象来访问使用带有他的名称的字符串的对象。

在您的示例中,您在某个与当前代码范围相关的对象中创建了 id 值为 nameOfTrails 的变量作为父对象,并在该变量中引用了新创建的 MovieClip。所以现在,_parent 引用的对象有 属性 命名为例如 'trail0'(顺便说一句,this.getDepth() 不是那么聪明的事情,然后你在其他范围内创建对象)。您现在需要做的就是使用经典 'give me property of that object by his key' 样式访问 属性 - obj['propertyName'] 瞧。