gpt4 book ai didi

actionscript-3 - 循环中的随机数,如何阻止它每帧获取一个新数字?

转载 作者:行者123 更新时间:2023-12-01 12:58:39 26 4
gpt4 key购买 nike

学习Action脚本和编程所以我很抱歉解决方案很简单,我只是不知道它是什么。我想要发生的是让我想要从屏幕上掉下来的物体通过。我通过 e:Event(来自舞台上的事件监听器)和 speed 传递对象,它获得一个介于高值和低值之间的随机数。

当我运行它时,它当然每帧都会获得一个新的随机数。 (因为它由 Event.ENTER_FRAME 调用

我该如何着手实现我的目标?

这是我的代码:

private function moveIt(e:Event, speed):void
{
if ( e.currentTarget.y <= 400 )
{
var objSpeed = speed;
e.currentTarget.y = e.currentTarget.y + speed;
trace("speed = "+ speed);
}
else
{
//Do other stuff
}
}//moveit

根据要求,这里是其他相关的代码片段:

随机数

private function randomNum(high, low):Number
{
var randNum:Number = Math.floor(Math.random()*(1 + high - low))+low;
return randNum;
}

在这里调用

iconPsd.addEventListener(Event.ENTER_FRAME, animate)

然后通过这里(不需要,但这是我的尝试)

private function animate(e:Event):void
{
var speed:Number = randomNum(55, 0.1);
moveIt(e, speed);
trace ("speed in animate = "+ speed);

}//animate

最佳答案

从动画函数中取出 var speed:Number = randomNum(55, 0.1);

然后这样写:

iconPsd.speed = randomNum(55, 0.1);
iconPsd.addEventListener(Event.ENTER_FRAME, animate);

private function animate(e:Event):void
{
moveIt(e);
trace ("speed in animate = "+ e.currentTarget.speed);

}//animate

private function moveIt(e:Event):void
{
if ( e.currentTarget.y <= 400 )
{
e.currentTarget.y = e.currentTarget.y + e.currentTarget.speed;
trace("speed = "+ e.currentTarget.speed);
}
else
{
//Do other stuff
}
}//moveit

在这里,您将速度指定为 enterFrame 之外的 iconPsd 对象的属性,但仍然可以在 enterFrame 内部使用它。

你也可以把它压缩成这样:

iconPsd.speed = randomNum(55, 0.1);
iconPsd.addEventListener(Event.ENTER_FRAME, animate);

private function animate(e:Event):void
{
if ( e.currentTarget.y <= 400 )
{
e.currentTarget.y = e.currentTarget.y + e.currentTarget.speed;
trace("speed = "+ e.currentTarget.speed);
}
else
{
//Do other stuff
}
}//animate

关于actionscript-3 - 循环中的随机数,如何阻止它每帧获取一个新数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8058689/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com