![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2013
Сообщений: 322
|
Цитата:
|
|
|||||
|
Регистрация: Feb 2014
Сообщений: 192
|
или вместо Keyboard.SPACE указать числовой код нужных клавиш
|
|
|||||
|
Это дурной тон. Для вас же специально создан класс, в котором есть уже все константы с этими кодами.
|
|
|||||
|
Регистрация: Feb 2014
Сообщений: 192
|
Не хочу наглеть, но все-таки, может кто подскажет аналогичный класс, но только для событий Enterframe, и способ его использования?
|
|
|||||
|
А что в нем такого? Создаем класс, создаем внутри него любой дисплей объект в статическом методе, и вешаем на него энтерфрейм. В классе заводим массив с по которому пробегаемся каждый раз в обработчике энтерфрейма циклом и вызываем у всех объектов нужный метод,. У меня это обычно метод update().
package { public class Action { private static var _sprite:Sprite; private static var _updatables:Array/*IUpdatable*/ = []; public static function initialize():void { if (_sprite) return; _sprite = new Sprite(); _sprite.addEventListener(Event.ENTER_FRAME, onEnterFrame); } private static function onEnterFrame(e:Event):void { for (var i:String in _updatables) _updatables[i].update(); } public static function addUpdatable(value:IUpdatable):void { if (_updatables.indexOf(value) < 0) _updatables.push(value); } public static function removeUpdatable(value:IUpdatable):void { var index:int = _updatables.indexOf(value); if (index > -1) _updatables.splice(index, 1); } } } Писал прямо здесь, так что могут быть опечатки
__________________
Ко мне можно и нужно обращаться на ты) Последний раз редактировалось caseyryan; 16.06.2014 в 11:24. |
|
|||||
|
Регистрация: Feb 2014
Сообщений: 192
|
Спасибо тебе огромное, caseyryan!
|
|
|||||
|
Да, кстати, для нажатых клавиш можно бы сделать ради удобства как в AS2 расширенный класс Sprite, в котором прикрутить методы addTrigger(Keyboard.LEFT, handleLeftPress), removeTrigger(Keyboard.RIGHT, handleRightPress), чтобы не париться с KeyboardEvent и стейджем.
В этом классе вызывать колбеки handleSomethingPress при ENTER_FRAME в объекте с ключом константы класса Keyboard (по ключу константы нужный колбек), при нажатой клавише. При нажатии выставлять в тру нажатое, при отжатии выставлять в null. Итого код сильно упростится и в читабельности, и в размере.
__________________
There is no thing in this world that is not simple. Последний раз редактировалось ZackMercury; 17.06.2014 в 00:27. |
|
|||||
|
Цитата:
Я привёл пример общего создания объекта и добавления к нему спрайта. Аналог вашей проверки вот в этой строчке(помещается в строчку и вполне читабельно): При этом вызывается только при инициализации, не нужно дёргать в ентерфрейме апдейта, всё это просчитается в классе GameObject. Удалить же триггер можно так же просто. obj.removeTrigger(Keyboard.LEFT); ![]()
__________________
There is no thing in this world that is not simple. |
|
|||||
|
SuriTheAngel, проблема вашего метода в том, что иногда (зачастую) требуется информация о сочетании нажатых клавиш.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ" Мои ачивки: художник-паразит. |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:43. |
|
|
« Предыдущая тема | Следующая тема » |
|
|