2012-01-19 79 views
0

我在通过时间间隔添加动态内容时遇到问题。内容正在被添加到屏幕上,但X位置和补间似乎完全没有了。AS3:在奇怪时间添加了随意添加的内容

下面是间隔时间为100毫秒的屏幕截图,因为它显示效果最好。应用程序需要工作在200毫秒(其中错误不太清楚,但线路仍然是非常接近的,大约每四分之一)。

Error

如可以看到的,存在定位之间有明显的差异。对于少数人来说,这仍然很好,然后再进行变更,再次变更,然后最终恢复到原来的状态。

这里是我的代码,控制本节:与任何想法是什么原因造成这种情况发生

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毫秒,虽然不太突出。

回答

1

setInterval()setTimer()几乎没有你想象的那么精确。当你想要一个函数运行时,它们充其量只是暗示。 Here is a article这是关于JavaScript,但也适用于actionscript。

您将需要更改您的架构和解决问题的方式。您想要创建一个ENTER_FRAME处理程序,然后使用getTimer()来确定已经过了多长时间,以及您需要创建/定位和计划。