我目前正在将我在AS2的旧游戏项目转换为AS3。而且有一个问题。在我的游戏的AS2版本中,我曾经检查过一个movieclip的子影片剪辑的属性并使用它进行一些计算,使用
if (mc1.mc2.prop == undefined){
//do something
}
并且在游戏的某个时刻,mc1或mc2被移除。 但是在AS3中这不再有效,因为在移除mc1或mc2后我无法访问道具。
Anyhelp?感谢。
答案 0 :(得分:1)
如果不知道你的游戏是如何工作的,很难给出一个更简洁的答案,但是这个函数可以让你检查一个对象上是否存在一个层次结构值:
function hasProp(target:Object, prop:String):Boolean
{
var tests:Array = prop.split('.');
var test:* = target;
for each(var p:String in tests)
{
if(test.hasOwnProperty(p))
{
test = test[p];
}
else return false;
}
return true;
}
用过:
if( hasProp(mc1, "mc2.prop") )
{
// Property exists.
}