PDA

Просмотр полной версии : События клавиш


Neon_iT
21.10.2006, 20:15
Подскажите, как прописать во фреймы события по клавишам? Например, по нажатию одной клавиши перейти и остановиться в следующем кадре, и аналогично перейти обратно.
Важна именно обработка событий...

DarkLight
21.10.2006, 20:19
->Поиск.
Ключевые слова Key.isDown, Key.onKeyDown

инфы море

Хемуль
21.10.2006, 21:44
2 Neon_iT:
Пример:

var left:Number = 275;
var top:Number = 400;
var footStepsClip:MovieClip = this.attachMovie("footSteps", "footSteps", this.getNextHighestDepth(), {_x:left, _y:top});
footStepsClip.gotoAndStop(1);

var myKeyListener:Object = new Object();
myKeyListener.onKeyDown = myOnKeyDown;
Key.addListener(myKeyListener);

function myOnKeyDown()
{
if (Key.isDown(Key.RIGHT) && footSteps._currentframe < footSteps._totalframes)
{
footStepsClip.nextFrame();
}
else
{
if (Key.isDown(Key.LEFT) && footSteps._currentframe > 1)
{
footStepsClip.prevFrame();
}
}
}

Исходник прикрепляю...

Neon_iT
21.10.2006, 22:00
Я вставляю в первый фрейм вот такой код

stop();

var myKeyListener:Object = new Object();
myKeyListener.onKeyDown = myOnKeyDown;
Key.addListener(myKeyListener);

function myOnKeyDown()
{
if (Key.isDown(Key.RIGHT))
{
gotoAndStop(10);
}
else
{
if (Key.isDown(Key.LEFT))
{
gotoAndStop(15);
}
}
}
но он почему то не срабатывает...

DarkLight
21.10.2006, 22:17
2Neon_iT
У меня этот код работает

Neon_iT
21.10.2006, 22:18
2Neon_iT
У меня этот код работает
кинь пожалуйста исходник

DarkLight
21.10.2006, 22:23
Вот: 15556

Neon_iT
21.10.2006, 22:29
Я работаю в MX и после того, как пересохранил в mx, там он работать перестал...

DarkLight
21.10.2006, 22:38
убери ":Object" - заработает.

Хемуль
21.10.2006, 22:40
2 Neon_iT:
Я ж вам прикреплял исходник:
http://flasher.ru/forum/attachment.php?attachmentid=15555&d=1161449067

Neon_iT
29.10.2006, 20:10
Поставил на первый кадр такой код:
stop();
var myKeyListener = new Object();
myKeyListener.onKeyDown = myOnKeyDown;
Key.addListener(myKeyListener);
function myOnKeyDown() {
if (Key.isDown(Key.RIGHT)||Key.isDown(Key.ENTER)||Key.isDown(Key.SPACE)) prevFrame();
if (Key.isDown(Key.LEFT)) nextFrame();
}
но после нескольких переходов что-то сбивается, и переход осуществляется через 3 кадра и более. Как это побороть?

iNils
29.10.2006, 20:30
Причина описана тут
http://flasher.ru/forum/showthread.php?t=87002
Лечится так
stop ();
if (myKeyListener == undefined) {
var myKeyListener = new Object ();
myOnKeyDown = function () {
if (Key.isDown (Key.RIGHT) || Key.isDown (Key.ENTER) || Key.isDown (Key.SPACE)) {
prevFrame ();
}
if (Key.isDown (Key.LEFT)) {
nextFrame ();
}
};
myKeyListener.onKeyDown = myOnKeyDown;
Key.addListener (myKeyListener);
}

Neon_iT
29.10.2006, 21:22
Спасибо!