actionscript 3 - Adobe AIR ContextMenu - right clicking and roll out -


i in process of converting web-based actionscript project air. there appears subtle differences in way context menus handled between web , air versions of actionscript, , (rather large) codebase i'm converting relies on 1 of subtleties handling context menus.

for purposes of question, let's take simple air application:

package {     import flash.display.nativemenu;     import flash.display.nativemenuitem;     import flash.display.sprite;     import flash.events.mouseevent;      public class test extends sprite     {         private var menu:nativemenu;         private var menuitem:nativemenuitem;         public function test()         {             menu = new nativemenu();             menuitem = new nativemenuitem("menu item");             menu.additem(menuitem);              var s:sprite = new sprite();             s.graphics.clear();             s.graphics.beginfill(0x65ffff, 1);             s.graphics.drawrect(0,0, 100, 100);             s.graphics.endfill();             s.x = 10;             s.y = 10;             this.addchild(s);              s.addeventlistener(mouseevent.right_click, rightclick);             s.addeventlistener(mouseevent.roll_out, rollout);             s.addeventlistener(mouseevent.roll_over, rollover);          }          private function rightclick(event:mouseevent):void {             trace("right click");             menu.display(stage, event.stagex, event.stagey);         }          private function rollout(event:mouseevent):void {             trace("roll out");         }          private function rollover(event:mouseevent):void {             trace("roll over");         }     } } 

let's run app , right-click 4 times on blue sprite. expect receive roll on , roll out events each time before , after context menu displayed. instead receive output in debugger log:

roll on right click roll out right click right click roll on roll out right click 

the first click works expected. next 2 clicks not generate either roll on or roll out. , more strangely, forth click generates roll over, roll out , afterwards right click.

the reason problem because legacy code i'm converting, again written web-based actionscript, depends on roll on , roll out behavior change context menu items displayed. works in web-based version because these events triggered in same order every time user right-clicks: roll over, right click, roll out. see here, not case air.

i realize 1 approach fixing change way app works, assigns different context menus different sprites needed, i'm looking way maintain same approach legacy system minimize number of changes need make.

so question is: there way have air consistently generate roll on , roll out events in same order, before , after displaying menu, every time user right-clicks on sprite?


Comments

Popular posts from this blog

How to provide Authorization & Authentication using Asp.net, C#? -

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

How to use Authorization & Authentication in Asp.net, C#? -