|
|
|||||
[+1 05.11.12]
Регистрация: Feb 2011
Сообщений: 431
|
Как словить Ctrl+C,V,X ?
Доброго времени суток.
Собственно сабж. FP 11.3. Попытки словить сначала e.ctrlKey и потом Keyboard.C, или наоборот, или словить Event.COPY/PASTE/CUT не увенчались успехом. Других вариантов не нашёл. Что и кем нужно ловить ? |
|
|||||
все отлично работает, как из флешдевелоп, так и в браузере, вот код:
package { import flash.display.Sprite; import flash.events.KeyboardEvent; import flash.ui.Keyboard; public class Main extends Sprite { public function Main() { stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp); } private function onKeyUp(e:KeyboardEvent):void { if (e.ctrlKey) { if (e.keyCode == 67) { trace("CONTROL + C"); var s:Sprite = new Sprite(); s.graphics.beginFill(100000000 * Math.random()); s.graphics.drawCircle(0, 0, 20); s.graphics.endFill(); s.x = Math.random() * stage.stageWidth; s.y = Math.random() * stage.stageHeight; stage.addChild(s); } } } } } |
|
|||||
[+1 05.11.12]
Регистрация: Feb 2011
Сообщений: 431
|
Вот оно что.
А я вешал на KEY_DOWN, там они не ловятся. Спасибо! |
|
|||||
Хм.. а действительно, почему такая комбинация не ловится на KEY_DOWN? Хотя если на KEY_DOWN ловить ctrl + стрелку, то всё работает, а с буквами нет... Если кто-то знает ответ, подскажите пожалуйста в чём причина?
|
|
|||||
Не уверен, но что-то мне подсказывает, что из-за постоянной отправки события keyDown при удержании контрола это намеренно урезали. Думаю глупо было бы вызывать сочетание грячих клавишь так часто. Разумнее на keyUp. |
|
|||||
Когда увидел этот пост, подумал "странно, ведь с KEY_DOWN должно работать". Проверил и действительно - не сработала такая комбинация. Потом вместо клавиши "с" (67) подставил стрелку влево (37) и заработало как планировалось.
Проверял во FlashDevelop. |
|
|||||
[+1 05.11.12]
Регистрация: Feb 2011
Сообщений: 431
|
Потому что не всплывает.
Диспатчится Event.COPY, а не KeyboardEvent. http://help.adobe.com/en_US/FlashPla...l#event%3Acopy Вообще интересно получается : вот тут ловится http://pastebin.com/tDRu2URp Мэйн класс сам диспатчит и сам ловит. Но если подписать на событие stage, то он полюбому его словит, хотя e.target будет мэйн класс, то есть COPY таки всплывёт. Как так ? |
|
|||||
Получается, что словить Event.COPY можно только если InteractiveObject в фокусе. И хотя stage по идее всегда в фокусе, но у меня так и не получилось словить им это событие без принудительного фокусирования. Странно..
|
Часовой пояс GMT +4, время: 15:16. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|