Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблемы с stage.addEventListener (http://www.flasher.ru/forum/showthread.php?t=183334)

Nace 18.08.2012 19:46

Проблемы с stage.addEventListener
 
Здравствуйте! Я раньше никогда не работал с AS3, только AS2. И для того, чтобы сделать, например передвижение объекта, по зажатой клавише, нужно было создать таймер и использовать оператор:
Цитата:

if(key.isDown(key.DOWN)){
...
А как я понял, это теперь не работает, теперь нужно писать:
Цитата:

stage.addEventListener(keyboardEvent.KEY_DOWN, keyPressed);
function keyPressed(event:keyboard){
Код по нажатию клавиши он перемещаеться
}
Но когда я запускаю, он делает сначало анимацию движения, потом катит его, а когда отпускаешь кнопку сного анимацию. А нужно всё одновременно делать. Помогите пожалуйста!

Krusty 18.08.2012 20:15

вместо
Код:

Код по нажатию клавиши он перемещаеться
пишите
Код:

trace(event);
и в среде разработки смотрите, сколько раз срабатывает и когда.

MINASTIS 18.08.2012 20:22

Цитата:

теперь нужно писать:
Event не keyboard а KeyboardEvent.

А так да. Все правильно. Остальное - непонятная проблема (какая анимация? что катит? что, где одновременно?), если хотите совета, пишите подробней.

Nace 18.08.2012 20:50

Если вам не сложно, не могли бы вы написать код, который бы перемещал объект по нажатию клавиши? Например объект с именем ball.

MINASTIS 18.08.2012 21:11

Дополняя ваш код, самое простое.

Код AS3:

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
function keyPressed(event:KeyboardEvent){
obj.x+=2;
}

Изменяя параметр его положение по оси x, плюсуя каждый раз 2, объект двигаем вправо.
На самом деле, если вы заинтересованы в программировании и понимании многих вещей для, например тех же игр, почитайте Колина Мука ActionScript 3. Основы очень вам помогут.

Nace 18.08.2012 21:30

Вы написали немного не то, что я просил. Я просил показать код, что по нажатию определённой клавиши он движеться, например клавиши Down. И при этом попробуйте дать объекту анимацию движения, так же запускающуюся по нажатию клавиши Down и вы увидите что изначально идёт анимация, потом перемещение объекта и в конце опять анимация!!! Когда попробуете, и если у вас получиться сделать перемещение с анимацие одновременно, то покажите пожалуйста код. Я буду вам очень благодарен!!!

MINASTIS 18.08.2012 21:38

Если вам нужно готовое решение, вам не сюда.
Пока что проблема не понятна, т.к. нет исходника, а по вашим словам мало что понятно.
Также рядом есть тема с подобной проблемой, там все решилось проверкой нажатия клавиши и видимостью\не видимостью объекта с нужной анимацией. Посмотрите и ее.

Nace 18.08.2012 21:48

Смотрите. Проблема в том что по зажатию клавиши, объект изначально дёргаеться, а потом только начинает непрерыно перемещаться, то есть работает не как if(Key.isDown()), а как on(keyPress ""). А мне нужно что-нибудь сделать, что бы работало как раз как if(key.isDown())!

Krusty 18.08.2012 22:13

То есть анимировался, пока клавишу не отпустили? Я так понимаю, у вас анимация через Event.ENTER_FRAME ?

Wolsh 18.08.2012 22:23

я подозреваю, что поскольку речь идет явно об анимации в кадрах, то при запуске анимации объекта код перестает его видеть (а может наоборот, код со второго кадра и дальше не "виден"), пока анимация не кончится и клип опять не попадет на начальный кадр, где объект виден и снова получает одно смещение, и снова запускается анимация. Такое вот содружество мультиков и программирования.


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

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