FLEX編碼規(guī)范_第1頁(yè)
FLEX編碼規(guī)范_第2頁(yè)
FLEX編碼規(guī)范_第3頁(yè)
FLEX編碼規(guī)范_第4頁(yè)
FLEX編碼規(guī)范_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 Flex編碼規(guī)范產(chǎn)品源代碼質(zhì)量檢測(cè):FLEX編碼規(guī)范(A0)目錄前言IV產(chǎn)品代碼質(zhì)量檢測(cè):FLEX編碼規(guī)范11 概述12 文件引用及參考13 命名規(guī)則13.1 文件命名13.1.1 ActionScript13.1.2 MXML文件名13.1.3 CSS13.2 包命名23.3 類命名23.4 接口命名23.5 變量命名23.6 方法命名23.7 參數(shù)命名33.8 事件命名33.9 命名空間33.10 MXML標(biāo)簽ID命名34 注釋規(guī)則34.1 源文件注釋44.2 類/接口注釋44.3 方法注釋44.4 方法內(nèi)部注釋54.5 單行注釋54.6 MXML文件注釋55 排版規(guī)則55.1 Acti

2、onScript55.1.1 文件結(jié)構(gòu)55.1.2 縮進(jìn)65.1.3 行與換行65.1.4 空行與空格75.1.5 聲明75.1.6 語(yǔ)句85.2 MXML105.2.1 文件結(jié)構(gòu)105.2.2 縮進(jìn)115.2.3 行排版115.2.4 標(biāo)簽屬性116 性能優(yōu)化126.1 使用共享庫(kù)(RSL)減少SWF文件的大小126.2 對(duì)象銷毀126.3 使用常量和靜態(tài)方法136.4 集合的應(yīng)用136.5 從外部加載媒體136.6 在嵌入式字體中限制字符集136.7 其他建議137 安全性要求148 附錄148.1 一致性約束148.2 關(guān)鍵字158.2.1 詞匯關(guān)鍵字158.2.2 語(yǔ)法關(guān)鍵字158.2

3、.3 未來(lái)保留關(guān)鍵字15前言產(chǎn)品代碼質(zhì)量檢測(cè):FLEX編碼規(guī)范1 概述本規(guī)范適用于公司產(chǎn)品Flex程序的開發(fā)。2 文件引用及參考ProgrammingFlex3 中文版,Chafic Kazoun, Joey Lott.Flex 3 Cookbook 中文版,Joshua Noble, Todd Anderson.ActionScript 3.0 編程精髓,Colin Moock.ActionScript 權(quán)威指南,Colin Moock.國(guó)家電網(wǎng)公司Flex編碼規(guī)范。3 命名規(guī)則3.1 文件命名3.1.1 ActionScript1)類文件規(guī)則:名字由英文單詞或明確意義的縮寫組成,首字母必須

4、大寫,使用駝峰式命名規(guī)則。示例:ExampleClassName.as2)接口文件規(guī)則:遵循類命名規(guī)則,接口以I開頭,后面寫接口名。示例:IExampleInterface.as3.1.2 MXML文件名規(guī)則:遵循ActionScript中類文件命名規(guī)則。示例:ExampleClassName.mxml3.1.3 CSS規(guī)則:名字由英文單詞或明確意義的縮寫組成,首字母必須小寫,使用駝峰式命名規(guī)則。示例:eicSkin.css3.2 包命名規(guī)則:名字由英文小寫單詞或單詞縮寫組成,對(duì)于不便于翻譯的中文可以使用漢語(yǔ)拼音縮寫。定義:包名:com.sgcc.nrxt.產(chǎn)品英文縮寫.子包名或包名: com

