日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
實(shí)例解析Flex鍵盤(pán)事件簡(jiǎn)單應(yīng)用

本文和大家重點(diǎn)討論一下Flex鍵盤(pán)事件簡(jiǎn)單應(yīng)用,從最古老的計(jì)算機(jī)開(kāi)始,鍵盤(pán)就是其最重要的輸入組成部分。對(duì)Flex鍵盤(pán)事件的響應(yīng)處理一直是界面編程最重要的組成部分。

在東興等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供做網(wǎng)站、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),全網(wǎng)整合營(yíng)銷(xiāo)推廣,成都外貿(mào)網(wǎng)站建設(shè),東興網(wǎng)站建設(shè)費(fèi)用合理。

Flex鍵盤(pán)事件簡(jiǎn)單應(yīng)用――用鍵盤(pán)控制的小飛機(jī)

從最古老的計(jì)算機(jī)開(kāi)始,鍵盤(pán)就是其最重要的輸入組成部分。對(duì)Flex鍵盤(pán)事件的響應(yīng)處理一直是界面編程最重要的組成部分。本示例通過(guò)一個(gè)鍵盤(pán)控制的小飛機(jī),來(lái)說(shuō)明在FLEX中對(duì)Flex鍵盤(pán)事件的監(jiān)聽(tīng)和響應(yīng)處理。

編程思路

每個(gè)游戲首先就得有自己的運(yùn)行場(chǎng)景(背景),我們使用Canvas作為小飛機(jī)運(yùn)行的容器。小飛機(jī)直接由一個(gè)Sprite類(lèi)型對(duì)象繪制得到(通過(guò)載入圖形可以獲得更漂亮的元件)。當(dāng)上下左右鼠標(biāo)被點(diǎn)擊時(shí),根據(jù)Flex鍵盤(pán)事件提供的鍵碼,相應(yīng)Flex鍵盤(pán)事件,移動(dòng)小飛機(jī)元件在容器中的坐標(biāo),獲得飛機(jī)移動(dòng)的效果。當(dāng)接近容器的邊界時(shí),不允許作把元件移出容器的動(dòng)作,所以需要一個(gè)方法checkBoundary在元件移動(dòng)前判斷移動(dòng)是否是合法的。提供一個(gè)方法resume,讓元件能隨時(shí)回到其初始位置。
 
