在AS2中将对象名称转换为字符串

时间:2015-06-13 11:53:18

标签: string object for-loop actionscript-2 movieclip

所以我创建了一个名为“potato”的对象,然后启动一个循环来检查“_level0”中的某些内容是否具有“_level0.potato”的名称。我认为,因为_level0中的东西是对象而不是字符串,所以对象名称不能被识别为字符串,所以我猜我需要找到一种方法将对象名称转换为字符串,反之亦然。

var potato:MovieClip = this.createEmptyMovieClip("potato", this.getNextHighestDepth());
for(objects in _level0){
trace(_level0[objects])
    if(_root[objects] == "_level0.potato"){
        trace("OMG, i found a potato on level0")
    }
}

1 个答案:

答案 0 :(得分:1)

您建议将对象存储为字符串是不正确的。如果您尝试在

之前使用trace(typeof _level0[objects])
movieclip

您会看到其类型为string 而你的“_level0.potato”是String(...) 他们不平等。但是您可以使用_name构造将对象引用转换为字符串。

关于名字。你的名字和引用令人困惑。与ac2中的其他对象一样,MovieClip对象具有名为_name的属性。在此属性中,对象的名称存储为字符串。但只有名字,而不是通往目的地的完整路径。 对于你的马铃薯,mc "potato"将相等var potato:MovieClip = this.createEmptyMovieClip("potato",this.getNextHighestDepth()); for(objects in _level0){ trace(_level0[objects]) if(_root[objects]._name == "potato"){ trace("OMG, i found a potato on level0") } } 所以你可以像这样进行搜索

if(file.is_open())