5、.nrxt.產(chǎn)品英文縮寫.子包名。其中:com:常量,表示組織。com.sgcc.nrxt:常量,表示由國(guó)網(wǎng)統(tǒng)推項(xiàng)目驅(qū)動(dòng)的產(chǎn)品開發(fā)。com.nrxt:常量,表示公司自主產(chǎn)品開發(fā)。產(chǎn)品英文縮寫:按照公司產(chǎn)品命名規(guī)則確定的產(chǎn)品英文縮寫,如:pi3000、pms、tms、ims、oms等。子包名:由項(xiàng)目組自行定義。示例:com.sgcc.nrxt.pms.dwzycom.nrxt.pi3000.dataaccess3.3 類命名規(guī)則:名字由英文單詞或明確意義的縮寫組成,首字母必須大寫,應(yīng)使用用名詞,應(yīng)能準(zhǔn)確體現(xiàn)類的職責(zé)。示例:public class ApplicationController3.4

6、 接口命名規(guī)則:遵循類命名規(guī)則,接口以I開頭,后面寫接口名。示例:public interface IResponse3.5 變量命名1)類實(shí)例變量規(guī)則:名字由代表業(yè)務(wù)的英文單詞或明確意義的縮寫組成,使用首字母小寫的形式駝峰式命名規(guī)則,如果變量使用getter和setter方法讀/寫值,開頭應(yīng)加上下劃線(_)。示例:private var _rowSet:Array;2)局部變量規(guī)則:遵循類實(shí)例變量命名規(guī)則。示例:var rowSet:Array;3)靜態(tài)變量規(guī)則:靜態(tài)變量全部使用大寫字母,單詞間用下劃線分割(_)。示例:public static const var SELECTTYPE_R

7、ADIO:String = "radio"3.6 方法命名1)私有方法規(guī)則:名字由代表業(yè)務(wù)的英文單詞或明確意義的縮寫組成,應(yīng)以動(dòng)詞開頭,首字母小寫,應(yīng)能準(zhǔn)確體現(xiàn)方法的職責(zé)。示例:private function createCache(var chacheName:String):void;2)公用方法規(guī)則:遵循私有方法的命名規(guī)則。示例:public function createCache(chacheName:String):void;3)屬性方法規(guī)則:與對(duì)應(yīng)的私有成員名稱相同,但需要以get/set作為方法前綴。示例:public function get rowSe

8、t():Array return this._rowSet; public function set rowSet(rowSet:Array):voidthis._rowSet = rowSet;3.7 參數(shù)命名規(guī)則:首字母小寫,避免與類型私有成員或局部變量重名。示例:public function createCache(chacheName:String): void;3.8 事件命名規(guī)則1:觸發(fā)事件的方法以“on”作為前綴,再拼接對(duì)應(yīng)事件名稱。示例:public function onDataChanged():void;規(guī)則2:事件響應(yīng)的方法以“Handler”作為后綴,拼接對(duì)應(yīng)事件名

9、稱。示例:public function dataChangedHandler(event:ResultEvent):void;3.9 命名空間規(guī)則:命名空間全部使用小寫字母,單詞間用下劃線分割。文件名必須與命名空間名稱一致。示例:namespace flash_proxy = “3.10 MXML標(biāo)簽ID命名規(guī)則:MXML標(biāo)簽ID一般使用首字母小寫的駝峰式命名規(guī)則,并且使用有意義的名稱。示例:<mx:Panel id="pnLoginInfo" title="VBoxContainerExample" />4 注釋規(guī)則代碼注釋規(guī)范采用ASD

10、oc的代碼注釋標(biāo)記方法,需要對(duì)類,靜態(tài)變量,實(shí)例變量,方法進(jìn)行注釋以便準(zhǔn)確表達(dá)類、變量和方法的功能;對(duì)方法內(nèi)復(fù)雜的業(yè)務(wù)邏輯也需要添加單元注釋或者塊注釋,以增強(qiáng)程序可讀性。邊寫代碼邊注釋,修改代碼同時(shí)修改相應(yīng)的注釋,以保證注釋與代碼的一致性。無(wú)用的注釋要?jiǎng)h除,注釋的內(nèi)容要清楚、明了,含義準(zhǔn)確,防止注釋二義性。避免在注釋中使用縮寫,特別是不常用的縮寫。在注釋中使用FIXME關(guān)鍵字來(lái)標(biāo)識(shí)某些需要修正的代碼,使用TODO標(biāo)識(shí)某些在重構(gòu)時(shí)需要改良的代碼。注釋應(yīng)與其描述的代碼相近,對(duì)代碼的注釋應(yīng)放在其上方或右方(對(duì)單條語(yǔ)句的注釋)相鄰位置,不可放在下面。4.1 源文件注釋規(guī)則:所有的程序文件應(yīng)該以注釋開始

