AS2针对功能无响应的剪辑

时间:2015-04-26 17:22:05

标签: flash actionscript-2

。 您好,

我坚持看似简单的事情,但任何帮助都会很棒。

我在舞台上有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

我到底做错了什么?哈哈,谢谢!

1 个答案:

答案 0 :(得分:0)

Ugggh,就在我面前。

我用引号推了这个名字,

enemyArray.push("boo1");

虽然它正确地返回了剪辑的-name-,但这没有任何意义,因为它没有正确添加实际剪辑本身的-path-。

删除引号会返回剪辑所在的正确级别,而不仅仅是它的名称。

enemyArray.push(boo1);

现在很棒。