久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Flex右鍵菜單原理

 Sky-Cool 2013-03-12

Flex右鍵菜單原理

 

Adobe Flash Builder 4 簡體中文正式版 Windows版點擊下載:http://g.csdn.net/5134151


Adobe Flash Builder 4 簡體中文正式版 Mac版點擊下載http://g.csdn.net/5134152


Adobe 在線課堂:http://adobev.csdn.net/zx/index.html

Adobe平臺技術(shù)峰會課程視頻:http://adobev.csdn.net/


呵呵!今天以前單位的小boss給我打電話問我關(guān)于flex應用程序添加右鍵菜單的問題,。說添加的菜單沒有顯示。以前我也沒有注意過?,F(xiàn)在總結(jié)一下,。我按照分類介紹一下。


1.flex 上下文菜單的原理


flex一共有三種默認的上下文菜單,,它們分別是標準菜單,,編輯菜單,和錯誤菜單三種,。


flex的標準菜單:當右鍵單擊flex組件上就會顯示Flash Player 提供的一些菜單內(nèi)容,。


flex的編輯菜單:當右鍵單擊flex可選擇可編輯的組件上時會顯示一個特殊的剪切板菜單例如(復制,粘貼,,剪切等),。


flex錯誤菜單:當flash加載swf失敗后會顯示錯誤菜單,。


標準菜單和編輯菜單是可以被自定義的但是錯誤菜單是不能有任何改變。所有繼承自InteractiveObject的對象都會包含一個 contextMenu屬性,。通常情況下contextMenu == null,。這時候在組件上單擊右鍵會顯示Flex framework初始化好的contextMenu。


2.flex菜單的結(jié)構(gòu)


flex的菜單按照組別進行了分類,,他會根據(jù)flash player版本,,是否顯示源代碼,標準菜單,,編輯菜單等等進行分類,。


1)View Source選項單獨分在一組里,你在頭信息里面設置了viewSourceURL就會顯示,。


2)自定義菜單項,,這里就是你自定義菜單的位置。


3)flash設置選項菜單,,像什么 Print, Zoom, Play, Loop,,質(zhì)量設置等就在這里,。


4)調(diào)試菜單選項。只有在flash player 是debug的時候顯示,。


5)flash的菜單,。這個菜單是必須要顯示的不能被自定義或隱藏。


咱們通常說的contextMenu.hideBuiltInItems();其實隱藏掉的是第三項,。也可以隱掉第三項里的某一個如:contextMenu.builtInItems.print=false;//隱掉打印菜單,。


3.自定義菜單。這個就有很多地方介紹了我這里也是簡單的說一下,。


創(chuàng)建自定義菜單






  1. var customItem:ContextMenuItem = new ContextMenuItem("自定義菜單");  

  2. contextMenu.customItems.push(customItem);  



 

給自定已菜單增加事件






  1. var customItem:ContextMenuItem = new ContextMenuItem("自定義菜單");  

  2. contextMenu.customItems.push(customItem);  

  3. customItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuItemHandler);  

  4. function menuItemHandler(event:ContextMenuEvent) : void{  

  5.  Alert.show("你單擊了自定義菜單 " + event.currentTarget.caption);  

  6. }  



 

動態(tài)顯示自定一的菜單





  1. contextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, menuHandler);  

  2. function menuHandler(event:ContextMenuEvent) : void {  

  3.     customItem.visible = !customItem.visible;  

  4. }  



 

最后就是flex菜單的限制,,也就是我以前的小boss遇到的問題??梢詤⒖?/span>ContextMenuItem documentation.

主要的有

1)自定義菜單不能超過15個,。

2)菜單內(nèi)容的長度不能超過100個字符(正常情況下真的很難達到)

3)不能設置子菜單

4)保留關(guān)鍵字不能用在自定義菜單里面-》小boss遇到的問題。如中英文的(Save, Copy, Paste, …)等,。

如果我非要用可以嗎?當然可以那么需要變通一下,。我們可以在保留關(guān)鍵字后面添加一個特殊的空格

customCopyItem = new ContextMenuItem("復制\u00A0");









   


