学习动作脚本和编程所以我很抱歉解决方案很简单,我只是不知道它是什么。我想要发生的是将对象传递给我想要掉进屏幕的对象。我通过e:Event(来自舞台上的事件监听器)和速度传递对象,它在高值和低值之间得到一个随机数。
当我运行它时,它当然每帧都会得到一个新的随机数。 (因为它被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
答案 0 :(得分:4)
将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
您可以在此处将速度指定为iconPsd
之外enterFrame
对象的属性,但仍可在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