![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Mar 2009
Сообщений: 122
|
спасибо. намного понятнее.
|
|
|||||
|
тыгды лучше так
mc.stop(); var flag:Number = 0; // определем функцию для мувика function start_f(num:Number) { mc.onEnterFrame = function() { if (num) { mc.nextFrame();// переходим на следующий кадр } else { mc.prevFrame();// переходим на предыдущий кадр } trace(flag == num); }; } var listener:Object = new Object(); // обработчик нажатий клавиши listener.onKeyDown = function() { switch (Key.getCode()) { case Key.UP : start_f(1);// если нажата вверх фалсе break; case Key.DOWN : start_f(0);// если нажата вниз то труе break; } }; listener.onKeyUp = function() { switch (Key.getCode()) { case Key.UP : delete mc.onEnterFrame;//убиваем нах break; case Key.DOWN : delete mc.onEnterFrame;//туда же break; } }; // вешаем листнер с обработчиками на клвиатуру Key.addListener(listener); |
|
|||||
|
Регистрация: Mar 2009
Сообщений: 122
|
код весь понял но появилась необходимость при нажатии верх и налево чтобы мувик играл вперед но в два раза медленее.тоесть должно быть нажато 2 клавиши одновременно. при нажатии вперед и вправо должно происходить тоже самое.
много хочу, но это последнее. ![]() |
|
|||||
|
А что означает
Цитата:
Ну введите несколько флагов var upPress :Boolean = false; var downPress :Boolean = false; var leftPress :Boolean = false; var rightPress :Boolean = false; mc.onEnterFrame = function(){ if (upPress && leftPress) mc.nextFrame(); // переходим на следующий кадр if (downPress && rightPress) mc.prevFrame(); // переходим на предыдущий кадр // во всех остальных случаях мувик будет стоять } // листнер var listener :Object = new Object(); // обработчик нажатий клавиши listener.onKeyDown = function() { switch (Key.getCode()) { case Key.UP : upPress = true; break; case Key.DOWN : downPress = true; break; case Key.LEFT : leftPress = true; break; case Key.RIGHT : rightPress = true; break; } }; // обработчик отпускания клавиши сбрасываем флаг в 0, чтобы мувик остановился listener.onKeyUp = function() { switch (Key.getCode()) { case Key.UP : upPress = false; break; case Key.DOWN : downPress = false; break; case Key.LEFT : leftPress = false; break; case Key.RIGHT : rightPress = false; break; } }; |
|
|||||
|
Регистрация: Mar 2009
Сообщений: 122
|
при нажатии вперед и вправо означает вверх и направо. я опечатался.
а код чтото не работает. должно быть вот как : при нажатии вверх он играет. при нажатии вниз он играет задом на перед. при нажатии двух клавиш одновременно а иммено вверх и налево он играет в два раза медленее. при нажатии вверх и направо он тоже играет в два раза медленее. |
|
|||||
|
Регистрация: Sep 2005
Сообщений: 950
|
попробуйде вот так
mc.stop(); var flag:Number = 0; // определем функцию для мувика function start_f(num:Number,f:Boolean) { mc.onEnterFrame = function() { if(f){ if (num) { mc.nextFrame();// переходим на следующий кадр } else { mc.prevFrame();// переходим на предыдущий кадр } } else{ if(flag%2==0){ if (num) { mc.nextFrame();// переходим на следующий кадр } else { mc.prevFrame();// переходим на предыдущий кадр } } } flag ++; }; } var pres:Boolean = false; var listener:Object = new Object(); // обработчик нажатий клавиши listener.onKeyDown = function() { if(Key.getCode()==Key.LEFT || Key.getCode()==Key.RIGHT){//&&Key.getCode()==39){ pres = true; } if((Key.getCode()==Key.UP) && pres){ start_f(1,false); } else if(Key.getCode()==Key.UP){ start_f(1,true); } if((Key.getCode()==Key.DOWN) && pres){ start_f(0,false); } else if(Key.getCode()==Key.DOWN){ start_f(0,true); } }; listener.onKeyUp = function() { if(Key.getCode()==Key.LEFT || Key.getCode()==Key.RIGHT){ pres = false; } switch (Key.getCode()) { case Key.UP : delete mc.onEnterFrame;//убиваем нах break; case Key.DOWN : delete mc.onEnterFrame;//туда же break; } }; // вешаем листнер с обработчиками на клвиатуру Key.addListener(listener); |
|
|||||
|
Регистрация: Mar 2009
Сообщений: 122
|
чтото тоже не пашет. работает клавиши вверх вниз. но при одновремменном нажатии вверх и налево происходит тоже самое что и при нажатии вверх. на самом деле или мне кажеться, но вроде при нажатии вниз он едит медленнее.вообщем - не пашет.
|
|
|||||
|
Регистрация: Sep 2005
Сообщений: 950
|
вот пример который работает
|
|
|||||
|
Регистрация: Mar 2009
Сообщений: 122
|
спасибо, действительно работает.
а можно сделать так: когда нажимеш вверх он играет на полной скорости, а начинает играть медленнее когда нажмеш лево/право а потом вверх. а можно чтобы нажмеш вверх а потом дожмеш лево/право и он начнет медленную скорость? вообщем если нажмеш вверх он играет его на полной скорости и если ты будеш держать вверх нажатой и дожмеш лево/право он на это не реагирует. если нажмеш лево/право и дожмеш вверх только тогда играет медленно. а как сделать чтобы он играл на медленной скорости когда ты держишь вверх нажатой и дожмеш лево/право? Последний раз редактировалось alex001; 16.06.2009 в 17:29. |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 2
|
флэш плохо так с клавишами работает. но кодом думаю можно. только я сам не знаю.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 00:22. |
|
|
« Предыдущая тема | Следующая тема » |
|
|