2013-11-25 2 views
0

심각한 이미지를 제어하는 ​​코드가 있고 mouseX 축을 끌 때 360 스핀이 발생합니다. 이 모든 것은 내가 사용한 코드로 잘 동작했다.AS3에 영향을 미치는 스테이지 크기 조정

나는 다른 플랫폼을 위해 디자인해야하고 문서 설정에서 스테이지로 확인란을 확장하여 스테이지의 크기를 확대해야했습니다.

스핀들이 의도 한대로 이미지를 드래그하면서 잘 동작하지만 다시 놓기를 시작하면 다시 마지막 프레임을 기억하지 않고 다른 프레임으로 건너 뛰기 전에 다시 드래그합니다. 내가 한 모든 일이 모든 일의 규모를 바꿀 때 왜 이렇게 뛰는거야?

나는이 문제를 해결의에 보이는 모든 것을 다시 원활하게 실행

spinX_mc.addEventListener(MouseEvent.MOUSE_MOVE,drag); 
offsetX = mouseX; 

spinX_mc.addEventListener(MouseEvent.MOUSE_MOVE,drag); 
offsetX = stage.mouseX; 

을 변경하여

//ROTATION OF CONTROL BODY X 
spinX_mc.stop(); 

var spinX_mc:MovieClip; 
var offsetFrame:int = spinX_mc.currentFrame; 
var offsetX:Number = 0; 
var percent:Number = 0; 

//Listeners 
spinX_mc.addEventListener(MouseEvent.MOUSE_DOWN, startDragging); 
spinX_mc.addEventListener(MouseEvent.MOUSE_UP, stopDragging); 

function startDragging(e:MouseEvent):void 
{ 

    // start listening for mouse movement 
    spinX_mc.addEventListener(MouseEvent.MOUSE_MOVE,drag); 
    offsetX = stage.mouseX; 
} 

function stopDragging(e:MouseEvent):void 
{ 
    ("stopDrag") 
    // STOP listening for mouse movement 
    spinX_mc.removeEventListener(MouseEvent.MOUSE_MOVE,drag); 
    // save the current frame number; 

    offsetFrame = spinX_mc.currentFrame; 

    removeEventListener(MouseEvent.MOUSE_DOWN, startDragging); 
} 

// this function is called continuously while the mouse is being dragged 

function drag(e:MouseEvent):void 
{ 
    trace ("Drag") 
    // work out how far the mouse has been dragged, relative to the width of the spinX_mc 
    // value between -1 and +1 
    percent = (mouseX - offsetX)/spinX_mc.width; 
    // trace(percent); 

    // work out which frame to go to. offsetFrame is the frame we started from 
    var frame:int = Math.round(percent * spinX_mc.totalFrames) + offsetFrame; 

    // reset when hitting the END of the spinX_mc timeline 
    while (frame > spinX_mc.totalFrames) 
    { 
     frame -= spinX_mc.totalFrames; 
    } 
    // reset when hitting the START of the spinX_mc timeline 
    while (frame <= 0) 
    { 
     frame += spinX_mc.totalFrames; 
    } 

    // go to the correct frame 
    spinX_mc.gotoAndStop(frame); 
} 

답변

0

에 코드 사용을 참조하십시오.

관련 문제