。 您好,
我坚持看似简单的事情,但任何帮助都会很棒。
我在舞台上有3个剪辑,我的阵列设置了他们的名字 -
var enemyArray:Array = new Array();
enemyArray.push("boo1");
enemyArray.push("boo2");
enemyArray.push("boo3");
我想用我的“激光”(Dr. Evil voice)点击这些
在这里,我用数组中的剪辑名称定义“target”,它的括号中的数字变量为“enemy”。
enemy=0;
target=_root.enemyArray[enemy];
function updateLaser() :Void
{
trace("target= ");
trace(target);
执行该功能时,上述跟踪会在数组“boo1”中返回正确的剪辑名称。
_root.laserBeam.clear();
_root.laserBeam.lineStyle(2, 0xFF0000, 100);
_root.laserBeam.moveTo(startX, startY);
_root.laserBeam.lineTo(target._x, target._y);
}
然而,在绘制光束时,它总是变为0,0而不是目标剪辑“目标”的位置。
当曲目返回正确的剪辑名称时,怎么没有得到剪辑X,Y?
另外,如果我直接强制剪辑名称进行测试,它可以正常工作。但这当然需要动态。
_root.laserBeam.lineTo(boo1._x, boo1._y);//<< test only, no use.
我也尝试用根前缀命名数组名称,但这不起作用。
enemyArray.push("_root.boo1");//test only, no use
我到底做错了什么?哈哈,谢谢!
答案 0 :(得分:0)
Ugggh,就在我面前。
我用引号推了这个名字,
enemyArray.push("boo1");
虽然它正确地返回了剪辑的-name-,但这没有任何意义,因为它没有正确添加实际剪辑本身的-path-。
删除引号会返回剪辑所在的正确级别,而不仅仅是它的名称。
enemyArray.push(boo1);
现在很棒。