Actionscript 3 if条件下的动态对象

Actionscript 3 if条件下的动态对象,actionscript-3,flash,Actionscript 3,Flash,如何生成包含动态对象的if条件?我试过这种方法,但没有成功 function pass(xxx:String,yyy:String,zzz:String) { //trace(xxx,yyy,zzz); if (this[xxx].hitTestObject(this[yyy])) //an original if (obj1.hitTestObject(obj2)) { trace("right"); } else {

如何生成包含动态对象的if条件?我试过这种方法,但没有成功

function pass(xxx:String,yyy:String,zzz:String)
{
    //trace(xxx,yyy,zzz);
    if (this[xxx].hitTestObject(this[yyy])) //an original if (obj1.hitTestObject(obj2))
    {
       trace("right");
    }
    else
    {
      trace("fail");
    }
}
“this[]”无效,TypeError:Error#1010:术语未定义且没有属性。 如果在“如果”之外,“此[]”可以工作。
这个问题还有别的解决办法吗?谢谢您,如果您正在传输MCs的名称,您应该使用
getChildByName()
,但请检查该名称是否是此的直接子项

function pass(xxx:String,yyy:String,zzz:String):void {
    var x=this.getChildByName(xxx);
    if (!x) return;
    var y=this.getChildByName(yyy);
    if (!y) return; // insert similar for zzz here
    if (x.hitTestObject(y))     {
        trace("right");
    }
    else
    {
        trace("fail");
    }
}

否则,请指定函数有哪些输入。

除非您有特定的理由将对象名称作为字符串提供,否则我建议将参数类型更改为
DisplayObject

function pass(a:DisplayObject, b:DisplayObject):void
{
    if(a.hitTestObject(b))
    {
        trace("right");
    }
    else
    {
        trace("fail");
    }
}
如果需要使用字符串,只需执行以下操作:

var obj1:DisplayObject = getChildByName("obj1");
var obj2:DisplayObject= getChildByName("obj2");

pass(obj1, obj2);