【问题标题】:Converting Object Names to Strings in AS2在 AS2 中将对象名称转换为字符串
【发布时间】:2015-06-13 11:53:17
【问题描述】:
所以我创建了一个名为“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")
}
}
【问题讨论】:
标签:
string
object
for-loop
actionscript-2
movieclip
【解决方案1】:
您关于将对象存储为字符串的建议是不正确的。如果您尝试在
之前使用
typeof
trace(typeof _level0[objects])
你会看到它的类型是movieclip
你的“_level0.potato”是string
他们不会平等。但是您可以使用 String(...) 构造将对象引用转换为字符串。
关于名字。您混淆了名称和参考资料。与 ac2 中的其他一些对象一样,MovieClip 对象具有名为 _name 的属性。在此属性中,对象的名称以字符串形式存储。但只有名称,而不是到达目的地的完整路径。
对于您的土豆 mc _name 将等于 "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")
}
}