11、,在注釋中列出系統(tǒng)名稱、版權(quán)信息、版本信息、作者、重大功能變更日志等內(nèi)容。 示例:ActionScript文件:/* *PI3000*Copyright(C)2000-2008 NARI Information and CommunicationTechnology Branch. All *rights reserved.*版本信息:PI3000-V1.000-002*版本日期作者變更記錄*PI3000-V1.000 2007/02/23張三新建*PI3000-V1.000-002 2009/02/01李四增加saveBusinessData2方法 */MXML文件:<?xml ver

12、sion="1.0" encoding="utf-8"?><!-*PI3000*Copyright(C)2000-2008 NARI Information and CommunicationTechnology Branch. All *rights reserved.*版本信息:PI3000-V1.000-003*版本日期作者變更記錄*PI3000-V1.000 2007/05/20 張三新建*PI3000-V1.000-002 2009/04/21 李四增加GIS控件復(fù)選框*作者:張三*創(chuàng)建時(shí)間:2007/02/20->4.2 類

13、/接口注釋規(guī)則:描述作者信息、創(chuàng)建時(shí)間、版本信息等,類功能,主要算法邏輯、類調(diào)用特殊情況等。示例:/* *概述:OSGi規(guī)范中Bundle的激活器 *功能:dm本身既是一個(gè)Bundle,又是其他基于這種技術(shù)的動(dòng)態(tài)模塊的解析引擎。 *作者:張三 *創(chuàng)建時(shí)間:2014-03-13 *類調(diào)用特殊情況:無(wú) */public final class Activator implements BundleActivator 4.3 方法注釋規(guī)則:描述方法功能或者算法邏輯、輸入、輸出及返回值,其中返回值說(shuō)明要詳細(xì),包括返回的類型,方法執(zhí)行成功返回類型,方法執(zhí)行失敗返回類型,如果返回值是集合,還要說(shuō)明集合中每

14、個(gè)元素類型。示例:/* * 功能:根據(jù)種類代碼ID,取得一個(gè)種編碼 * param kindId 要取得的種類代碼的ID * return ICode*/ public function getCode(kindId:String):Code4.4 方法內(nèi)部注釋規(guī)則:方法內(nèi)部的關(guān)鍵變量、語(yǔ)句和修改變更信息需要加以注釋,采用塊注釋或者行注釋。4.5 單行注釋規(guī)則:?jiǎn)涡凶⑨屖侵冈谝恍袃?nèi)就能寫完的注釋,之前應(yīng)該有一個(gè)空行。示例:if (condition) /Handle the condition. .尾端注釋使用場(chǎng)合:極短的注釋可以與它們所要描述的代碼位于同一行,但是應(yīng)該有足夠的空白來(lái)分開代碼和

15、注釋。示例:if (a = 2) return true; /* special case */ else return isPrime(a); /* works only for odd a */4.6 MXML文件注釋MXML文件中的注釋和XML文件注釋一樣,使用<!- 注釋->。示例:<!-Button標(biāo)簽-><mx:TabNavigator><mx:Container><mx:Button /></mx:Container></mx:TabNavigator>5 排版規(guī)則5.1 ActionS

16、cript5.1.1 文件結(jié)構(gòu)ActionScript文件按如下順序組織各元素:序號(hào)元素備注1開篇注釋2定義包3聲明命名空間 如果存在命名空間,這是最后部分4Import 描述:1) flash包中的類2) mx包中的類3) com.adobe包中的類4) 第三方包中的類,按字母順序排序 5) 項(xiàng)目的包中的類6) 屬于該文件的工程包 使用完整的引用名,不要使用星號(hào)(*),除非使用了包的絕大部分。 推薦使用:importmx.core.Application 避免使用:importmx.core.*按字母順序排序; 如果導(dǎo)入命名空間,同名的包要先于類5use 聲明(命名空間)按字母順序排序6元數(shù)

