AS3: добавляемый Dyanmical контент в странные времена - PullRequest
0 голосов
/ 19 января 2012

У меня проблема с добавлением динамического контента через интервал.Содержимое добавляется на экран, но позиция X, как и анимация движения, кажется, полностью вышла из строя.

Ниже приведен скриншот, когда интервал составляет 100 миллисекунд, как показаноэто лучше всего.Приложение должно работать в течение 200 миллисекунд (где ошибка не столь ясна, но строки все еще слишком близки, примерно каждые 4-е).

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 Ответ

1 голос
/ 19 января 2012

setInterval() и setTimer() далеко не так точны, как вы думаете.В лучшем случае они являются подсказками, когда вы хотите запустить функцию. Вот статья , которая посвящена JavaScript, но применима и к ActionScript.

Вам нужно будет изменить свою архитектуру и подход к проблеме.Вы хотите создать обработчик ENTER_FRAME, а затем использовать getTimer(), чтобы определить, сколько времени прошло, и что вам нужно создать / разместить и запланировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...