Actionscript 3 if条件下的动态对象
如何生成包含动态对象的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 {
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);