2012-01-19 58 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()來確定已經過了多長時間,以及您需要創建/定位和計劃。