이번에는 버튼으로 모션을 제어하는 예제를 만들어보자.
[code as3]
package
{
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
public class MotionExample02 extends Sprite
{
public function MotionExample02()
{
super(); // Sprite 객체 생성
pan_mc.stop(); // 펜 초기 설정 정지
play_mc.stop(); // 재생버튼 초기 설정 정지
// 각 버튼 이벤트 등록
play_mc.addEventListener(MouseEvent.CLICK, playButtonClickHandler);
stop_mc.addEventListener(MouseEvent.CLICK, stopButtonClickHandler);
prev_mc.addEventListener(MouseEvent.CLICK, prevButtonClickHandler);
next_mc.addEventListener(MouseEvent.CLICK, nextButtonClickHandler);
// 각 버튼 마우스 오버시 손모양
setButtons(play_mc);
setButtons(stop_mc);
setButtons(prev_mc);
setButtons(next_mc);
}
/**
* @private
* 버튼 모드
*/
private function setButtons(target:MovieClip):void
{
target.buttonMode = true;
target.useHandCursor = true;
}
/**
* @private
* 재생 버튼
*/
private function playButtonClickHandler(event:MouseEvent):void
{
if(play_mc.currentFrame == 1) // // 재생버튼이면
{
play_mc.gotoAndStop(2); // 일시정지 버튼으로
pan_mc.play(); // 재생
pan_mc.addEventListener(Event.ENTER_FRAME, panStopHandler); // 펜 정지 이벤트 수신 등록
}
else // 일시정지 버튼이면
{
play_mc.gotoAndStop(1); // 재생 버튼으로
pan_mc.stop(); // 펜 정지
}
}
/**
* @private
* 정지 버튼
*/
private function stopButtonClickHandler(event:MouseEvent):void
{
play_mc.gotoAndStop(1); // 재생 버튼 모드
pan_mc.gotoAndStop(1); // // 처음 재생 모드
}
/**
* @private
* 펜 정지
*/
private function panStopHandler(event:Event):void
{
if(pan_mc.currentFrame == pan_mc.totalFrames) // 프레임이 끝나면
{
pan_mc.stop(); // 재생 정지
play_mc.gotoAndStop(1); // 처음 재생 모드로
pan_mc.removeEventListener(Event.ENTER_FRAME, panStopHandler); // 수신 이벤트 제거
}
}
/**
* @private
* 이전 버튼
*/
private function prevButtonClickHandler(event:MouseEvent):void
{
if(pan_mc.currentFrame == 1) // 첫 프레임이면
{
pan_mc.gotoAndStop(pan_mc.totalFrames); //마지막 프레임으로
}
else
{
pan_mc.prevFrame(); // 이전 프레임으로
}
}
/**
* @private
* 다음 버튼
*/
private function nextButtonClickHandler(event:MouseEvent):void
{
if(pan_mc.currentFrame == pan_mc.totalFrames) // 마지막 프레임이면
{
pan_mc.gotoAndStop(1); // 첫 프레임으로
}
else
{
pan_mc.nextFrame(); // 다음 프레임으로
}
}
}
}
[/code]
아주 간단한 예제를 한번 만들어 보았다. 음..잘되는 것 같다. 하지만 여기에는 많이 문제들이 숨어 있다.
댓글 없음:
댓글 쓰기