Я использую рыбу в качестве курсора мыши, но когда я перемещаю ее вокруг своей сцены, она обращена только в одном направлении. то, что я хочу, это изменить направление, когда я перемещаю его влево или вправо.Как сменить кадры, когда я перемещаю мышь влево или вправо (actioncript)
-1
A
ответ
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 (или наоборот).
Обновить сохраненное значение и повторить.
как я могу сделать выше работу с этим фрагментом коды "/ * Пользовательский курсор мыши Заменяет курсор мыши по умолчанию с указанным экземпляром символа */ . 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