TWaver - 專注UI技術

          http://twaver.servasoft.com/
          posts - 171, comments - 191, trackbacks - 0, articles - 2
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
          Flash Player 11.2新加了一個非常重要的特性:支持右鍵,具體參見:Flash Player 11.2 Beta Features
          下面是在TWaver Flex的Network中使用右鍵菜單的效果,等了多少年的功能終于可以輕松實現了,不用再通過html的js腳本屏蔽右鍵菜單

          需要注意幾點:
          1. 從這里下載Flash Player 11.2以及playerglobal.swc文件
          2. 將下載的flashplayer11-2_p3_playerglobal_122011.swc文件改名為playerglobal.swc,并放入SDK的相應目錄中(Adobe Flash Builder 4.5/sdks/4.5.1/frameworks/libs/player/11.2):


          3. 最好使用SDK 4.5或以上版本的SDK(SDK4.0之前不支持Flash Player 11)
          4. 工程選項里Flash Player版本,需要設置為11.2
          5. 工程選項里添加 -swf-version=15 編譯選項

          代碼如下:
           1 <?xml version="1.0" encoding="utf-8"?>
           2 <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
           3                xmlns:s="library://ns.adobe.com/flex/spark"
           4                xmlns:mx="library://ns.adobe.com/flex/mx"
           5                xmlns:twaver="http://www.servasoftware.com/2009/twaver/flex"
           6                applicationComplete="init()">
           7     <fx:Script>
           8         <![CDATA[
           9             import mx.collections.ArrayCollection;
          10             import mx.controls.Menu;
          11 
          12             import twaver.*;
          13 
          14             private function init():void {
          15                 var box:ElementBox = new ElementBox();
          16 
          17                 var from:Node = new Node();
          18                 from.name = "From";
          19                 from.location = new Point(100100);
          20                 box.add(from);
          21 
          22                 var to:Node = new Node();
          23                 to.name = "To";
          24                 to.location = new Point(300300);
          25                 box.add(to);
          26 
          27                 var link:Link = new Link(from, to);
          28                 link.name = "From - To";
          29                 box.add(link);
          30 
          31                 network.elementBox = box;
          32                 network.addEventListener('rightClick', handleRighClick);
          33             }
          34 
          35             private var menu:Menu = null;
          36 
          37             private function handleRighClick(e:MouseEvent):void {
          38                 var element:IElement = network.getElementByMouseEvent(e);
          39                 var myMenuData:ArrayCollection = new ArrayCollection([
          40                     {label: element == null ? "none" : element.name}
          41                 ]);
          42                 if(menu != null){
          43                     menu.hide();
          44                 }
          45                 menu = Menu.createMenu(network, myMenuData, false);
          46                 var point:Point = network.globalToLocal(new Point(e.stageX, e.stageY));
          47                 menu.show(point.x, point.y);
          48             }
          49         ]]>
          50     </fx:Script>
          51 
          52     <twaver:Network id="network" width="100%" height="100%" backgroundAlpha="0" backgroundColor="#FF0000"/>
          53 </s:Application>

          完整工程見附件:TestRightClick


          評論

          # re: 使用Flash Player 11.2的新功能實現右鍵菜單  回復  更多評論   

          2012-01-12 08:48 by tb
          有空可以研究一下的

          # re: 使用Flash Player 11.2的新功能實現右鍵菜單  回復  更多評論   

          2012-02-01 10:22 by oxfordblue
          您好,我正從事相關Flex工具平臺的彈出右鍵彈出菜單研發,拜讀了您的文章,成功彈出了Menu的右鍵菜單,但是發現Menu并不能監聽到相關的MenuEvent.ItemClick等菜單事件,其容器類對象也同樣無法檢測到該類事件,請問,這種彈出菜單您的應用中是如何偵聽菜單項選擇事件的?

          # re: 使用Flash Player 11.2的新功能實現右鍵菜單  回復  更多評論   

          2012-02-01 12:14 by TWaver
          menu = Menu.createMenu(network, myMenuData, false);
          menu.addEventListener(MenuEvent.ITEM_CLICK, function(e:MenuEvent):void {
          Alert.show(""+e.label);
          });
          可以用這個試試,不行的話可以到TWaver論壇來交流:http://twaver.servasoft.com/forum/viewtopic.php?f=14&t=2370

          # re: 使用Flash Player 11.2的新功能實現右鍵菜單  回復  更多評論   

          2012-02-05 20:35 by 長沙網絡公關
          不錯 好東西 收藏了!~

          # re: 使用Flash Player 11.2的新功能實現右鍵菜單  回復  更多評論   

          2012-06-12 13:05 by 杭州房產
          剛剛開始學習編程,先大概的看下學習資料,謝謝博主!

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 邯郸市| 鸡泽县| 咸阳市| 舞钢市| 惠州市| 济宁市| 五常市| 太原市| 梓潼县| 屏东市| 柘荣县| 永昌县| 合水县| 财经| 梨树县| 项城市| 色达县| 富平县| 门头沟区| 高雄市| 秦皇岛市| 和政县| 惠州市| 海门市| 深泽县| 云林县| 琼海市| 个旧市| 宁波市| 西青区| 邵阳市| 江城| 都昌县| 西宁市| 长子县| 南陵县| 五华县| 清新县| 晴隆县| 金塔县| 沧源|