请求null对象的属性值

时间:2014-03-04 23:54:32

标签: actionscript-3

我目前正在将我在AS2的旧游戏项目转换为AS3。而且有一个问题。在我的游戏的AS2版本中,我曾经检查过一个movieclip的子影片剪辑的属性并使用它进行一些计算,使用

if (mc1.mc2.prop == undefined){
    //do something
}

并且在游戏的某个时刻,mc1或mc2被移除。 但是在AS3中这不再有效,因为在移除mc1或mc2后我无法访问道具。

Anyhelp?感谢。

1 个答案:

答案 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.
}