반복구문에 대해 #2
무한루프와 타임아웃
enterFrame을 사용하는 이유는 뭘까요? 여러 가지 상황이 주어집니다만 제 생각엔 enterFrame을 사용할 수 밖에 없기 때문에 사용한다가 정답인 듯합니다.
- 농담이 아니라 as3는 while( true ); 와 같은 무한 루프가 불가능하기 때문에 연속적인 행위를 기술하기 위해서는 enterFrame을 사용할 수 밖에 없습니다.
- 또한 반복이 순식간에 일어나지 않고 지연시켜가며 일정한 주기로 일어나길 바란다면 시간타이밍 제어와 함께 루프를 돌아야 하기 때문에 enterFrame을 쓰게 되죠.
다른 시스템언어에서는 무한루프를 허용하므로 아래와 같은 방식으로 구현할 수 있습니다.
while( true ){
//할일
sleep( 50 ); //50ms 멈춰있는다.
}
여튼 문제는 enterFrame을 쓰는 게 아니라 enterFrame을 쓰기 위해 쓸데없는 DisplayObject를 만들어야 한다는 점입니다. 그래서 Shape나 Sprite 도움 없이 간단히 루프를 돌기 위해 사용할 수 있는 방법을 강구해볼 필요가 있습니다. 여기 arguments.callee와 setTimeout을 이용하는 간단한 방법이 있습니다.
Continue reading ‘반복구문에 대해 #2’ »