精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

AIR Android:編寫主類Main(2)

移動開發 Android
第一個AIR Android程序:翻轉黑白棋,本模塊將編寫一個完整的移動小游戲,并把它部署在手機上。因此,我們將親歷一個移動程序完整的誕生過程,從程序設計、代碼編寫,到最后的安裝。在這個過程中會涉及很多Android開發的技術細節,讀者也可以近距離感受AIR帶來的開發樂趣。本文為大家介紹編寫主類Main。

編寫主類Main

在翻轉周邊棋子時,由于要驗證棋子的真實性,代碼稍顯煩瑣。總的說來,就是先獲取上下兩個棋子的id,以及左右存在的棋子的id,然后對棋子進行翻轉。

翻轉完畢后,判斷棋子是否全部變白的代碼也很簡單。代碼如下:

  1.        var grid:Grid;  
  2.         for ( var i:uint = 0len:uint = grids.length; i < len; i++)  
  3.         {  
  4.                 grid = grids[i];  
  5.                 //只要發現有一個棋子不是白色,則表明游戲還沒有結束  
  6.                 if( grid.isWhite() == false )  
  7.                 {  
  8.                        //只要一個為false,則表示游戲還沒有結束  
  9.                 }  
  10.         }          

我們的游戲只有一關,因此用戶過關就意味著游戲結束。gameOver函數中,使用了一個文本框來顯示提示信息,由于和程序邏輯沒有聯系,這里略去不提。

至此,主程序的主要代碼介紹完畢,完整的代碼見代碼清單2-4。

