You can fake it though.. Here's a class I wrote a while ago.
And here you find a demo:
http://www.mediamonkey.nl/flashfiles/MouseDetection.html

/** MouseDetection.as
 * @Author: Bart "Mediamonkey" Wttewaall
 * @Date: 31-10-2005
 * @Description:
 * A class that tests throug an interval if the left, middle or right
mousebutton is up or down.
 * It returns an event that can be listened to through the EventDispatcher.
 *
 * Usage:
import MouseDetection;
import mx.utils.Delegate;

var MD = new MouseDetection();
MD.addEventListener(MouseDetection.LEFT_DOWN, Delegate.create(this, write));
MD.addEventListener(MouseDetection.LEFT_UP, Delegate.create(this, write));
MD.addEventListener(MouseDetection.RIGHT_DOWN, Delegate.create(this, write));
MD.addEventListener(MouseDetection.RIGHT_UP, Delegate.create(this, write));
MD.addEventListener(MouseDetection.MIDDLE_DOWN, Delegate.create(this, write));
MD.addEventListener(MouseDetection.MIDDLE_UP, Delegate.create(this, write));
MD.addEventListener(MouseDetection.DOUBLE, Delegate.create(this, doubleclick));
MD.addEventListener(MouseDetection.SCROLL, Delegate.create(this, scroll));

function write(evt:Object) {
                trace(evt.target+" = "+evt.isDown);
}

function doubleclick(evt:Object) {
                trace(evt.target+" doubleclick: "+evt.value+" ms");
}

function scroll(evt:Object) {
                trace(evt.target+" = "+evt.value);
}
 */

import mx.utils.Delegate;
import mx.events.EventDispatcher;

class MouseDetection {
        
        // static event variables. call these as listenernames.
        static public var LEFT_DOWN:Number   = 1 << 0;
        static public var LEFT_UP:Number     = 1 << 1;
        static public var RIGHT_DOWN:Number  = 1 << 2;
        static public var RIGHT_UP:Number    = 1 << 3;
        static public var MIDDLE_DOWN:Number = 1 << 4;
        static public var MIDDLE_UP:Number   = 1 << 5;
        static public var DOUBLE:Number      = 1 << 6;
        static public var SCROLL:Number      = 1 << 7;
        
        private var intervalID:Number;
        private var mouseListener:Object;
        
        // Button states (true = down, false = up)
        private var LMB:Boolean;
        private var RMB:Boolean;
        private var MMB:Boolean;
        
        // stored time between two clicks
        private var LMBtime:Number;
        private var MMBtime:Number;
        private var RMBtime:Number;
        
        // after some tests, the fastests I could click was 30 ms
        public var time:Number = 30;
        
        // offset between two mouseclicks to count as a doubleclick
        public var doubletime:Number = 250;
        
        // mixin methods from the EventDispatcher
        public var addEventListener:Function;
        public var removeEventListener:Function;
        public var dispatchEvent:Function;
        public var dispatchQueue:Function;
        
        function MouseDetection() {
                EventDispatcher.initialize(this);
                LMB = RMB = MMB = false;
                LMBtime = MMBtime = RMBtime = 0;
                
                mouseListener = new Object();
                mouseListener.onMouseWheel = Delegate.create(this, mousewheel);
                Mouse.addListener(mouseListener);
                
                startTesting();
        }
        
        public function startTesting() {
                intervalID = setInterval(this, "enterframe", time);
        }
        
        public function stopTesting() {
                clearInterval(intervalID);
        }
        
        // -- the rest are private methods, don't bother with them
        
        private function enterframe() {
                LMBsetter = Key.isDown(1);
                RMBsetter = Key.isDown(2);
                MMBsetter = Key.isDown(4);
                
                // this commented bit of code doesn't seem to work all the time,
must be because of ALT
                // Keycodes: 18 = ALT, 37 = LEFT, 39 = RIGHT
                // backbutton = ALT+LEFT, forwardbutton = ALT+RIGHT
                
                //if (Key.isDown(18) && Key.isDown(37)) trace("backbutton");
                //if (Key.isDown(18) && Key.isDown(39)) trace("forwardbutton");
        }
        
        // -- LMB property setter, without getter (no need for it).
        // This catches the true/false value, checks for double entries (!!!)
and dispatches the
        // correct event before assigning the value to the LMB boolean, thus
saving a few lines.
        
        function set LMBsetter(b:Boolean) {
                if (b && !LMB) {
                        dispatchEvent({type:LEFT_DOWN, target:"LMB", 
isDown:true});
                } else if (!b && LMB) {
                        dispatchEvent({type:LEFT_UP, target:"LMB", 
isDown:false});
                        
                        // test doubleclick
                        var diff = getTimer()-LMBtime;
                        if (diff < doubletime) dispatchEvent({type:DOUBLE, 
target:"LMB",
value:diff});
                        LMBtime = getTimer();
                }
                LMB = b;
        }
        
        function set MMBsetter(b:Boolean) {
                if (b && !MMB) {
                        dispatchEvent({type:MIDDLE_DOWN, target:"MMB", 
isDown:true});
                } else if (!b && MMB) {
                        dispatchEvent({type:MIDDLE_UP, target:"MMB", 
isDown:false});
                        
                        // test doubleclick
                        var diff = getTimer()-MMBtime;
                        if (diff < doubletime) dispatchEvent({type:DOUBLE, 
target:"MMB",
value:diff});
                        MMBtime = getTimer();
                }
                MMB = b;
        }
        
        function set RMBsetter(b:Boolean) {
                if (b && !RMB) {
                        dispatchEvent({type:RIGHT_DOWN, target:"RMB", 
isDown:true});
                } else if (!b && RMB) {
                        dispatchEvent({type:RIGHT_UP, target:"RMB", 
isDown:false});
                        
                        // test doubleclick
                        var diff = getTimer()-RMBtime;
                        if (diff < doubletime) dispatchEvent({type:DOUBLE, 
target:"RMB",
value:diff});
                        RMBtime = getTimer();
                }
                RMB = b;
        }
        
        private function mousewheel(direction:Number) {
                if (direction > 0) dispatchEvent({type:SCROLL, 
target:"scrollUp",
value:direction});
                else dispatchEvent({type:SCROLL, target:"scrollDown", 
value:direction});
        }
}


2006/1/31, elibol <[EMAIL PROTECTED]>:
> All the Mouse events are summarized in the Mouse Class documentation. There
> isn't a right mouse click event.
>
> M.
>
> On 1/31/06, Charles Parcell <[EMAIL PROTECTED]> wrote:
> >
> > I am aware that you can alter the right mouse click context menu, but is
> > there a right mouse click event that can be used to activate other code??
> >
> > Charles P.
> >
> > _______________________________________________
> > Flashcoders mailing list
> > Flashcoders@chattyfig.figleaf.com
> > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> >
> >
> >
> _______________________________________________
> Flashcoders mailing list
> Flashcoders@chattyfig.figleaf.com
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to