Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   проигрывание мув клип при нажатой клавише и проигрывание его в обратную сторону (http://www.flasher.ru/forum/showthread.php?t=126161)

alex001 12.06.2009 09:45

проигрывание мув клип при нажатой клавише и проигрывание его в обратную сторону
 
доброе время суток, флэшеры. :)
есть вопрос.
есть мув клип. в нем около 100 кадров.
надо чтобы при нажатии клавиши вверх мув клип проигрывался вперед. а при нажатии соответственно назад он проигрывался В ОБРАТНУЮ СТООРОНУ. :confused:
не знаю как сделать ни то ни другое :wacko:

Добавлено через 2 часа 53 минуты
никто незнает? :(

script_user 12.06.2009 12:49

мне бы тоже было интерестно.

Dr.OH 12.06.2009 13:19

Код AS1/AS2:

onEnterFrame = function() {
    prevFrame();
}


alex001 12.06.2009 13:23

несовсем понял. я так понял что это функция которая должна производиться при нажатии клавиши. но это, как я понял, переведет мув клип на 1 кадр назад. а не будет проигрывать его задом на перед.

KiL33 12.06.2009 13:48

Делай аналогично этому
Код AS1/AS2:

this.createEmptyMovieClip("square_mc", this.getNextHighestDepth());
square_mc.beginFill(0xFF0000);
square_mc.moveTo(10, 10);
square_mc.lineTo(100, 10);
square_mc.lineTo(100, 100);
square_mc.lineTo(10, 100);
square_mc.lineTo(10, 10);
square_mc.endFill();
 
var keyListener_obj:Object = new Object();
keyListener_obj.onKeyDown = function() {
    switch (Key.getCode()) {
    case Key.UP :
    square_mc._y -= 10;
  break;
    case Key.DOWN :
    square_mc._y += 10;
    break;
    }
};
Key.addListener(keyListener_obj);

square_mc-это твой мувик со ста кадрами..по нажатии на UP вызывай play()..при нажатии на Down зацикли prevFrame c условием 0 кадр..и усё.

Dr.OH 12.06.2009 14:07

Ты нажал клавишу вниз и на событие onEnterFrame твоего мувика вешаем функцию prevFrame(). Благодаря этому проигрывание фреймов будет происходить в обратном порядке. Когда нажали клавишу вверх просто удаляем этот обработчик.
Т.е.? пусть твой клип называется my_mc:
Код AS1/AS2:

var keyListener_obj:Object = new Object();
keyListener_obj.onKeyDown = function() {
    switch (Key.getCode()) {
      case Key.UP :
          delete my_mc.onEnterFrame;
      break;
      case Key.DOWN :
          my_mc.onEnterFrame = function() {prevFrame();}
      break;
    }
};
Key.addListener(keyListener_obj);


alex001 12.06.2009 14:08

kil33,не совсем понял код. чтобы он двигался вверх вниз мне не надо. мне надо при нажатии на клавише вверх он не двигался а играл анимацию пока клавиша нажата. а когда нажата клавиша вниз он проигрываеться задом на перед. но с того места где он остановился. будет игрок. при нажатии на клавише вперед будет анимация дороги.(мув клипа с сто кадрами.).
Dr.OH, что то не работает этот код. а когда не неажато не вверх ни вниз мув клип должен останавливаться. мув клип должен проигрываться назад ПОКА клавиша вниз нажата.

Gal4enochek 12.06.2009 15:25

Код AS1/AS2:

mc.stop(); // стопорим ваш мувик
// flag - переменная которая определяет в какую сторону будет проигрываться мувик
// (1 - вперед, -1 - назад, 0 - стоять на месте).
var flag :Number = 0;
// определем функцию для мувика
mc.onEnterFrame = function(){
        if (flag == 1) mc.nextFrame()// переходим на следующий кадр
        if (flag == -1) mc.prevFrame()// переходим на предыдущий кадр
        // во всех остальных случаях мувик будет стоять
}
// листнер
var listener :Object = new Object();
// обработчик нажатий клавиши
listener.onKeyDown = function() {
    switch (Key.getCode()) {
      case Key.UP :
          flag = 1// если нажата вверх то выставляем флаг в 1
      break;
      case Key.DOWN :
          flag = -1  // если нажата вниз то - -1
      break;
    }
};
// обработчик отпускания клавиши сбрасываем флаг в 0, чтобы мувик остановился
listener.onKeyUp = function() {
    switch (Key.getCode()) {
      case Key.UP :
          flag = 0;
      break;
      case Key.DOWN :
          flag = 0
      break;
    }
};
// вешаем листнер с обработчиками на клвиатуру
Key.addListener(listener);


alex001 12.06.2009 15:55

не понял кода, НО РАБОТАЕТ!!!
спасибо огромное.

Gal4enochek 12.06.2009 16:59

дописала комменты, может понятнее будет :)


Часовой пояс GMT +4, время: 17:17.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.