代碼清單2-4 FlipIt項目的Main.as文件

  1. package  
  2. {  
  3.   import flash.display.Sprite;  
  4.   import flash.display.StageScaleMode;  
  5.   import flash.display.StageAlign;  
  6.   import flash.events.Event;  
  7.   import flash.events.MouseEvent;  
  8.   import flash.text.TextField;  
  9.   import flash.text.TextFormat;  
  10.   import flash.text.TextFormatAlign;  
  11.     
  12.   [SWF(backgroundColor="#B6B5C1")]  
  13.   public class Main extends Sprite   
  14.   {      
  15.     //使用常量增強程序的靈活性和可讀性  
  16.     private const BLACK:Boolean = false;  
  17.     private const WHITE:Boolean = true;      
  18.     private const GRID_RADIUS:int = 30;      
  19.     private var grid_container:Sprite;  
  20.     private var game_tip:TextField;  
  21.       
  22.     //在數組元素的類型確定的情況下,盡量使用Vector,而不用Array,性能更佳  
  23.     private var grids:Vector.<Grid> = new Vector.<Grid>();      
  24.     private var column_number:uint;  
  25.       
  26.     public function Main():void   
  27.     {  
  28.       init();        
  29.     }  
  30.       
  31.     private function init():void  
  32.     {  
  33.       //設置舞臺屬性,為了自動適應屏幕尺寸,必須設置  
  34.       stage.scaleMode = StageScaleMode.NO_SCALE;  
  35.       stage.align = StageAlign.TOP_LEFT;        
  36.       //創建棋子容器  
  37.       grid_container = new Sprite();  
  38.       addChild(grid_container);        
  39.       //創建文本框,用來顯示游戲結果  
  40.       game_tip = new TextField();  
  41.       var tf:TextFormat = new TextFormat("Droid Serif", 24);  
  42.       tf.align = TextFormatAlign.CENTER;  
  43.       game_tip.defaultTextFormat = tf;  
  44.       game_tip.width = stage.stageWidth;  
  45.       game_tip.y = 500;  
  46.       game_tip.selectable = false;  
  47.       addChild(game_tip);              
  48.       //創建棋盤  
  49.       createMap();        
  50.       //將棋盤屏幕居中放置  
  51.       grid_container.x = (stage.stageWidth - grid_container.width) / 2;        
  52.       grid_container.y = 120;          
  53.       //利用事件流的冒泡機制,只監聽容器的鼠標單擊事件  
  54.       grid_container.addEventListener(MouseEvent.CLICK, onClickHandler);  
  55.     }  
  56.       
  57.     private function createMap():void  
  58.     {  
  59.       var gameMap:Array = new Array();        
  60.       gameMap[0] = [BLACK, WHITE, WHITE, BLACK];  
  61.       gameMap[1] = [WHITE, BLACK, BLACK, WHITE];  
  62.       gameMap[2] = [WHITE, BLACK, BLACK, WHITE];  
  63.       gameMap[3] = [BLACK, WHITE, WHITE, BLACK];  
  64.         
  65.       //列數  
  66.       column_number = 4;  
  67.       //總行數  
  68.       var rowCount:uint = gameMap.length;  
  69.       //臨時變量  
  70.       var rowArray:Array;  
  71.       var i:uint, len:uint;  
  72.       var grid:Grid;  
  73.       //棋子的間距  
  74.       var space:int = 10;        
  75.       //根據數組創建棋盤  
  76.       for ( var row:uint = 0; row < rowCount; row++)  
  77.       {  
  78.         //獲取每一行的數據  
  79.         rowArray = gameMap[row];  
  80.         len = rowArray.length;          
  81.         for ( i = 0; i < len; i++)  
  82.         {  
  83.           //創建Grid,并賦予初始值。GRID_RADIUS常量定義了棋子的尺寸  
  84.           grid = new Grid(rowArray[i], GRID_RADIUS);  
  85.           //計算出棋子在棋盤上的編號  
  86.           grid.id = row * column_number + i;  
  87.           //設置棋子的坐標  
  88.           grid.x = i * (GRID_RADIUS*2 + space);  
  89.           grid.y = row * (GRID_RADIUS*2 + space);  
  90.           grid_container.addChild(grid);  
  91.           //按照編號將棋子保存在數組中,待以后查找  
  92.           grids[grid.id] = grid;  
  93.         }  
  94.       }        
  95.     }  
  96.       
  97.     private function onClickHandler(e:MouseEvent):void  
  98.     {  
  99.       e.stopImmediatePropagation();  
  100.       var grid:Grid = e.target as Grid;  
  101.       //只有單擊的對象是棋子才執行后面的代碼  
  102.       if ( grid == null) return;  
  103.       //翻轉當前單擊的棋子  
  104.       grid.doFlip();  
  105.       //同時翻轉周圍的4個棋子  
  106.       var ids:Array = new Array(grid.id - column_number, grid.id + column_number);  
  107.       //如果棋子是在最左端,則左邊是空的,反之左邊存在棋子  
  108.       if ( grid.id % column_number != 0 )  
  109.       {  
  110.         ids.push(grid.id - 1);  
  111.       }  
  112.       //如果棋子是在最右端,則右邊是空的,反之右邊存在棋子  
  113.       if ( grid.id % column_number != (column_number-1) )  
  114.       {  
  115.         ids.push(grid.id + 1);  
  116.       }  
  117.         
  118.       var totalGrid:int = grids.length;  
  119.         
  120.       for ( var i:uint = 0len:uint = ids.length; i < len; i++)  
  121.       {  
  122.         var index:int = ids[i];  
  123.           
  124.         if (index <0 || index >= totalGrid) continue;  
  125.           
  126.         grid = grids[index];  
  127.         //上面或下面的棋子可能不存在,需要判斷  
  128.         if ( grid != null )  
  129.         {  
  130.           grid.doFlip();  
  131.         }  
  132.       }        
  133.       if ( isAllWhite() )  
  134.       {  
  135.         //game over  
  136.         gameOver();  
  137.       }  
  138.     }  
  139.       
  140.     private function gameOver():void  
  141.     {  
  142.         grid_container.removeEventListener(MouseEvent.CLICK, onClickHandler);  
  143.       game_tip.text = "順利過關!";  
  144.     }  
  145.       
  146.     private function isAllWhite():Boolean  
  147.     {  
  148.       var grid:Grid;  
  149.       for ( var i:uint = 0len:uint = grids.length; i < len; i++)  
  150.       {  
  151.         grid = grids[i];  
  152.         if( grid.isWhite() == false )  
  153.         {  
  154.           return false;  
  155.         }  
  156.       }  
  157.       return true;  
  158.     }      
  159.   }    
  160. }
責任編輯:閆佳明 來源: book.51cto.com
相關推薦

2013-05-14 10:13:52

Android開發主類Main

2013-05-14 10:23:31

Android開發主類Main

2013-05-14 11:04:58

AIR AndroidTouchEvent類

2013-05-14 11:01:34

AIR AndroidTouchEvent類

2013-05-03 15:17:59

Android開發Android SDK

2013-05-14 11:18:24

AIR AndroidSwipe手勢

2011-06-16 10:25:29

AndroidAIR

2013-05-14 09:57:37

2013-05-14 10:39:27

