2015-11-11 1 views
-1

Я использую рыбу в качестве курсора мыши, но когда я перемещаю ее вокруг своей сцены, она обращена только в одном направлении. то, что я хочу, это изменить направление, когда я перемещаю его влево или вправо.Как сменить кадры, когда я перемещаю мышь влево или вправо (actioncript)

ответ

0

Это позволит вам контролировать хронологию рыбы мувиклипа:

Он работает путем прослушивания для изменения положения мыши, который после определения скорости, в которой он делает это, перемещает хронологию желаемый movieclip вперед или назад в зависимости от нового направления мыши.

Взятый из следующей темы: https://forums.adobe.com/thread/1450102?tstart=0

var mc:MovieClip = MovieClip(this); // <- The timeline you want to control with mouse position 
var maxScrollSpeed:int=100; // max fps for mc above 
var m:Number; 
var b:Number; 
var prevFPS:int; 

paramF(0,-maxScrollSpeed,stage.stageWidth,maxScrollSpeed); 
this.addEventListener(MouseEvent.MOUSE_MOVE,scrollF); 

function scrollF(e:Event):void 
{ 
    var fps:int = Math.round(m*mouseX+b); 
    if(prevFPS&&prevFPS!=fps) 
    { 
     if(fps!=0) 
     { 
      if(fps>0) 
      { 
       playF(mc,mc.currentFrame,mc.totalFrames,fps); 
      } 
      else 
      { 
       playF(mc,mc.currentFrame,1,-fps); 
      } 
     } 
     else 
     { 
      stopF(mc); 
     } 
    } 
    prevFPS=fps; 
} 

function playF(mc:MovieClip, m:int, n:int, fps:int):void 
{ 
    var playFFF2:Function = function(mc:MovieClip):void 
    { 
     if (mc.m<mc.n) 
     { 
      mc.nextFrame(); 
     } 
     else 
     { 
      mc.prevFrame(); 
     } 
     if (mc.currentFrame == mc.n) 
     { 
      clearInterval(mc.int); 
     } 
     //updateAfterEvent(); 
    }; 
    mc.m = m; 
    mc.n = n; 
    mc.fps = fps; 
    mc.gotoAndStop(mc.m); 
    clearInterval(mc.int); 
    mc.int = setInterval(playFFF2, 1000/mc.fps, mc); 
} 
function stopF(mc:MovieClip):void 
{ 
    clearInterval(mc.int); 
} 

function paramF(x1:Number,y1:Number,x2:Number,y2:Number):void 
{ 
    m=(y1-y2)/(x1-x2); 
    b=y1-m*x1; 
} 
0

Сохраните позицию mouseX в переменной. Когда мышь перемещается, сравните новую позицию mouseX с вашей сохраненной переменной (вы можете сделать это с помощью событий ENTER_FRAME или MOUSE_MOVE). Если новое положение больше, чем предыдущее, установите scaleX в 1, если новое положение меньше предыдущей позиции, установите scaleX на -1 (или наоборот).
Обновить сохраненное значение и повторить.

+0

как я могу сделать выше работу с этим фрагментом коды "/ * Пользовательский курсор мыши Заменяет курсор мыши по умолчанию с указанным экземпляром символа */ . stage.addChild (Gfish); Gfish.mouseEnabled = ложь; Gfish.addEventListener (Event.ENTER_FRAME, fl_CustomMouseCursor_3); функция fl_CustomMouseCursor_3 (событие: событие) { \t Gfish.x = stage.mouseX; \t Gfish.y = stage.mouseY; } Mouse.hide(); // Чтобы восстановить указатель мыши по умолчанию, раскомментируйте следующие строки: //Gfish.removeEventListener(Event.ENTER_FRAME, fl_CustomMouseCursor_3); //stage.removeChild (Gfish); //Mouse.show(); " – sketcherskt