这是我到目前为止单个下降对象的代码。 'DangerIN'是落下的对象的实例名称。该课程被命名为“危险”。那么我怎么能让它循环所以它连续下降,当它达到某个y值时它会自动删除它。此外,我想要不止一个(abount 5)对象一下子掉下来。
var randomX:Number = Math.random() * 550;
DangerIN.x = randomX;
DangerIN.y = 96;
var speed:Number = Math.random()*10;
DangerIN.addEventListener(Event.ENTER_FRAME, moveDown);
function moveDown(e:Event):void {
e.target.y += speed;
if(e.target.y >= 610) {
DangerIN.removeEventListener(Event.ENTER_FRAME, moveDown);
}
}
答案 0 :(得分:0)
这很容易。但要做到这一点,你首先需要一堆掉落的东西,然后当你的e.target
低于你的门槛时,你需要将它重新定位到顶部。
function moveDown(e:Event):void {
e.target.y += speed;
if (e.target.y >= 610) {
// reposition
e.target.x=math.random()*550;
e.target.y=96;
}
}
将此功能分配给您想要摔倒的每个物体,到达底部并重新显示。
答案 1 :(得分:0)
要删除自身,可以在removeEventListener()之后添加以下行:
parent.removeChild(this);
但它并不漂亮,你可能应该以正确的方式:
将所有Danger对象存储在数组中,在Danger类中创建一个函数,如go(),moveDown()或其他:
public function go():void
{
y+= speed;
}
并在创建Danger对象的类中创建如下循环:
private function loop():void
{
for (var i:int = dangerObjArray.lenght - 1; i >= 0; i--)
{
dangerObjArray[i].go();
if (dangerObjArray[i].y >= maxY)
dangerObjArray.splice(i , 1);
}
}