2012-01-19 1 views
0

간격으로 동적 콘텐츠를 추가하는 데 문제가 있습니다. 내용이 화면에 추가되고 있지만 X 위치와 트윈은 완전히 싱크대가 아닌 것 같습니다.AS3 : 비정상적으로 추가 된 콘텐츠가 이상한 시간에 추가되었습니다.

다음은 간격이 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

setInterval()setTimer()은 생각만큼 정확하지 않습니다. 그들은 기껏해야 함수를 실행하고자 할 때의 순간을 암시합니다. Here is a article은 JavaScript에 관한 것이지만 actionscript에도 적용됩니다.

아키텍처와 문제를 해결하는 방법을 변경해야합니다. ENTER_FRAME 처리기를 만들고 getTimer()을 사용하여 얼마나 많은 시간이 경과했는지, 만들고/배치하고 예약해야하는 항목을 확인하려고합니다.

관련 문제