좋아요, 그렇기 때문에 타이머 기반 움직임이 FR보다 낫다고 들었습니다. V = V + n/60 초, 60fps가 아닌 60fps. 그들은 속도를 실제 속도로 내리고 FR 지연으로 감소시키지 않는다고 말했다. 그러나 제가 시도한 것처럼, 타이머는 실제로 전혀 신뢰할 수 없습니다. 내가 뭔가 잘못하고 있는거야? 원인 Timer (20,0)는 애니메이션이 진행됨에 따라 느려집니다. 따라서 클립에 과중 하중이 걸리면 아무런 차이가 없습니다. 타이머 나 FR에 상관없이 느려 집니까? 그래, 나는 매 초마다 새로운 모양을 만들 수있는 테스트 클립을 가지고있어 잠시 후에 꽤 많이 있었지만 타이머가 실제로 내 시계보다 느리게 진행되고 초가 길어진다. 그러나 타이머는 더 많은 두통이 필요한 추가 작업입니다. 그래서 가치가 없거나 잘못 사용 했습니까? (다른 기능을 사용하기 전에 우선 순위를 지정하지 않았습니까?)AS3 타이머 또는 프레임 속도
답변
예, SWF가 프레임의 길이보다 짧은 스테이지를 렌더링 할 수 있으면 둘 다 좋습니다. 그렇지 않은 경우 프레임 속도는 너는 그래. 이 큰 FPS를 원한다면 성능 향상을 위해 SWF를 조정해야합니다. 또한 타이머는 프레임 당 한 번 이상 이벤트를 발생시킬 수 없습니다. 실제로 SWF가 정상적인 시간 흐름과 경쟁 할 수없는 느린 PC에서 실행되는지 여부를 알지 못해서 프레임 시간 접근 방식이 일반적으로 더 좋다고 믿습니다.
당신의 경우, 나는 타이머를 떨어 뜨리고, 프레임 당 하나 더 많은 이벤트를 던지고, 그들의 이벤트가 비동기 적이기 때문에 크게 신뢰할 수 없습니다. 즉, 타이머 이벤트가 다음 프레임 전에 실행될 것이라고 일관되게 말할 수 없으며, 더 큰 간격 타이머 호스트 PC의 지체는 많은 플레이어에게 즐거움을 안겨줍니다. (나는 Pyro와 나의 오래된 PIII를 기억하는데,이 PIII는 시스템 시간을 사용하여 비트 타임을 기록했지만, 일단 공을 쏘면 속도를 높일 수 없었고, 애니메이션은 프레임 속도를 떨어 뜨릴만큼 무거웠으며, 시간 점수.) 타이머가 이미 프레임 당 약 한 번씩 이벤트를 실행 중이므로 빠를 수 없습니다.
AS3의 타이머는 실제로 신뢰할 만합니다. AS3의 타이머는 1000보다 작은 값을 가질 수 없습니다. 이것은 Adobe에서 공식적으로 문서화 한 것입니다. 1000ms 제한이있는 타이머에 대한 테스트를 수행 할 수도 있으며, 정확하지 않은 800-999ms 간격으로 무작위로 발사된다는 것을 알 수 있습니다.
프레임 제한/무료 응용 프로그램을 만들려면 더 나은 후보는 "getTimer"입니다. 전달 된 시간을 사용하여 올바른 시간을 계산 한 다음 프레임을 렌더링 할 수 있습니다. 이 프로젝트의 시계 클래스에서
봐는 : Realtime Clock
확실히 u 값은 1000ms보다 낮을 수 있습니다. "공식 문서"가 무엇을 읽었는지 모릅니다. livedocs에서 : 주 : 20 밀리 초 미만의 지연은 권장하지 않습니다. 타이머 빈도는 초당 60 프레임으로 제한됩니다. 즉, 지연 시간이 16.6 밀리 초보다 짧으면 런타임 문제가 발생합니다. – Urosan
나는 고쳐졌고, 나는 머리 속에 1 마이크로 초가 걸렸다. 고맙습니다. –
당신은 아무것도 잘못하지 않았다. 이상적이지는 않지만 플래시는 업데이트를 최대 프레임 속도로 제한합니다. 즉, Timer
이벤트가 정확하지 않습니다. 개인적으로, 나는 new Date().getTime()
를 사용하여 현재 시스템 시간을 확인하는 프레임 기반 루프를 사용하여 어떤 시간에 민감한하는 경향이, 그래서 나는 같은 것을 사용하는 것이이 도움이 될 수 있습니다
private var lastFrameTime:Number = new Date().getTime();
private var now:Number;
addEventListener(Event.ENTER_FRAME, frameTick);
private function frameTick(e:Event):void {
now = new Date().getTime();
V = V + n * (now - lastFrameTime) * 0.001;
lastFrameTime = now;
}
합니다.
public class Timer extends EventDispatcher
{
private var instance:int;
private var _interval:Number;
private var _updateInterval:uint;
private var _lastCount:int
private var _repeatCount:int;
private var _count:int;
private var _started:Boolean;
public function Timer(interval:Number,repeatCount:int=0)
{
_interval=interval;
_repeatCount=repeatCount;
}
private function checkTime():void
{
var curCount:int=int(currentTime()/_interval);
if(curCount<=_lastCount)return;
_lastCount=curCount
_count++;
dispatchEvent(new TimerEvent(TimerEvent.TIMER));
if(_count==_repeatCount&&_repeatCount>0)
{
stop();
dispatchEvent(new TimerEvent(TimerEvent.TIMER_COMPLETE));
_count=0;
}
}
public function start():void
{
if(_started)return;
_started=true;
instance = getTimer();
_updateInterval=setInterval(checkTime,10);
_lastCount=int(currentTime()/_interval);
}
public function stop():void
{
_started=false;
clearInterval(_updateInterval);
}
public function reset():void
{
_count=0;
stop();
start();
}
private function currentTime():Number
{
if (instance == 0)
{
instance = getTimer();
}
return (getTimer() - instance);
}
public function get currentCount():int
{
return _count;
}
}
- 1. as3 air unloadAndStop() 이벤트 리스너 또는 타이머
- 2. AS3 : 현재 업로드 속도 또는 처리량 계산
- 3. Java 타이머 속도 향상
- 4. Page 속도 테스트 타이머
- 5. 속도 향상 마스크 AS3
- 6. 타이머 클래스의 속도 요소 설정?
- 7. AS3 : 자동차 이동 속도
- 8. 응축 AS3 타이머
- 9. 플래시 AS3 타이머 질문
- 10. AS3 알람이있는 간단한 타이머?
- 11. AS3 지연 타이머 실행 및 시작 타이머
- 12. AS3 타이머 및 루프 정보
- 13. Android 앱 속도/프레임 속도?
- 14. 프레임 속도 대 샘플 속도
- 15. 변수를 사용하여 타이머 설정, as3
- 16. 문제를 일으키는 AS3 타이머 이벤트
- 17. AS3 타이머 생성자를 추가 하시겠습니까?
- 18. 이징 및 타이머 이벤트 AS3
- 19. OpenCV 프레임 속도 문제
- 20. AS3 - Y 속도 6.123031769111886E - 17
- 21. AS3 자동 스크롤 속도 제어
- 22. 데이터 속도 및 프레임 속도 속성
- 23. flashfirebug As3 콘솔 타이머 또는 setInterval이 작동하지 않습니다.
- 24. Java 타이머 예약 된 작업 실행 속도
- 25. XNA 프레임 워크의 타이머
- 26. AS3-Spod 예 또는 자습서? 또는 다른 AS3 ORM
- 27. 타이머 속도 VS 무한 루프 동안
- 28. 창 모드 프레임 속도 대 전체 화면 프레임 속도
- 29. AS3 타이머 변수에 # 1009 오류 발생
- 30. animateWithDuration의 프레임 속도 및 속도 기능은 무엇입니까
Actionscript의 모든 기능이 그대로 비동기식입니다. 니가 말하는 것은별로 의미가 없다. 미안해. –
글쎄, 입력 프레임 이벤트는 프레임 당 한 번 발생하고 프레임은 Flash의 자연 시간 단위입니다. 나는 타이머가 한 프레임 당 하나 이상의 이벤트를 발생시킬 수 없다는 것을 의미하므로 그리는 것과 같은 타이머는 불필요합니다. 프레임 리스너와 카운터를 사용하여 더 잘 수행 할 수 있습니다. – Vesper
Hehe, 플래시가 오히려 어리석은 게임을위한 것이지, 진지한 게임이 아니라는 것을 점점 더 알게되었습니다. 나는 AS3, 천재 ppl o_O – SherWood