AIR Android打包APK文件

2013-05-14 10:27:46

Android開發設置程序屬性

2013-05-14 11:16:26

AIR Android旋轉手勢

2013-05-14 10:37:10

AIR Android設置訪問權限

2013-05-14 10:56:45

AIR Android多點觸摸

2013-05-14 09:50:44

Android開發Flash Build

2013-05-14 10:10:28

Android開發棋子類Grid

2013-05-14 10:05:10

Android開發游戲設計

2012-03-09 13:26:53

2013-05-14 09:54:27

Android開發開源開發環境

2010-08-18 08:21:49

Adobe AIRAndroid

2013-05-14 11:13:02

AIR Android放大縮小手勢
點贊
收藏

51CTO技術棧公眾號

国产无遮挡呻吟娇喘视频| 人体精品一二三区| 亚洲 日韩 国产第一区| 久草网在线观看| 欧美交a欧美精品喷水| 午夜视频一区二区三区| 欧美日本韩国一区二区三区| 少妇高潮久久77777| 一级做a爰片久久| 中文乱码字幕高清一区二区| 亚洲资源在线| 不卡一区二区中文字幕| 97人人爽人人喊人人模波多| 国产熟女一区二区| 日韩精品视频中文字幕| 色网综合在线观看| 正在播放91九色| 国产99视频在线| 色天天色综合| 国产精品理论在线观看| 成人资源av| 在线免费看av网站| 欧美在线一级| 色综合天天综合网天天狠天天 | 欧美婷婷精品激情| 青春草免费在线视频| 久久久精品影视| 国产精品区一区| 一起草av在线| 美女久久一区| 国内成人精品一区| 男人的天堂久久久| 色婷婷一区二区三区| 精品亚洲国产视频| 苍井空张开腿实干12次| 久久精品国产精品亚洲毛片| 欧美日韩色婷婷| 99热久久这里只有精品| 日本精品在线| 中文字幕国产一区二区| 欧美少妇一区| 亚洲欧美日韩精品永久在线| 国产成人精品www牛牛影视| 国产日韩在线看| 中文字幕 欧美激情| 校园激情久久| 91av视频在线播放| 国产精品第一页在线观看| 欧美成熟视频| 欧美成人精品一区二区| 日韩三级在线观看视频| 亚欧美无遮挡hd高清在线视频| 在线电影欧美日韩一区二区私密| 亚洲黄色在线网站| 杨幂一区二区三区免费看视频| 精品成人一区二区三区四区| 欧美69精品久久久久久不卡| 亚洲精品成人少妇| 亚洲国产三级在线| 日本免费成人网| 91麻豆国产福利在线观看宅福利| ...av二区三区久久精品| 亚洲一卡二卡三卡| 免费在线看黄| 亚洲人妖av一区二区| 99精品一区二区三区的区别| 成人在线观看亚洲| 亚洲一区免费在线观看| 欧美午夜小视频| 午夜av不卡| 色噜噜久久综合| 国产精品区在线| 亚洲欧美在线综合| 精品三级av在线| 岛国精品资源网站| 久久不见久久见国语| 在线观看欧美日韩国产| 小泽玛利亚一区| 伊人久久大香线蕉综合四虎小说| 欧美高清一级大片| 青青草免费观看视频| 日日噜噜夜夜狠狠视频欧美人| 国产精品欧美激情| 国产成人三级一区二区在线观看一 | 日韩国产精品视频| www.av天天| 国产精品99久久久久久动医院| 精品少妇一区二区30p| 日韩三级av在线| 日韩成人一级片| 91高跟黑色丝袜呻吟在线观看| 手机av免费在线观看| 国产香蕉久久精品综合网| 制服国产精品| 女人高潮被爽到呻吟在线观看| 欧美色网站导航| 91porn在线| av资源久久| 九九久久久久久久久激情| 青青国产在线观看| 国模无码大尺度一区二区三区| 国产精品sss| 91在线直播| 午夜精品一区二区三区电影天堂| www亚洲成人| 国语一区二区三区| 俺去啦;欧美日韩| wwwxxx亚洲| 国产在线看一区| 茄子视频成人在线观看| 性欧美ⅴideo另类hd| 欧美亚洲综合在线| 国产国语老龄妇女a片| 日韩一区二区在线免费| 98精品国产高清在线xxxx天堂| 888奇米影视| xnxx国产精品| 无码人妻少妇伦在线电影| 99久久婷婷国产综合精品首页 | 中文字幕一区二区三区人妻在线视频 | 激情视频在线观看| 欧美日韩国产精品一区二区三区四区| 伊人国产在线视频| 九一成人免费视频| 韩国福利视频一区| 99久久久无码国产精品免费| 91精品一久久香蕉国产线看观看 | 国产视频在线看| 二区三区在线视频| 欧美中文字幕在线观看视频| 日本精品一区二区三区视频 | av电影中文字幕| 性欧美xxxx交| 久久午夜精品视频| 国产毛片一区二区三区| 欧美激情视频在线| 欧美成人一区二区三区四区| www.youjizz.com在线| 欧美日韩一区二区电影| aaaaa级少妇高潮大片免费看| 欧美日韩ab| 亚洲影院色无极综合| 日本精品在线| a级片国产精品自在拍在线播放| 一区在线观看免费| 六月丁香婷婷激情| 日韩有码中文字幕在线| 亚洲欧美国产一本综合首页| 自拍偷拍欧美亚洲| heyzo一本久久综合| 亚洲欧美丝袜| 欧美人与性动交xxⅹxx| 日韩三区在线观看| 亚洲欧美手机在线| 久久久人成影片免费观看| 国产福利视频一区二区| 乱色精品无码一区二区国产盗| 国产日韩欧美a| 国产美女网站在线观看| 一级欧美视频| 久久久国产精品一区| 男人天堂视频网| 国产精品丝袜久久久久久app| 国产一区二区在线视频播放| 免费看日产一区二区三区 | 色婷婷av一区二区三| 韩国v欧美v日本v亚洲v| 久久66热这里只有精品| 成人av观看| 在线成人激情黄色| 国产又粗又猛又色又| 亚洲资源中文字幕| 色综合久综合久久综合久鬼88| 中文字幕第六页| 激情小说一区| 国产91精品黑色丝袜高跟鞋| 久草视频视频在线播放| 亚洲成人1区2区| 91视频免费观看网站| 久久电影网站中文字幕| 欧美狂野激情性xxxx在线观| 欧美美女黄色| 国产精品自拍视频| 成人影院在线看| 日韩av中文字幕在线播放| 一本一本久久a久久| 粉嫩aⅴ一区二区三区四区| 少妇av一区二区三区无码| 色综合综合网| 在线观看久久久久久| 高清国产mv在线观看| 夜夜嗨av一区二区三区| 韩国三级视频在线观看| 欧美一级视频| 久久久一本精品99久久精品66| 青青操在线视频| 日韩欧中文字幕| 麻豆视频在线观看| 国产资源在线一区| 欧美精品123| 一区二区三区视频播放| 日韩免费高清在线观看| 欧美卡一卡二| 一区二区三区免费网站| 欧美高清激情视频| 天堂a√中文在线| 欧美性高潮在线| 国产精品久久久视频| 成人av在线播放网址| 日本xxxx黄色| 久久久久久久久久久久久久| 欧美激情18p| 午夜影院免费在线观看| 欧美一区自拍| 九九精品视频在线观看| 涩涩视频免费看| 91麻豆精品国产91久久久使用方法| 原创真实夫妻啪啪av| 午夜亚洲激情| 黄色成人在线看| 99久久99久久精品国产片桃花| 国产精品69久久久久| 僵尸再翻生在线观看免费国语| 久久久成人av| seseavlu视频在线| 日韩av在线免费| 成人av手机在线| 欧美视频二区36p| 国产无遮挡aaa片爽爽| 国产精品全国免费观看高清| 欧美图片第一页| 91丨国产丨九色丨pron| 国产av一区二区三区传媒| 国产伦精品一区二区三区免费| 91视频免费版污| 免费欧美在线| www.玖玖玖| 夜夜嗨网站十八久久| 国产成人在线小视频| 91国语精品自产拍| 中文字幕中文字幕在线中一区高清| 精品视频免费| 日本在线观看一区二区| 亚洲警察之高压线| 久久涩涩网站| 日韩av不卡一区| 精品国产一区二区三| 乱中年女人伦av一区二区| 国产精品中出一区二区三区| julia中文字幕一区二区99在线| 5g国产欧美日韩视频| 国产剧情一区二区在线观看| 成人日韩av在线| 国产精品免费精品自在线观看| 成人夜晚看av| 久久99成人| 97夜夜澡人人双人人人喊| 中文字幕一区二区三区四区久久| 91在线观看免费| 天堂精品在线视频| 国产精品我不卡| 欧美天堂影院| 欧美日韩一区在线观看视频| 欧美理论视频| av不卡在线免费观看| 午夜精品免费| 日韩国产欧美亚洲| 久久资源在线| 在线观看免费的av| 国产一区二区成人久久免费影院| 欧美体内she精高潮| 成人手机在线视频| 欧美一区二区三区成人精品| 日本一区二区三级电影在线观看| 在线视频这里只有精品| 亚洲一区欧美一区| 亚洲第一网站在线观看| 欧美喷潮久久久xxxxx| 精品人妻午夜一区二区三区四区| 亚洲精品ady| 国产三级在线观看| 成人444kkkk在线观看| 九九色在线视频| 日韩美女在线播放| 天堂久久av| 日韩av电影免费观看| 午夜日韩福利| 别急慢慢来1978如如2| 国产乱码精品一区二区三| 成人手机在线免费视频| 国产精品理伦片| 你懂的国产视频| 欧美精品丝袜久久久中文字幕| 免费av网站在线播放| 最近2019中文字幕在线高清| 136福利第一导航国产在线| 国产精品久久久久久久久免费| 天堂av一区| 亚洲人久久久| 日韩亚洲国产欧美| 人人爽人人爽av| 久久综合九色综合97婷婷| 日韩欧美国产成人精品免费| 欧美日韩激情网| 北条麻妃一二三区| 在线观看日韩欧美| 天堂电影一区| av资源站久久亚洲| 欧美电影一二区| 久久久久人妻精品一区三寸| 国产成人综合在线| 日韩在线不卡av| 一本色道久久综合精品竹菊| 亚洲风情第一页| 久久久黄色av| 懂色aⅴ精品一区二区三区| 国内精品国语自产拍在线观看| 99欧美视频| 88av.com| 久久这里只精品最新地址| 国产一级特黄a高潮片| 欧美狂野另类xxxxoooo| 久久电影中文字幕| 国产69精品久久久久久| 中文字幕一区图| 国产一二三四五| 美女诱惑一区二区| 国产小视频自拍| 欧美午夜丰满在线18影院| 日本黄视频在线观看| 色综合老司机第九色激情| 久久天堂久久| 国产在线拍揄自揄拍无码| 美国毛片一区二区| 少妇视频在线播放| 欧美色男人天堂| 国产经典自拍视频在线观看| 日本精品久久电影| 青青一区二区| 看av免费毛片手机播放| 91麻豆免费观看| 亚洲免费在线观看av| 日韩精品免费视频| 在线观看网站免费入口在线观看国内 | 樱花草涩涩www在线播放| 国产亚洲情侣一区二区无| 亚洲三级网站| 亚洲综合自拍网| 福利视频第一区| 免费人成在线观看网站| 日韩av手机在线观看| 国内精品久久久久久久久电影网| 国产情侣av自拍| 国产清纯在线一区二区www| 欧美日韩在线视频播放| 亚洲无线码在线一区观看| 成人天堂yy6080亚洲高清| 三级三级久久三级久久18| 精品国产欧美日韩| 欧美中文字幕一二三区视频| 麻豆亚洲一区| 中文字幕第31页| 亚洲成人精选| 国产一区二区三区网站| 天天操天天射天天爽| 91精品啪在线观看国产60岁| 国产三区在线观看| 91精品免费在线| aⅴ在线视频男人的天堂| 国产一区玩具在线观看| 中文字幕一区二区三区久久网站| 韩国三级丰满少妇高潮| 国产精品久久久久四虎| 精品人妻少妇嫩草av无码专区| 色在人av网站天堂精品| 视频福利一区| 国产九九在线观看| 一个色在线综合| 欧美69xxxxx| 国产欧美欧洲在线观看| 黑人一区二区| 在线观看日本中文字幕| 成人影音在线| 亚洲自拍偷拍色片视频| 欧美午夜网站| 免费看av软件| av在线不卡网| 国产系列精品av| 一道本无吗dⅴd在线播放一区| 成人51免费| 日韩久久一级片| 亚洲婷婷综合色高清在线| 亚州av在线播放| 欧美成人国产va精品日本一级| 亚洲综合av一区二区三区| 日本一区二区三区在线视频| 国产精品magnet| 国产精品九九视频| 欧美精品久久一区二区三区| 麻豆蜜桃在线观看|