Как остановить мувиклип на оси Y с помощью кнопок?
У меня есть две кнопки, которые перемещают видеоклип вверх / вниз по оси Y. Как заставить видеоклип остановиться на определенной высоте и при этом иметь возможность перемещать его в противоположном направлении?
Мне нужно, чтобы это работало так:
Когда вы нажимаете кнопку "вниз", видеоклип идет вниз, но не дальше Y=500. Когда вы нажимаете кнопку "вверх", видеоклип перемещается вверх, но не дальше Y= 300.
Я заставляю мувиклип останавливаться в правильной точке (500), но когда он достигает этой точки, он застревает... поэтому он не поднимется снова, если я нажму кнопку вверх.
Может кто-то помочь мне, пожалуйста?:)
вот мой код до сих пор:
1) decrease = the down-button
2) increase = up-button
3) stempel = the movieclip I want to stop on the Y-axis
var moveStempel = 0;
decrease.addEventListener(MouseEvent.MOUSE_DOWN, decreasePressed);
decrease.addEventListener(MouseEvent.MOUSE_UP, removeEnterFrame);
increase.addEventListener(MouseEvent.MOUSE_DOWN, increasePressed);
increase.addEventListener(MouseEvent.MOUSE_UP, removeEnterFrame);
function decreasePressed(e:MouseEvent):void
{
moveStempel = 2;
addEnterFrame();
}
function increasePressed(e:MouseEvent):void
{
moveStempel = -2;
addEnterFrame();
}
// ADD ENTER FRAME
function addEnterFrame():void
{
this.addEventListener(Event.ENTER_FRAME, update);
}
function removeEnterFrame(e:MouseEvent):void
{
this.removeEventListener(Event.ENTER_FRAME, update);
}
function update(e:Event):void
{
if (stempel.y < 500)
{
stempel.y += moveStempel;
trace("inside");
}
else if (stempel.y > 500)
{
stempel.stop();
trace("outside");
}
1 ответ
В вашем коде прямо сейчас, один раз stempel
имеет y
значение больше 500, он никогда не сможет двигаться снова.
Есть два условия, когда stempel
может двигаться: если он движется вниз, он не может быть в нижней части разрешенной области, а если он движется вверх, он не может быть в верхней части разрешенной области.
if ((stempel.y < 500 && moveStempel == 2) || (stempel.y > 300 && moveStempel == -2))
{
stempel.y += moveStempel;
trace("inside");
}
else
{
stempel.stop();
trace("outside");
}