728x90
반응형
AS3.0 ControlBar_swf
import flash.media.Sound;
/*****************************************/
var playSpace:MovieClip = mcLoad;//플레이 객체
var controllArea:MovieClip = mcControll.controllArea;//바 이름
var barBg:MovieClip = mcControll.bar_bg;//바 이름
var barSymbol:MovieClip = mcControll.btn;//바 심폴
var playBtn:MovieClip = mcControll.play_btn;//플레이버튼
var stopBtn:MovieClip = mcControll.stop_btn;//정지버튼
barSymbol.buttonMode = true;
playBtn.buttonMode = true;
stopBtn.buttonMode = true;
/*****************************************/
var booPlay:Boolean = true;//초기값 플레이 여부
var booDrag:Boolean = false;//유저 드레그 여부
var booRepeat:Boolean = false;//리핏 기능
var goFrame:Number;//유저가 드래그 한 위치로 이동
var totalFramesNumber:Number;//전체 프레임
var currentFrameNumber:Number;//진행 프레임
var barBgWidth:Number;//컨트롤바 넓이 계산
mcLoad.addEventListener(Event.ENTER_FRAME,init);//초기 세팅
function init(e:Event):void{//초기값 세팅
if( !totalFramesNumber ){
totalFramesNumber = playSpace.totalFrames;//전체 길이
barBgWidth = barBg.width-(barSymbol.width/2);//컨트롤바 넓이 = 바 넓이-(바 심폴/2)
playHandler();//플레이컨트롤
}else{
currentFrameNumber = playSpace.currentFrame;//진행계산
if( !booDrag ){//barSymbol 드래그 아니면
/*************+83 => barSymbol 상대적 x=0 위치******************/
barSymbol.x = ((currentFrameNumber*barBgWidth)/totalFramesNumber)+83;
}
barSymbol.addEventListener(MouseEvent.MOUSE_DOWN, barSymbolDownHandler);//컨트롤바 심볼(startDrag)
playBtn.addEventListener(MouseEvent.CLICK, playBtnHandler);//플레이버튼
stopBtn.addEventListener(MouseEvent.CLICK, stopBtnHandler);//정지버튼
if( !booRepeat && currentFrameNumber >= totalFramesNumber ){//마지막 페이지 일때
booPlay = false;//정지
playHandler();
}
}
}
function barSymbolDownHandler(e:MouseEvent):void{//드레이 중(마우스 클릭 상태)
playSpace.stop();
booDrag = true;//드레그 시작
booPlay = !booDrag;
var rec:Rectangle = new Rectangle(barBg.x,barBg.y,barBgWidth,0);//x,y,w,h
barSymbol.startDrag(false,rec);//flash.display
barSymbol.addEventListener(MouseEvent.MOUSE_MOVE, barSymbolMoveHandler);//컨트롤바 심볼(Drag)
barSymbol.addEventListener(MouseEvent.MOUSE_UP, barSymbolUpHandler);//컨트롤바 심볼(stopDrag)
}
function barSymbolMoveHandler(e:MouseEvent):void{//마우스 이동
/*************(barSymbol.x-83) => barSymbol 상대적 x=0 위치******************/
goFrame = Math.floor (((barSymbol.x-83)*totalFramesNumber)/barBgWidth);
playSpace.gotoAndStop(goFrame);
}
function barSymbolUpHandler(e:MouseEvent):void{//드레이 이후(마우스 놓았을 때)
booDrag = false;
booPlay = !booDrag;
barSymbol.removeEventListener(MouseEvent.MOUSE_DOWN, barSymbolDownHandler);
barSymbol.removeEventListener(MouseEvent.MOUSE_MOVE, barSymbolMoveHandler);
playSpace.gotoAndPlay(goFrame);
barSymbol.stopDrag();
}
function playBtnHandler(e:MouseEvent):void{//플레이 버튼 컨트롤
if( booPlay ){//플레이 true
booPlay = false;
if( currentFrameNumber >= totalFramesNumber ){//현재 프레임이 전체와 같거나 크면
currentFrameNumber = 1;
}
}else{
booPlay = true;
}
playHandler();
}
function stopBtnHandler(e:MouseEvent):void{//정지 버튼 컨트롤
booPlay = false;
playSpace.gotoAndStop(1);
}
function playHandler(){//플레이 컨트롤
if( !booRepeat && ( currentFrameNumber >= totalFramesNumber )){//리핏 기능 없고 현재 프레임이 전체와 같거나 커지면
booPlay = false;
currentFrameNumber = totalFramesNumber;
}else if( currentFrameNumber >= totalFramesNumber ){//현재 프레임이 전체와 같거나 크면
booPlay = true;
currentFrameNumber = 1;
}
if( booPlay ){//false
playBtn.gotoAndStop(1);
playSpace.play();
}else{
playBtn.gotoAndStop(2);
playSpace.stop();
}
}
/*****************************************/
var playSpace:MovieClip = mcLoad;//플레이 객체
var controllArea:MovieClip = mcControll.controllArea;//바 이름
var barBg:MovieClip = mcControll.bar_bg;//바 이름
var barSymbol:MovieClip = mcControll.btn;//바 심폴
var playBtn:MovieClip = mcControll.play_btn;//플레이버튼
var stopBtn:MovieClip = mcControll.stop_btn;//정지버튼
barSymbol.buttonMode = true;
playBtn.buttonMode = true;
stopBtn.buttonMode = true;
/*****************************************/
var booPlay:Boolean = true;//초기값 플레이 여부
var booDrag:Boolean = false;//유저 드레그 여부
var booRepeat:Boolean = false;//리핏 기능
var goFrame:Number;//유저가 드래그 한 위치로 이동
var totalFramesNumber:Number;//전체 프레임
var currentFrameNumber:Number;//진행 프레임
var barBgWidth:Number;//컨트롤바 넓이 계산
mcLoad.addEventListener(Event.ENTER_FRAME,init);//초기 세팅
function init(e:Event):void{//초기값 세팅
if( !totalFramesNumber ){
totalFramesNumber = playSpace.totalFrames;//전체 길이
barBgWidth = barBg.width-(barSymbol.width/2);//컨트롤바 넓이 = 바 넓이-(바 심폴/2)
playHandler();//플레이컨트롤
}else{
currentFrameNumber = playSpace.currentFrame;//진행계산
if( !booDrag ){//barSymbol 드래그 아니면
/*************+83 => barSymbol 상대적 x=0 위치******************/
barSymbol.x = ((currentFrameNumber*barBgWidth)/totalFramesNumber)+83;
}
barSymbol.addEventListener(MouseEvent.MOUSE_DOWN, barSymbolDownHandler);//컨트롤바 심볼(startDrag)
playBtn.addEventListener(MouseEvent.CLICK, playBtnHandler);//플레이버튼
stopBtn.addEventListener(MouseEvent.CLICK, stopBtnHandler);//정지버튼
if( !booRepeat && currentFrameNumber >= totalFramesNumber ){//마지막 페이지 일때
booPlay = false;//정지
playHandler();
}
}
}
function barSymbolDownHandler(e:MouseEvent):void{//드레이 중(마우스 클릭 상태)
playSpace.stop();
booDrag = true;//드레그 시작
booPlay = !booDrag;
var rec:Rectangle = new Rectangle(barBg.x,barBg.y,barBgWidth,0);//x,y,w,h
barSymbol.startDrag(false,rec);//flash.display
barSymbol.addEventListener(MouseEvent.MOUSE_MOVE, barSymbolMoveHandler);//컨트롤바 심볼(Drag)
barSymbol.addEventListener(MouseEvent.MOUSE_UP, barSymbolUpHandler);//컨트롤바 심볼(stopDrag)
}
function barSymbolMoveHandler(e:MouseEvent):void{//마우스 이동
/*************(barSymbol.x-83) => barSymbol 상대적 x=0 위치******************/
goFrame = Math.floor (((barSymbol.x-83)*totalFramesNumber)/barBgWidth);
playSpace.gotoAndStop(goFrame);
}
function barSymbolUpHandler(e:MouseEvent):void{//드레이 이후(마우스 놓았을 때)
booDrag = false;
booPlay = !booDrag;
barSymbol.removeEventListener(MouseEvent.MOUSE_DOWN, barSymbolDownHandler);
barSymbol.removeEventListener(MouseEvent.MOUSE_MOVE, barSymbolMoveHandler);
playSpace.gotoAndPlay(goFrame);
barSymbol.stopDrag();
}
function playBtnHandler(e:MouseEvent):void{//플레이 버튼 컨트롤
if( booPlay ){//플레이 true
booPlay = false;
if( currentFrameNumber >= totalFramesNumber ){//현재 프레임이 전체와 같거나 크면
currentFrameNumber = 1;
}
}else{
booPlay = true;
}
playHandler();
}
function stopBtnHandler(e:MouseEvent):void{//정지 버튼 컨트롤
booPlay = false;
playSpace.gotoAndStop(1);
}
function playHandler(){//플레이 컨트롤
if( !booRepeat && ( currentFrameNumber >= totalFramesNumber )){//리핏 기능 없고 현재 프레임이 전체와 같거나 커지면
booPlay = false;
currentFrameNumber = totalFramesNumber;
}else if( currentFrameNumber >= totalFramesNumber ){//현재 프레임이 전체와 같거나 크면
booPlay = true;
currentFrameNumber = 1;
}
if( booPlay ){//false
playBtn.gotoAndStop(1);
playSpace.play();
}else{
playBtn.gotoAndStop(2);
playSpace.stop();
}
}
반응형
LIST
'전공 > 실무' 카테고리의 다른 글
[as3.0] 백넥과 팝업 (1) | 2012.12.06 |
---|---|
[as2.0&3.0]volume (0) | 2012.12.06 |
[as3.0]부모, 자식 객체 (0) | 2012.12.06 |
[as3.0] getChildAt, getChildByName (0) | 2012.12.06 |
xmlrpc [soap] 실 사용 방법 소스 바로 적용 가능~^^ (0) | 2011.08.17 |