17、據(jù) 1) Event 2) Style 3) Effect 4) 其他元數(shù)據(jù),按字母順序排序7定義類和接口8靜態(tài)變量(static) 1) public a) const b) 其他public static 2)internal 3) protected 4) private 5) 自定義命名空間(按字母順序排序)9沒有使用 getter 和 setter 的變量 1) public 2) internal 3) protected 4)private5) 自定義命名空間(按字母順序排序)10構(gòu)造函數(shù)11方法將實(shí)現(xiàn)相關(guān)功能方法組織在一起,而不是按作用域12用getter和setter處理的變

18、量和方法本身,還有相關(guān)的變量5.1.2 縮進(jìn)使用4個(gè)連續(xù)空格縮進(jìn)。5.1.3 行與換行建議一行的最大字符數(shù)在120150個(gè)字符之間。 注意:用于文檔中的例子應(yīng)該使用更短的行長(zhǎng),長(zhǎng)度一般不超過(guò)120個(gè)字符。如果一段描述不能放在一行中,依據(jù)下列規(guī)則將其拆分成多行:1)從逗號(hào)后換行。2)在運(yùn)算符之前換行。3)最好在較高級(jí)別代碼處換行。4)換行后縮進(jìn)依賴美觀程度決定。5.1.4 空行與空格1)空行下列情況應(yīng)該使用兩個(gè)空行:a)一個(gè)源文件的兩個(gè)片段(section)之間。b)類聲明和接口聲明之間。下列情況應(yīng)該使用一個(gè)空行:a)兩個(gè)方法之間。b)方法內(nèi)的局部變量和方法的第一條語(yǔ)句之間。c)一個(gè)方法內(nèi)的兩個(gè)

19、邏輯段之間。2)空格下列情況應(yīng)該使用空格:a)一個(gè)緊跟著括號(hào)的關(guān)鍵字應(yīng)該被空格分開。示例:while (true) .注意:空格不應(yīng)該置于方法名與其左括號(hào)之間。這將有助于區(qū)分關(guān)鍵字和方法調(diào)用。b)參數(shù)列表中逗號(hào)的后面應(yīng)該加空格。c)所有的二元運(yùn)算符,除了“.”,應(yīng)該使用空格將之與操作數(shù)分開。一元操作符和操作數(shù)之間不 應(yīng)該加空格,比如:負(fù)號(hào)(“-”)、自增(“+”)和自減(“-”)。示例:a += c + d;a = (a + b) / (c * d);while (d+ = s+) n+;d)for語(yǔ)句中的表達(dá)式應(yīng)該被空格分開。示例:for (expr1; expr2; expr3)5.1.5

20、 聲明每行只有一個(gè)聲明要優(yōu)于一行多個(gè)聲明。示例:優(yōu):var a:int = 10; var b:int = 20;劣:var a:int = 10, b:int = 20;1)初始化盡量在聲明局部變量的同時(shí)初始化。2)布局只在代碼塊的開始處聲明變量(一個(gè)塊是指任何被包含在大括號(hào)“”和“”中間的代碼),不要在首次用到該變量時(shí)才聲明,否則,會(huì)妨礙代碼在該作用域內(nèi)的可移植性。示例:private function myMethod():void var int1:int = 0; / beginning of method blockif (condition) var int2:int = 0;

21、/ beginning of "if" block.該規(guī)則的一個(gè)例外是for循環(huán)的索引變量。示例:for (var i:int = 0; i < maxLoops; i+) . 避免聲明的局部變量覆蓋上一級(jí)聲明的變量。例如,不要在內(nèi)部代碼塊中聲明相同的變量名。示例:var count:int;.myMethod():void if (condition) var count:int = 0; / AVOID!.3)類/接口聲明當(dāng)編寫類和接口時(shí),應(yīng)該遵守以下格式規(guī)則:a)在方法名與其參數(shù)列表之前的左括號(hào)“(”間不要有空格。b)左大括號(hào)“”位于聲明語(yǔ)句同行的末尾。c)右大

