在 AS2 中将对象名称转换为字符串
Converting Object Names to Strings in AS2
所以我创建了一个名为 "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")
}
}
您关于将对象存储为字符串的建议是不正确的。如果您尝试在
之前使用 typeof
trace(typeof _level0[objects])
你会看到它的类型是movieclip
你的“_level0.potato”是string
他们将不平等。但是您可以使用 String(...)
构造将对象引用转换为字符串。
关于名字。你混淆了名称和引用。 MovieClip 对象与 ac2 中的其他对象一样,属性 称为 _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")
}
}
所以我创建了一个名为 "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")
}
}
您关于将对象存储为字符串的建议是不正确的。如果您尝试在
之前使用typeof
trace(typeof _level0[objects])
你会看到它的类型是movieclip
你的“_level0.potato”是string
他们将不平等。但是您可以使用 String(...)
构造将对象引用转换为字符串。
关于名字。你混淆了名称和引用。 MovieClip 对象与 ac2 中的其他对象一样,属性 称为 _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")
}
}