|
|
|||||
Регистрация: Feb 2007
Сообщений: 563
|
capture mouse right click
Всем привет, собственно вопрос в том, возможно ли средствами as3 захватить событие клика правой нопки мыши? Пробовал разные поиски - по-моему сводиться все к тому, чтобы захватить событие через java, но мне этот способ не подойдет, подскажите плз.
|
|
|||||
Можно. Когда вылазит менюшка с сеттингами, то диспатчится ивент что она вылезла. Я его слушаю в своем компоненте. А поскольку она вылазит только на клик правой кнопкой, то можно взять еще маусХ и маусУ и можно генерить полноценный райт клик ивент (унаследовал его от маус ивент).
http://www.adobe.com/livedocs/flash/...riptLangRefV3/ |
|
|||||
Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
|
|
|
|||||
Регистрация: Feb 2007
Сообщений: 563
|
Цитата:
Цитата:
да, но я смогу прослушать только глобально, прослушать от определенного объекта видимо не получиться, так? |
|
|||||
Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
|
incvizitor, вопрос вроде был
А про меню там ничего не сказано! |
|
|||||
@AlexDesinger:
package vaukalak.utils { import flash.display.DisplayObject; import flash.display.InteractiveObject; import flash.display.Stage; import flash.events.Event; import flash.external.ExternalInterface; import flash.geom.Point; /** * ... * @author vaukalak */ public class RightMouseEvent extends Event { public static const CLICK:String = "Right Click"; private static var _stage:Stage; //переопределения класса Event public function RightMouseEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false) { super(type, bubbles, cancelable); } public override function clone():Event { return new RightMouseEvent(type, bubbles, cancelable); } public override function toString():String { return formatToString("RightMouseEvent", "type", "bubbles", "cancelable", "eventPhase"); } //в метод enable нужно передать объект stage public static function enable(stage:Stage):void { _stage = stage; ExternalInterface.addCallback("rightClick", _onRightClick); } //метод _onRightClick отыскивает непосредственно верхний объект под мышой, и приказывает объекту распространить событие private static function _onRightClick():void { var objs:Array = _stage.getObjectsUnderPoint(new Point(_stage.mouseX, _stage.mouseY)); (objs[objs.length-1] as DisplayObject).dispatchEvent(new RightMouseEvent(RightMouseEvent.CLICK,true)); } } }
__________________
ranga |
|
|||||
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Так и говорили бы, что локально.
Disabling Menu on Right-Click: To disable the Flash menu that appears when you right-click on a projector, use the following syntax: fscommand("showmenu", "false"); (с) http://www.kirupa.com/developer/flas...orcommands.htm aka google flash right click projector
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
Регистрация: Feb 2007
Сообщений: 563
|
incvizitor, класс, я пожалую запишу себе этот клас на будущее, думаю только его можнно доработать до того, чтобы заставлять генерировать событие не самый верхний объект под мышкой, а какой нть определенный, естественно если он под мышкой)))
всем спасибо огромное, я сделал правда попроще))) просто сохранил объект который генерирует событие MouseOver в момент нажатия правой кнопки, и вызвал нужную мне функцию))) |
Часовой пояс GMT +4, время: 07:01. |
|
« Предыдущая тема | Следующая тема » |
|
|