程序代碼

 
 
 
  1.  
  2.  
  3.         
  4.         
  5.         
  6.                
  7.               
  8.               import flash.events.KeyboardEvent;                 
  9.  
  10.               private var plane:Sprite;          
  11.         private function init():void  
  12.  
  13.         {               //程序的初始化  
  14.  
  15.                loadPlane();  
  16.                resume();  
  17.                this.canvas.addEventListener(MouseEvent.CLICK,setCanvasFocus);  
  18.                this.canvas.addEventListener(KeyboardEvent.KEY_DOWN,planeMove);  
  19.         }  
  20.         private function checkBoundary(direction:int):Boolean  
  21.         {  
  22.                //檢查邊界條件  
  23.  
  24.                switch(direction)  
  25.                {  
  26.                       case 37:  //左  
  27.                       return (plane.x>5);  
  28.  
  29.                       case 38:  //上  
  30.                       return (plane.y>5);  
  31.                       case 39:  //右  
  32.                       return (plane.x< canvas.width-40);  
  33.                       case 40:  //下  
  34.                       return (plane.y
  35.                }  
  36.                return false;  
  37.         }  
  38.  
  39.         private function planeMove(e:KeyboardEvent):void  
  40.         {  
  41.  
  42.                //通過(guò)鍵盤(pán)上下左右鍵移動(dòng)飛機(jī)  
  43.                var keycode:int=e.keyCode;  
  44.                if(e.shiftKey && keycode==72)  
  45.                {  
  46.                       resume();//回到起點(diǎn)  
  47.                }  
  48.                if(!checkBoundary(keycode))  
  49.                {  
  50.                       return;  
  51.                }  
  52.  
  53.                switch(keycode)  
  54.                {  
  55.  
  56.                       case 37:  
  57.  
  58.                       plane.x-=5;  
  59.  
  60.                       break;  
  61.  
  62.                       case 38:  
  63.  
  64.                       plane.y-=5;  
  65.  
  66.                       break;  
  67.  
  68.                       case 39:  
  69.  
  70.                       plane.x+=5;  
  71.  
  72.                       break;  
  73.  
  74.                       case 40:  
  75.  
  76.                       plane.y+=5;  
  77.  
  78.                       break;  
  79.                }  
  80.  
  81.         }  
  82.         private function setCanvasFocus(e:MouseEvent):void  
  83.  
  84.         {  
  85.                //設(shè)置焦點(diǎn)  
  86.  
  87.                this.canvas.setFocus();  
  88.  
  89.                this.lblMsg.text="用上下左右鍵控制飛機(jī)移動(dòng)...";  
  90.  
  91.         }  
  92.  
  93.         private function loadPlane():void  
  94.         {  
  95.                //繪制飛機(jī)  
  96.  
  97.                plane=new Sprite();  
  98.  
  99.                var g:Graphics=plane.graphics;  
  100.  
  101.                      g.clear();  
  102.  
  103.                      g.lineStyle(4,0x000000,1);  
  104.  
  105.                      g.moveTo(16,0);  
  106.  
  107.                      g.lineTo(16,32);  
  108.  
  109.                      g.moveTo(16,16);  
  110.  
  111.                      g.lineTo(4,24);  
  112.  
  113.                      g.moveTo(16,16);  
  114.  
  115.                      g.lineTo(28,24);  
  116.  
  117.                      g.moveTo(16,32);  
  118.  
  119.                      g.lineTo(10,36);  
  120.  
  121.                      g.moveTo(16,32);  
  122.  
  123.                      g.lineTo(22,36);  
  124.  
  125.                      g.moveTo(0,0);  
  126.  
  127.                      //把飛機(jī)添加到屏幕中  
  128.  
  129.                this.canvas.rawChildren.addChild(plane);  
  130.          }  
  131.  
  132.         private function resume():void  
  133.         {  
  134.  
  135.                //設(shè)置飛機(jī)的初始位置  
  136.                plane.x=canvas.width/2-16;  
  137.                plane.y=canvas.height-40;  
  138.         }  
  139.               ]]> 
  140.  
  141.                       
  142.  
  143.    
  144.  

 知識(shí)要點(diǎn)

1:Flex鍵盤(pán)事件分兩類(lèi)KeyboardEvent.KEY_DOWN,KeyboardEvent.KEY_UP,分別對(duì)應(yīng)鍵盤(pán)的按下和彈起事件;

2:通過(guò)查看Flex鍵盤(pán)事件參數(shù)的keyCode可以知道用戶(hù)按的是那個(gè)按鈕,能后作出對(duì)應(yīng)的響應(yīng);

3:還可以通過(guò)查看Flex鍵盤(pán)事件參數(shù)的shiftKey,ctrlKey屬性值,獲得用戶(hù)是否同時(shí)按下了一些輔助功能鍵;

4:對(duì)象要獲得焦點(diǎn)后才能響應(yīng)Flex鍵盤(pán)事件,這是新手很容易忽視的問(wèn)題。

【編輯推薦】

  1. Flex鍵盤(pán)事件的監(jiān)聽(tīng)機(jī)制
  2. Flex鍵盤(pán)事件注意事項(xiàng)
  3. 技術(shù)前沿 看Flex客戶(hù)端緩存技術(shù)如何使用
  4. 12個(gè)Flex常用功能代碼再現(xiàn)
  5. 學(xué)習(xí)筆記 Flex國(guó)際化如何支持其他語(yǔ)言

 


分享文章:實(shí)例解析Flex鍵盤(pán)事件簡(jiǎn)單應(yīng)用
轉(zhuǎn)載來(lái)于:http://www.dlmjj.cn/article/dpgihhg.html