2012-02-12 4 views
1

내 AIR 응용 프로그램에서 마우스 오른쪽 버튼으로 클릭하면 컨텍스트 메뉴 나 일종의 NativeMenu가 표시되는데 정말 어려움을 겪고 있습니다. 누군가가 올바른 방향으로 나를 가리키거나 샘플 코드를 제공하여 마음 속에서 명확하게 설명 할 수 있습니까?플렉스에서 마우스 오른쪽 버튼으로 클릭하십시오. AIR

감사합니다. 물론

답변

0

,

이 살펴 보자 여기 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/ui/ContextMenu.html

은 예입니다

package { 
    import flash.ui.ContextMenu; 
    import flash.ui.ContextMenuItem; 
    import flash.ui.ContextMenuBuiltInItems; 
    import flash.events.ContextMenuEvent; 
    import flash.display.Sprite; 
    import flash.display.Shape; 
    import flash.text.TextField; 

    public class ContextMenuExample extends Sprite { 
     private var myContextMenu:ContextMenu; 
     private var menuLabel:String = "Reverse Colors"; 
     private var textLabel:String = "Right Click"; 
     private var redRectangle:Sprite; 
     private var label:TextField; 
     private var size:uint = 100; 
     private var black:uint = 0x000000; 
     private var red:uint = 0xFF0000; 

     public function ContextMenuExample() { 
      myContextMenu = new ContextMenu(); 
      removeDefaultItems(); 
      addCustomMenuItems(); 
      myContextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, menuSelectHandler); 

      addChildren(); 
      redRectangle.contextMenu = myContextMenu; 
     } 

     private function addChildren():void { 
      redRectangle = new Sprite(); 
      redRectangle.graphics.beginFill(red); 
      redRectangle.graphics.drawRect(0, 0, size, size); 
      addChild(redRectangle); 
      redRectangle.x = size; 
      redRectangle.y = size; 
      label = createLabel(); 
      redRectangle.addChild(label); 
     } 

     private function removeDefaultItems():void { 
      myContextMenu.hideBuiltInItems(); 
      var defaultItems:ContextMenuBuiltInItems = myContextMenu.builtInItems; 
      defaultItems.print = true; 
     } 

     private function addCustomMenuItems():void { 
      var item:ContextMenuItem = new ContextMenuItem(menuLabel); 
      myContextMenu.customItems.push(item); 
      item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuItemSelectHandler); 
     } 

     private function menuSelectHandler(event:ContextMenuEvent):void { 
      trace("menuSelectHandler: " + event); 
     } 

     private function menuItemSelectHandler(event:ContextMenuEvent):void { 
      trace("menuItemSelectHandler: " + event); 
      var textColor:uint = (label.textColor == black) ? red : black; 
      var bgColor:uint = (label.textColor == black) ? black : red; 
      redRectangle.graphics.clear(); 
      redRectangle.graphics.beginFill(bgColor); 
      redRectangle.graphics.drawRect(0, 0, size, size); 
      label.textColor = textColor; 
     } 

     private function createLabel():TextField { 
      var txtField:TextField = new TextField(); 
      txtField.text = textLabel; 
      return txtField; 
     } 
    } 
} 
관련 문제