![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь! |
|
|||||
|
Регистрация: Apr 2009
Адрес: Armenia , Yerevan
Сообщений: 145
|
Ну возможно так , сначало регистрировать нажатие одного из них , потом устанавить таймаут , если вторая кнопка нажата до окончания таймаута то игнорировать в ином случае регистрировать.
__________________
Urartu is a neoHittite and ProtoArmenian kingdom !! |
|
|||||
|
Задача, сделать как в скайпе. Но как я понял, одновременно зажать 2 клавиши не выйдет.
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь! |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Юзаем класс Key
package { import flash.display.Stage; import flash.display.StageDisplayState; import flash.events.Event; import flash.events.KeyboardEvent; import flash.geom.Rectangle; public class Key { private static var initialized:Boolean = false; private static var keysDown:Object = new Object(); public static function initialize(stage:Stage):void { if (!initialized) { stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed); stage.addEventListener(KeyboardEvent.KEY_UP, keyReleased); stage.addEventListener(Event.DEACTIVATE, clearKeys); initialized = true; } } public static function isDown(keyCode:uint):Boolean { if (!initialized) { throw new Error("Key class has not been initialized yet."); } return Boolean(keyCode in keysDown); } private static function keyPressed(event:KeyboardEvent):void { keysDown[event.keyCode] = true; } private static function keyReleased(event:KeyboardEvent):void { if (event.keyCode in keysDown) { delete keysDown[event.keyCode]; } } private static function clearKeys(event:Event):void { keysDown = new Object(); } } } потом проверяем нажата ли какая-либо клавиша так: |
|
|||||
|
Проблема в том что при зажатом ctrl, enter или любая другая клавиша не нажимается.
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь! |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Отлично все нажимается.
Если речь идет от флеш иде, то там просто это сочетание для пере/компиляции, но это не говорит о том, что нельзя нажать контрол и энтер одновременно в принципе. Если же речь о флешдевелоп, то не понимаю в чем проблема. Вот у меня код: package { import flash.display.Sprite; import flash.events.Event; import flash.events.KeyboardEvent; import flash.ui.Keyboard; [SWF(width = 800, height = 600, backgroundColor = 0xC7FEFB)] [Frame(factoryClass="Preloader")] public class Main extends Sprite { private var _controller: Controller; public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { Key.initialize(stage); stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp); } private function onKeyUp(e:KeyboardEvent):void { if (e.keyCode == Keyboard.ENTER) { trace("enter is pressed and controlDown: " + Key.isDown(Keyboard.CONTROL)); } } } } Цитата:
|
|
|||||
// так, вроде бы понял. // я проверял на нажатие. сейчас на отжатие работает. private function KEY_UP/* <== */(e:KeyboardEvent):void { if (e.keyCode == 13 && e.ctrlKey) { super.replaceText(super.caretIndex, super.caretIndex, "\n"); super.setSelection(super.caretIndex + 1, super.caretIndex + 1); } } // goodguy спасибо конечно но на фига столько кода?
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь! |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Цитата:
|
|
|||||
|
Ясно, спасибо за помощь.
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь! |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:41. |
|
|
« Предыдущая тема | Следующая тема » |
|
|