我遇到了通过间隔添加动态内容的问题。内容正被添加到屏幕上,但X位置以及补间似乎完全没有了。
以下是间隔为100毫秒时的屏幕截图,因为它显示效果最佳。应用程序需要在200毫秒的时间内工作(误差不是那么明显,但是线条仍然过于接近,大约每4秒)。
可以看出,定位之间存在明显的差异。它仍然适合少数,然后改变,再次改变,然后最终恢复到原来的状态。
以下是我控制此部分的代码:
function XYZ(){
Score = 90
var timeBefore = Score
if(timeBefore <= 2.4){
timeBefore = 2.5
Score = "2.5"
}
else if(timeBefore > 75){
timeBefore = 2.5
Score = "2.5"
}
trace(timeBefore)
var signInterval:uint = setInterval (addThis, 100);
var finishInterval:uint = setInterval (checkThis, timeBefore*200);
MCArray.push(signInterval), MCArray.push(finishInterval)
}
function addThis(){
trace("Adding this!")
timeElap++
var floorNum:sign = new sign
//floorNum.visible = false
floorNum.y = 325
floorNum.x = 0 - floorNum.width
floorNum.dtf_num.text = timeElap+""
addChildAt(floorNum, 1)
trace(stage.stageWidth+floorNum.width)
trace(floorNum.width)
TweenMax.to(floorNum, 1.5, {x:stage.stageWidth+floorNum.width, ease:Linear.easeNone})
floorSigns.push(floorNum)
}
有任何想法导致这种情况发生的人吗?
注意:它也会在200和300毫秒时发生,但不太突出。
答案 0 :(得分:1)
setInterval()
和setTimer()
并不像您想象的那么精确。当你想要一个函数运行时,它们充其量只是提示。 Here is a article是关于JavaScript的,但也适用于actionscript。
您需要更改架构以及解决问题的方式。您想创建一个ENTER_FRAME
处理程序,然后使用getTimer()
来确定经过了多长时间,以及创建/定位和计划所需的时间。