Flash (ActionScript 3)에서 부드럽게 스크롤 할 수 있습니까? 다음 테스트에서는 랜덤 노이즈로 구성된 비트 맵을 생성 한 다음 주기적으로 왼쪽으로 이동합니다. 백그라운드에서 무거운 작업을 수행 할 필요가 없습니다. 내가 무엇을 찾고 있어요 것은Flash AS3에서 부드럽게 스크롤
package {
import flash.display.*;
import flash.events.TimerEvent;
import flash.utils.Timer;
public class Game extends Sprite {
var noiseBitmap;
public function Game() {
var noiseBitmapData = new BitmapData(stage.stageWidth * 3, stage.stageHeight);
noiseBitmapData.noise(0, 0, 255, 7, true);
noiseBitmap = new Bitmap(noiseBitmapData);
addChild(noiseBitmap);
var t = new Timer(1000/30, 999999);
t.addEventListener("timer", function (e:TimerEvent) {
noiseBitmap.x--;
});
t.start();
}
}
}
은 "렌더링 코드":-) 1987 제 아미 (500)와 비슷한 수준이 될 것 부드러움 내 컴퓨터 (2.4 GHz의 맥)에서 실행 < 1 밀리 초 걸리지 만, 여전히 움직임이 프레임 또는 2에 붙어 때때로 움직이게되어 움직임이 갑자기 나타나게됩니다.
FPS는 플래시에서 30으로 설정됩니다. 나는 그것을 "시험 영화"와 브라우저 (크롬) 둘 다 사용하여 실행 해 보았습니다. 대상은 Flash Player 11.2입니다. 또한 e.updateAfterEvent()를 호출하여 강제로 다시 그리기를 시도했습니다. 나는 또한 딜레이와 FPS를 약간 다른 값으로 설정했지만 개선은하지 않았다.
이미 BitmapData를 사용하고 있기 때문에 not smooth scrolling in AS3과 다릅니다. 또한 해당 질문에 회신 제안 된 타이머 대신 ENTER_FRAME 이벤트를 사용하여 시도했지만 도움이되지 않았습니다.
프레임 사이의 지연은 31 - 34ms 사이로 유지됩니다. – Bemmu
다른 곳에서 답을 얻었으니 확실히 타이머보다는 ENTER_FRAME을 사용해야합니다. 그러나 어느쪽으로 든, 가비지 컬렉터가 움직이는 것으로 인해 저속함이 발생할 수 있습니다. 코드를 진단하기위한 프로파일 링 도구에 대한 액세스 권한이없는 경우 Adobe 스카웃은 한 번 볼만한 가치가 있습니다. –