对所有人说,自从我上一篇文章以来由于我疲惫的眼睛而超级快速修复。我会再问你一次......
关于阵列,所以在我只有一个"目标"展示。所以我认为我的游戏很简单...
所以我决定添加更多移动的目标,并随机数学放置...... 好吧,他们被正确放置,但只有一个正在移动。我认为是第一个被创造出来的......
这是我的代码行:
// Creating multiple targetwith ADDCHILD and ARRAY at different location //
var arraymc_target:Array = [];
for(var i:int = 1; i<8; i++)
{
var mc_target:target = new target();
mc_target.x = Math.floor(Math.random() * 400);
mc_target.y = Math.floor(Math.random() * 550);
addChild(mc_target);
arraymc_target.push(mc_target);
}
// Creating the TARGETS MOVEMENT //
function goesside_1(event:Event):void {
mc_target.x -= 2;
if (mc_target.x < -20){
mc_target.x = 550;
}
}
mc_target.addEventListener(Event.ENTER_FRAME, goesside_1);
// ----------------------------------------------- //
&#13;
答案 0 :(得分:1)
您的主要问题是在goesside_1
中,您正在移动mc_target
,这只是对您在循环中创建的target
的最后一个实例的引用并推送到数组。
我注意到的另一个怪癖是你将ENTER_FRAME
听众添加到你的一个目标而不是舞台。
您要做的是将监听器添加到舞台,然后循环遍历阵列中的每个目标:
var arraymc_target:Array = [];
for(var i:int = 1; i<8; i++)
{
var mc_target:target = new target();
mc_target.x = Math.floor(Math.random() * 400);
mc_target.y = Math.floor(Math.random() * 550);
addChild(mc_target);
arraymc_target.push(mc_target);
}
// Creating the TARGETS MOVEMENT //
function goesside_1(event:Event):void {
for each(var mc_target:target in arraymc_target)
{
mc_target.x -= 2;
if (mc_target.x < -20){
mc_target.x = 550;
}
}
}
stage.addEventListener(Event.ENTER_FRAME, goesside_1);