2015-04-26 26 views
0

。 嗨,AS2目标剪辑内功能没有响应

我被卡住的东西看起来很简单,但任何帮助将是伟大的。

我在舞台上的3个剪辑和我的阵列设置了自己的名字,如所谓

var enemyArray:Array = new Array(); 
enemyArray.push("boo1"); 
enemyArray.push("boo2"); 
enemyArray.push("boo3"); 

我想用我的“激光”打这些(邪恶的声音博士)

在这里,我用我的数组中的剪辑名称定义“目标”,它的括号中的数字变量“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

Ugggh,就在我的面前。

我推加引号的姓名,

enemyArray.push("boo1"); 

虽然它正确返回剪辑的-name-,觉得没什么意思,因为它没有正确添加实际剪辑本身的-path- 。

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

enemyArray.push(boo1); 

现在很好用。