如果包含动态对象的条件如何?我试过这种方式,但错误
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:错误#1010:术语未定义且没有属性。 “如果它在”if“之外,”this []“可以工作。 这个问题还有其他办法吗?先谢谢
答案 0 :(得分:0)
如果您要转移MC的名称,则应使用getChildByName()
,但请检查该名称是否为this
的直接子项。
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");
}
}
否则指定该功能有哪些输入。
答案 1 :(得分:0)
除非您有特定的理由将对象名称作为字符串提供,否则我建议将参数类型更改为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);