22、括號(hào)“”另起一行,與相應(yīng)的聲明語(yǔ)句對(duì)齊,除非是一個(gè)空語(yǔ)句:“”應(yīng)緊跟在“”之后。示例:public class Sample extends Object var ivar1:int;var ivar2:int;public Sample(i:int, j:int) ivar1 = i;ivar2 = j;public function emptyMethod():int .5.1.6 語(yǔ)句1)簡(jiǎn)單語(yǔ)句簡(jiǎn)單聲明每行只能有一個(gè),并以分號(hào)作為結(jié)束。示例:i+; setModel();2)復(fù)雜語(yǔ)句復(fù)雜語(yǔ)句是包含在大括號(hào)中的語(yǔ)句序列,形如“ 語(yǔ)句 ”。例如下面各段:a)被括其中的語(yǔ)句應(yīng)該較之復(fù)合語(yǔ)句縮

23、進(jìn)一個(gè)層次。b)左大括號(hào)“”應(yīng)位于復(fù)合語(yǔ)句起始行的行尾;右大括號(hào)“”應(yīng)另起一行并與復(fù)合語(yǔ)句首行對(duì)齊。3)返回語(yǔ)句一個(gè)帶返回值的return語(yǔ)句不使用小括號(hào)“()”,除非它們可以使返回值更為顯見。示例:return;return myDisk.size();return (size ? size : defaultSize);4)if語(yǔ)句if-else語(yǔ)句格式如下:示例:if (condition) statements;if (condition) statements; else statements;if (condition) statements; else if (condition

24、) statements; elsestatements;注意:if語(yǔ)句總是用“”和“”括起來(lái),避免使用如下容易引起錯(cuò)誤的格式:示例:if (condition) /AVOID! THIS OMITS THE BRACES !statement;5)for語(yǔ)句for語(yǔ)句格式如下:示例:for (initialization; condition; update) statements;一個(gè)空的for語(yǔ)句(所有工作都在初始化,條件判斷,更新子句中完成)應(yīng)該具有如下格式:示例:for (initialization; condition; update);當(dāng)在for語(yǔ)句的初始化或更新子句中使用逗號(hào)

25、時(shí),避免因使用三個(gè)以上變量,而導(dǎo)致復(fù)雜度提高。6)for each語(yǔ)句for each語(yǔ)句格式如下:示例:for each(var item:Object in array) statements;7)while語(yǔ)句while語(yǔ)句格式如下:示例:while (condition) statements;一個(gè)空的while語(yǔ)句應(yīng)該具有如下格式:示例:while (condition);8)do-while語(yǔ)句do-while語(yǔ)句格式如下:示例:do statements; while (condition);9)switch語(yǔ)句switch語(yǔ)句應(yīng)該具有如下格式:示例:switch (condit

26、ion) case ABC:statements;/* falls through */case DEF:statements;break;case XYZ:statements;break;default:statements;break;每當(dāng)一個(gè)case順著往下執(zhí)行時(shí)(因?yàn)闆]有break語(yǔ)句),通常應(yīng)在break語(yǔ)句的位置添加注釋。上面的示例代碼中就包含注釋/* falls through */。10)try-catch-finally語(yǔ)句try-catch-finally語(yǔ)句應(yīng)該具有如下格式:示例:try statements; catch (Error e) statements;fi

27、nallystatements;11)三元操作符可以使用三元操作符代替簡(jiǎn)單的if/else邏輯,尤其是對(duì)null進(jìn)行判斷的時(shí)候,建議不要采用嵌套的三元操作符。三元操作符可具有如下格式:示例:b = (expression) ? expression : gamma;/對(duì)齊! c = (expression) ? beta : gamma;d = (expression) ? A : B;5.2 MXML5.2.1 文件結(jié)構(gòu)MXML文件按以下順序組織各元素:序號(hào)元素備注1XML 文件頭 <?xml version=”1.0” encoding=”UTF-8” ?>總是在文件頭中定義編

