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);
}