哈哈最后借用一個別人的程序來結(jié)束。





  1. <?xml version="1.0" encoding="utf-8"?>  

  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"   

  3.     preloader="com.blogagic.preloader.BlogagicPreloader"   

  4.     width="450" height="160"  

  5.     paddingBottom="10" paddingTop="10"  

  6.     paddingLeft="10" paddingRight="10"  

  7.     backgroundColor="0xffffff"  

  8.     creationComplete="creationCompleteHandler(event)"   

  9.     viewSourceURL="srcview/index.html">  

  10. <!--  

  11.     CustomizedContextMenu - Example of customizing the right click menu.  

  12.     Copyright (C) 2010  Blogagic (http:///)  

  13.     Licensed under the Creative Commons BSD Licence  

  14.     http://creativecommons.org/licenses/BSD/  

  15. -->  

  16. <mx:Script>  

  17.     <!--[CDATA[  

  18.         import mx.events.FlexEvent;  

  19.         import mx.controls.Alert;  

  20.         private var item1:ContextMenuItem;  

  21.         private var item2:ContextMenuItem;  

  22.         private var item3:ContextMenuItem;  

  23.         private var item4:ContextMenuItem;  

  24.         private var item5:ContextMenuItem;  

  25.           

  26.         private function creationCompleteHandler(event:FlexEvent):void {  

  27.             customizeContextMenu();      

  28.         }  

  29.           

  30.         // Customization of the default ContextMenu displayed when right clicking on the application  

  31.         // The customization is done for the Application in this example, but you can apply it  

  32.         // to any objects inheriting from InteractiveObject (i.e. that has the contextMenu property  

  33.         // available).   

  34.         private function customizeContextMenu():void  

  35.         {  

  36.             // InteractiveObject objects as Application, Panel, Button, ... have a contextMenu   

  37.             // property used to reference the ContextMenu to be displayed when right clicking   

  38.             // on the component.  

  39.             // In most of the cases, this property is initialized to null and you have to  

  40.             // create a new ContextMenu object.  

  41.             // Note: this is not the case for the Application object.  

  42.             if (!contextMenu) {  

  43.                 contextMenu = new ContextMenu();  

  44.             }  

  45.                                              

  46.             // By default, the ContextMenu contains some Flash Player related menu items as  

  47.             // Print, Zoom, etc...  

  48.             // These menu items can be hidden as done below.  

  49.             contextMenu.hideBuiltInItems();  

  50.             // You can also hide individual items by setting to false the corresponding  

  51.             // properties of the builtInItems property.  

  52.             // For example, to remove only the Print entry:  

  53.             //         contextMenu.builtInItems.print=false;  

  54.             /* 

  55.                 Creation of some customized menu items 

  56.                 Notes: 

  57.                  

  58.                 Use the second parameter of ContextMenuItem constructor to add (true) or not (false) 

  59.                 a separator in the menu before the entry. 

  60.                  

  61.                 Customized items are put on top of the ContextMenu with one exception: if 

  62.                 View Source is enabled, it will always remain as the first entry in the menu. 

  63.                   

  64.                 If the debug Flash Player is used, debugging items will be displayed just 

  65.                 after your customized entries and cannot be hidden. 

  66.                  

  67.                 Parameters and Flash Player version entries are displayed at the bottom of 

  68.                 the menu and cannot be hidden. 

  69.                  

  70.                 When you right click a selectable or editable text field, clipboard entries 

  71.                 (Cut/Copy/Paste/Clear/Select All) are automatically added to the menu and  

  72.                 cannot be removed. 

  73.             */  

  74.             item1 = new ContextMenuItem("Customized item"true);  

  75.             item2 = new ContextMenuItem("Enable/Disable customized menu entry"true);  

  76.             item3 = new ContextMenuItem("Visible/Invisible customized menu entry");  

  77.             item4 = new ContextMenuItem("Copy\u00A0");  

  78.             item5 = new ContextMenuItem("More Flex tutorials on Blogagic"true);  

  79.               

  80.             // Manage clicks on your customized items  

  81.             item1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuItemHandler);  

  82.             item2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuItemHandler);  

  83.             item3.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuItemHandler);  

  84.             item4.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuItemHandler);  

  85.             item5.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuItemHandler);  

  86.                    

  87.             // Add your customized entries to the menu              

  88.             contextMenu.customItems.push(item1);  

  89.             contextMenu.customItems.push(item2);  

  90.             contextMenu.customItems.push(item3);  

  91.             contextMenu.customItems.push(item4);  

  92.             contextMenu.customItems.push(item5);  

  93.               

  94.             // Manage Menu selection to handle visibility or enablement changes  

  95.             contextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, menuSelectHandler);  

  96.         }  

  97.         // Handler when context menu is opened.  

  98.         // Use it to implement any enablement/visibility logic required for your  

  99.         // customized menu entries.          

  100.         private function menuSelectHandler(event:ContextMenuEvent):void {  

  101.             // Toggle item2 enablement and item3 visibility each time the menu is displayed  

  102.             item2.enabled = !item2.enabled;  

  103.             item3.visible = !item3.visible;  

  104.         }  

  105.           

  106.         // Handler when customized menu items are selected.         

  107.         private function menuItemHandler(event:ContextMenuEvent):void {  

  108.             switch (event.target) {  

  109.                 case item1:  

  110.                     Alert.show("Customized menu item selected.", event.currentTarget.caption);  

  111.                     break;  

  112.                 case item2:  

  113.                     Alert.show("This menu entry enablement changes each time the menu is displayed.", event.currentTarget.caption);  

  114.                     break;  

  115.                 case item3:  

  116.                     Alert.show("This menu entry visibility changes each time the menu is displayed.", event.currentTarget.caption);  

  117.                     break;  

  118.                 case item4:  

  119.                     Alert.show("Add \\u00A0 to your entry label to define entries using reserved keywords as Copy.", event.currentTarget.caption);  

  120.                     break;  

  121.                 case item5:  

  122.                     navigateToURL(new URLRequest("http://"), "_self");  

  123.                     break;  

  124.             }  

  125.         }  

  126.                   

  127.         private function blogagicHandler():void {  

  128.             navigateToURL(new URLRequest("http://"), "_self");  

  129.         }  

  130.     ]]-->  

  131. </mx:Script>  

  132.       

  133.     <mx:TextArea x="10" y="9" width="430" height="86" wordWrap="true" editable="false">  

  134.         <mx:text>  

  135.             Right click to open the customized Context Menu.  

  136.             Select text here and right click to see the additional clipboard menu items.                          

  137.         </mx:text>  

  138.     </mx:TextArea>   

  139.     <mx:LinkButton x="298" y="128" label="Proposed by Blogagic" click="blogagicHandler()"/>  

  140.           

  141. </mx:Application>  

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多