28、碼,并且總是使用UTF-8 編碼2開篇注釋3根標(biāo)簽必須包含文件中使用到的所有命名空間4元標(biāo)簽 1)Event2) Style 3)Effect 4) 其他元標(biāo)簽,按字母順序排列5定義樣式盡量使用外部樣式文件6定義腳本只能存在一個(gè)腳本塊7非可視組件8可視組件5.2.2 縮進(jìn)使用4個(gè)連續(xù)空格縮進(jìn),子組件必須依據(jù)其父組件進(jìn)行縮進(jìn)排版。示例:<mx:TabNavigator><mx:Container><mx:Button /></mx:Container></mx:TabNavigator>5.2.3 行排版在一組可視組件之間插入空白行可使

29、代碼更清晰,在同一個(gè)父組件的子組件之間(也包括他們的子組件)插入空白行。示例:<mx:series><mx:ColumnSeries yField="prev" displayName="Forecast"><mx:stroke><mx:Stroke color="0xB35A00" /></mx:stroke><mx:fill><mx:LinearGradient angle="0"><mx:entries><m

30、x:GradientEntry. /><mx:GradientEntry. /></mx:entries></mx:LinearGradient></mx:fill></mx:ColumnSeries><comp:ColumnSeriesComponent /></mx:series>5.2.4 標(biāo)簽屬性MXML組件的標(biāo)簽屬性按下列順序排序: 1)屬性。2)事件(Events)。3)樣式(Style)。4)效果(Effects)。如果有id,永遠(yuǎn)放在第一位,width,height和styleName是屬

31、性而不是樣式。示例:<mx:ViewTack id=”mainModules” width=”75%” height=”75%” />標(biāo)簽屬性如果放在多行要進(jìn)行縮進(jìn)。示例:<mx:Label width="100%" height="100%" truncateToFit="true" text="Herecome" />如果標(biāo)簽的聲明有多行,處在第一行的永遠(yuǎn)只有id 一個(gè)屬性,其他屬性按上面的順序放在其他行中。示例:<mx:ViewStack id="mainModules

32、" height="75%" width="75%" paddingTop="10" paddingLeft="10" paddingRight="10">同一類的屬性放在一行。示例:<mx:Panel title="VBoxContainerExample" status="Somestatus" hide="doSomething()" creationComplete="doSomething()&

33、quot; paddingTop="10" paddingLeft="10" paddingRight="10" resizeEffect="Resize"/>在同類屬性需要放入多行的情況下,將更為相近的屬性放入同一行。示例:<mx:Panel id="pnLoginInfo" title="VBoxContainerExample" height="75%" width="75%"resize="resizeHa

34、ndler(event)"titleStyleName="titleLogin" headerHeight="25"paddingTop="10" paddingLeft="10" paddingRight="10" />6 性能優(yōu)化6.1 使用共享庫(kù)(RSL)減少SWF文件的大小當(dāng)應(yīng)用中多個(gè)Flex程序使用相同的組件庫(kù)時(shí),建議采用RSL的編譯方式,減少SWF文件的大小。6.2 對(duì)象銷毀1)及時(shí)銷毀對(duì)象函數(shù)級(jí)別變量、實(shí)例變量必須使用var關(guān)鍵字聲明,避免變量自動(dòng)提升為全局變量,全

35、局變量不能隨對(duì)象的銷毀而消亡。在頁(yè)面銷毀的時(shí)候要把類級(jí)別的變量一并銷毀。簡(jiǎn)化對(duì)象間的關(guān)系,盡量不要出現(xiàn)類和類之間的雙向引用,在雙向引用不可避免的情況下,必須及時(shí)置空引用和被引用對(duì)象,以免對(duì)象不能回收,造成內(nèi)存溢出。2)及時(shí)移除事件監(jiān)聽,或者變成弱引用示例:對(duì)象弱引用:someObj.addEventListener("eventName",listenerFunction,useCapture,priority,weakReference); stage.addEventListener(Event.CLICK,handleClick,false,0,true); 將第五個(gè)

