Форум 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)
-   -   избавляемся от обработчика on (http://www.flasher.ru/forum/showthread.php?t=69166)

be_tween 15.09.2005 05:27

избавляемся от обработчика on
 
доброго времени суток!
вот с какой проблемой столкнулся...
нужно, чтобы некой событие происходило при двух условиях: как при нажатии клавиши с клавиатуры, так и при нажатии нарисованной кнопки.
есои в варианте AS1 все решается очень просто:

Цитата:

on (press, keyPress "<напр. Space>") {
некое событие;
}
то в новом синтаксисе никак не могу это написать...
сначала пробовал просто:

Цитата:

if (Key.isDown(Key.SPACE)) {
_root.mc1.gotoAndPlay(2);
mc2.gotoAndPlay(4);
}
не работает...
порывшись по справочникам, наткнулся на методу addListener, через которую это решается, вот только не соображу, как ее правильно пользовать...
пробовал по образцу:

Цитата:

keyListener = new Object();
keyListener.onKeyDown = function() {
if (Key.getCode() == Key.SPACE) {
_root.mc1.gotoAndPlay(2);
mc2.gotoAndPlay(4);
}
};
глухо...
инстансы в порядке, эти вещи все проверял, заморочка определенно в коде.

что интересно, <пробел> работает, если в руте висит код для нажатия рисованной кнопки, а на саму кнопку вешать код для <пробела>. вот только грамотным такой код не назовешь, да и с листенером теперь хочется разобраться... буду благодарен, если направите в нужном направлении.

be_tween 15.09.2005 05:49

уф, отбой тревоги :)
немного мозгов и серфинга по сети и получаем в итоге:

Цитата:

userKey = new Object();
userKey.onKeyDown = function() {
if (Key.getCode() == Key.SPACE) {
_root.mc1.gotoAndPlay(2);
mc2.gotoAndPlay(4);
}
};
Key.addListener(userKey);
как я понимаю, короче тут не написать?
но все-таки есть в AS2 своя красивая логика...))


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

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