Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 如何在Flash中以指定的秒数运行一系列值?_Actionscript 3_Flash_Timer_Actionscript_Range - Fatal编程技术网

Actionscript 3 如何在Flash中以指定的秒数运行一系列值?

Actionscript 3 如何在Flash中以指定的秒数运行一系列值?,actionscript-3,flash,timer,actionscript,range,Actionscript 3,Flash,Timer,Actionscript,Range,如何在指定时间内更新一系列值?我是Flash ActionScript 3的新手 假设我想让用户在4秒内看到0到90之间的值,我该如何在Flash AS3中做到这一点?这是我迄今为止的尝试: var valueRange:Number = 90; //90 different values var myTimer:Timer = new Timer(1000,valueRange); //should repeat valueRange times myTimer.addEventListene

如何在指定时间内更新一系列值?我是Flash ActionScript 3的新手

假设我想让用户在4秒内看到0到90之间的值,我该如何在Flash AS3中做到这一点?这是我迄今为止的尝试:

var valueRange:Number = 90; //90 different values
var myTimer:Timer = new Timer(1000,valueRange); //should repeat valueRange times
myTimer.addEventListener(TimerEvent.TIMER, rangeFunction); //function
myTimer.start();

function rangeFunction(event:TimerEvent):void {
myText_txt.text = String((-1)+myTimer.currentCount);
}
对于每秒钟,该值将更新90秒


请帮忙,因为这是我的动画的基本需求。

您需要缩放您的值以将一个范围映射到另一个范围

要在4秒内从0变为90,每秒将有90/4或22.5个值。因此,在计时器的每一个滴答声中,你会在4秒内增加22.5,从0增加到90

这可能不像我猜的那么好,你更愿意看到这些数字。实现这一点的一种方法是使用较小的计时器更新间隔,比如100ms,而不是每秒更新一次。因为100ms意味着0.1秒,所以每100ms的增量值为2.25


您可以一直向下,计算出一个足够小的间隔值,可以增加1,但对于计时器来说,拥有非常小的间隔值可能不是一件好事。

不幸的是,计时器从长远来看不同步,它会随机减慢速度。我想我以前没有这个问题。我知道定时器触发事件可能会受到帧速率的影响,因此您可以完全避免使用定时器并使用事件帧事件。这可能看起来也稍微好一点,因为在每次帧更新时,显示值也会同步更新。您可以做的另一件事是检查您是否有一些处理密集型代码,这也会影响计时器(这两点在计时器类文档中都提到)。哎呀,回头看,我指的是“enter frame”事件,而不是“event frame event”是的,我这样做了,但是您有没有想过每5帧降低一次值,您认为应用诸如currentFrame%5之类的模运算器可以工作吗?您所说的“减慢值”是什么意思?执行currentFrame%5将允许您每隔5帧查找一次,但从那里执行的操作取决于您自己。