Доброго дня! Как оказалось, несмотря на то, что у flash-разработчиков уже довольно давно появилась возможность полноценно и без костылей использовать правую и среднюю кнопки мыши, многие попросту пропустили эту новость.
Начиная с версии Flash-плеера 11.2 появилось несколько новых событий мыши:
- RIGHT_CLICK – клик правой кнопкой мыши;
- RIGHT_MOUSE_DOWN – нажатие правой кнопки мыши;
- RIGHT_MOUSE_UP – отпускание правой кнопки мыши;
- MIDDLE_CLICK – клик средней кнопкой мыши;
- MIDDLE_MOUSE_DOWN – нажатие средней кнопки мыши;
- MIDDLE_MOUSE_UP – отпускание средней кнопки мыши.
И небольшой пример использования:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
package { import flash.display.DisplayObject; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; public class Main extends Sprite { private var _container:Sprite; public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { _container = new Sprite(); _container.graphics.beginFill(0xF2F2F2, 1); _container.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); _container.graphics.endFill(); _container.x = _container.y = 0; addChild(_container); _container.addEventListener(MouseEvent.CLICK, clickHandler); _container.addEventListener(MouseEvent.RIGHT_CLICK, rightClickHandler); _container.addEventListener(MouseEvent.MIDDLE_MOUSE_DOWN, middleDownHandler); _container.addEventListener(MouseEvent.MIDDLE_MOUSE_UP, middleUpHandler); } private function clickHandler(e:MouseEvent):void { var sprite:Sprite = new Sprite(); sprite.graphics.beginFill(0x000000, Math.random()); sprite.graphics.drawCircle(0, 0, 10 + Math.random() * 10); sprite.graphics.endFill(); sprite.x = mouseX; sprite.y = mouseY; _container.addChild(sprite); } private function rightClickHandler(e:MouseEvent):void { if (e.target != _container) _container.removeChild(e.target as DisplayObject); } private function middleDownHandler(e:MouseEvent):void { if (e.target != _container) e.target.startDrag(); } private function middleUpHandler(e:MouseEvent):void { if (e.target != _container) e.target.stopDrag(); } } } |
(ЛКМ – добавление объекта, ПКМ – удаление объекта, СКМ – перетаскивание объекта)