Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 12.09.2010, 04:56
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 11  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Есть старый бок, что из-за особенностей строения клавиатуры на PC, если зажаты одновременно много (минимум 4, что-ли) клавиш, то есть нерешаемые проблемы с тем, чтобы узнать, какие именно и какие зажимаются ещё. Потому в мортал 4-й на пейси без джойстика нормально не порубиться =\ Но вродь с этими клавишами всё нормально работает.
Код в общем ничего, разве что если нажать что-то типа влево и вправо одновременно, то не напишет что надо. Что не так - не понятно. Если нажимали "влево, вниз, вверх" и не написался upPress, то не знаю, не смог воспроизвести.
Код AS3:
package {
    import flash.display.*;
    import flash.events.*;
    import flash.ui.*;
 
    public class Main extends Sprite {
 
        private var upPress:Boolean;
        private var leftPress:Boolean;
        private var rightPress:Boolean;
        private var downPress:Boolean;
        private var spacePress:Boolean;
 
        private var keysArr:Array = new Array();
        private var keysDesc:Array = new Array();
 
        public function Main() {
 
            stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDawnListener, false, 0, false);
            stage.addEventListener(KeyboardEvent.KEY_UP, KeyUpListener, false, 0, false);
 
            keysDesc[Keyboard.LEFT] = "leftPress";
            keysDesc[Keyboard.RIGHT] = "rightPress";
            keysDesc[Keyboard.DOWN] = "downPress";
            keysDesc[Keyboard.UP] = "upPress";
            keysDesc[Keyboard.SPACE] = "spacePress";
        }
 
        private function KeyDawnListener (e:KeyboardEvent):void {
            keysArr[e.keyCode] = true;
            var tracestr:String = "";
            for (var key:String in keysArr) {
                if (keysArr[key]) tracestr += keysDesc[key] + " ";
            }
            trace(tracestr);
        }
 
        private function KeyUpListener(e:KeyboardEvent):void {
            keysArr[e.keyCode] = false;
        }
    }
}
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Создать новую тему   Часовой пояс GMT +4, время: 16:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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