TWaver - 專注UI技術(shù)

          http://twaver.servasoft.com/
          posts - 171, comments - 191, trackbacks - 0, articles - 2
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
          Flash Player 11.2新加了一個非常重要的特性:支持右鍵,具體參見:Flash Player 11.2 Beta Features
          下面是在TWaver Flex的Network中使用右鍵菜單的效果,等了多少年的功能終于可以輕松實現(xiàn)了,不用再通過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的新功能實現(xiàn)右鍵菜單  回復  更多評論   

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

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

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

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

          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的新功能實現(xiàn)右鍵菜單  回復  更多評論   

          2012-02-05 20:35 by 長沙網(wǎng)絡公關(guān)
          不錯 好東西 收藏了!~

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

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

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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 南木林县| 乌鲁木齐县| 珠海市| 增城市| 贵溪市| 潼关县| 伊金霍洛旗| 朝阳县| 靖远县| 萨嘎县| 西和县| 凉城县| 景谷| 七台河市| 东兰县| 韶山市| 乡城县| 凤冈县| 会泽县| 博乐市| 吴旗县| 华蓥市| 淮北市| 宁德市| 沙田区| 五指山市| 安溪县| 大荔县| 息烽县| 南昌市| 昭平县| 游戏| 阿克| 宁武县| 米易县| 勃利县| 阳新县| 英德市| 屏东市| 石家庄市| 芜湖县|