Показать сообщение отдельно
Старый 19.10.2010, 15:51
incvizitor вне форума Посмотреть профиль Отправить личное сообщение для incvizitor Найти все сообщения от incvizitor
  № 8  
Ответить с цитированием
incvizitor
 
Аватар для incvizitor

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
@AlexDesinger:

Код AS3:
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));
        }
 
    }
 
}
Вот этот класс я написал для браузерных версий. По сути Вам нужно посмотреть только метод "_onRightClick". В flash IDE Если на ContextMenuEvent делать trace то (только при первом трэйсе) меню исчезнет. Может быть есть еще что-то что может спрятать его, но это вне предела моих знаний.
__________________
ranga