36、參數(shù)設(shè)置為true,對(duì)一些不想永久保存的事件偵聽函數(shù),使用弱引用(如Timer)?;蛘呤謩?dòng)的將監(jiān)聽移除:示例:stage.removeEventListener(Event.CLICK,handleClick); 3)銷毀對(duì)象引用彈出框中聲明且使用了Bindable標(biāo)簽的對(duì)象,在彈出框關(guān)閉時(shí)建議將這些對(duì)象的引用清除,同時(shí)對(duì)外部資源(如圖片)的引用清除,置空。示例:Bindable/* *參數(shù)說(shuō)明:聲明了國(guó)家代碼下拉列表 */public var countryCodeList:ArrayCollection; 在關(guān)閉窗口時(shí):/* * 方法說(shuō)明: * 關(guān)閉窗口 */public function

37、 closeWindows():void this.countryCodeList=null; EicMask.hideMask(); PopUpManager.removePopUp(this); 6.3 使用常量和靜態(tài)方法系統(tǒng)中使用到的變量及一些常用方法,盡量靜態(tài)化和常量化,避免對(duì)象創(chuàng)建時(shí)大量重復(fù)執(zhí)行耗用內(nèi)存。6.4 集合的應(yīng)用采用集合組件+變量綁定的方式在銷毀對(duì)象時(shí)先銷毀集合對(duì)象。此外,集合中封裝了大量實(shí)體對(duì)象,查詢結(jié)束后應(yīng)及時(shí)清除集合體,或?qū)⒈灰脤?duì)象做置空處理。6.5 從外部加載媒體為了讓用戶能夠更快地加載到Flex程序,應(yīng)限制嵌入到應(yīng)用/SWF文件中的媒體的數(shù)量。圖像、影片及mp3

38、等資源可以從外部的SWF文件加載。6.6 在嵌入式字體中限制字符集只有在需要使用指定字符集時(shí),才將其嵌入SWF文件,并且必須在嵌入的字體集中限制字符集的數(shù)據(jù)。6.7 其他建議1)在局部變量夠用時(shí),不要使用全局變量。類靜態(tài)變量也要少用。必須使用全局變量時(shí),新建獨(dú)立的類對(duì)全局變量進(jìn)行管理,并且該類不可實(shí)例化。2)讀取數(shù)組中的數(shù)據(jù),盡量使用for in循環(huán)來(lái)代替?zhèn)鹘y(tǒng)的for或者while循環(huán)語(yǔ)法。其次是選擇while循環(huán),傳統(tǒng)for循環(huán)語(yǔ)法的效率在三者中是最低的。向數(shù)組中寫入數(shù)據(jù),while循環(huán)稍占優(yōu)勢(shì)。3)能用單行賦值則使用單行賦值。比如:a = 0b = 0c = 0效率不如:a = b = c = 04)不要過(guò)多使用Object類型,只有在沒有適當(dāng)?shù)膫溥x數(shù)據(jù)類型時(shí),才使用 Object 類型。5)盡量避免使用eval()函數(shù)或數(shù)據(jù)訪問(wèn)運(yùn)算符。6)在用到矢量圖時(shí),盡量簡(jiǎn)化其的形狀,去除多余端點(diǎn)。這樣將大大降低播放器用于呈現(xiàn)矢量圖所要進(jìn)行的計(jì)算量。7)需要呈現(xiàn)比較復(fù)雜的場(chǎng)景時(shí),最好考慮使用位圖實(shí)現(xiàn)。建議flash中的位圖都盡可能采用PNG格式。8)運(yùn)用線條時(shí),盡量減少和避免冗余的線條結(jié)構(gòu),它們會(huì)直接影響到flash的播放效率。9)當(dāng)某個(gè)實(shí)例透明度小于1時(shí),也會(huì)對(duì)播放速率造成影響。10)盡量使用單獨(dú)一個(gè)onEnterFrame事件,因?yàn)槿绻o過(guò)多的MoveClip添加這樣

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論