FLASH的編程習慣

來源:互聯網
上載者:User
編程   本節內容概述了在使用actionscript編程和建立應用程式的時候需要遵循的一些規則,以及如何使我們的程式碼更有效和具有更好的可讀性,更方便調試應用程式。   把這節寫在前面,也是為了讓開始接觸ActionScript編程的開發人員從一開始就養成好的編程和開發習慣。
  1. 遵循命名規則    一個應用程式的命名規劃必須保持一致性和可讀性。任何一個實體的主要功能或用途必須能夠根據命名明顯的看出來。因為ActionScript是一個動態類型的語言,命名最好是包含有代表物件類型的尾碼。一般而言,名詞_動詞和形容詞_名詞之類的文法是最常用的命名方式,如:
  影片名字:my_movie.swf
  URL實體:course_list_output
  組件或對象名稱:chat_mc
  變數或屬性:userName    方法和變數的名稱應該以小寫字母開頭,對象和對象的構造方法應該大寫。命名變數的時候使用大小寫混和的方式,並且使用字母打頭,還可以包含數字和底線。
  下面的一些命名是非法的:    _count =5 ;//首字元不能使用底線
  5count = 0;//首字元不能使用數字
  foo/bar = true;//包含非法字元    另外,ActionScript使用的保留字不能用來命名變數。
  ActionScript是基於ECMAScript,所以我們可以根據ECMAScript的規範來命名。如:
  course_list_output = "foo"; //全部小寫,使用底線分割字串
  courseListOutput = "foo"; // 大小寫混和的方式
  BASEURL = http://www.flash8.net; // 常量使用全部大寫
  MAXCOUNTLIMIT = 10;
  MyObject = function(){ }; // 建構函式
  f = new MyObject(); // 對象
  注意;良好的命名規範還可以使用Flash的代碼提示功能。
  2. 給你的代碼添加註釋    使用代碼注釋能夠使得程式更清晰,也便於我們閱讀。Flash支援的代碼注釋方法有兩種: 單行注釋,通常用於變數的說明

var clicks = 0; // variable for number of button clicks多行注釋,通常用於功能說明和大段文字的注釋:
/*
Initialize the clicks variable that keeps track of the number of times
the button has been clicked.
*/ 一些具有特定意思的注釋方法: // :TODO: topic
表明一個主題的開始
// :BUG: [bugid] topic
顯示了一個BUG所在
// :KLUDGE:
表明下面的代碼並不完善,可能存在問題
// :TRICKY:告訴開發人員下面的代碼具有相互作用,修改之前請謹慎     3. 保持代碼的整體性    無論什麼情況,應該儘可能保證所有代碼在同一個位置,這樣使得代碼更容易搜尋和調試。我們在偵錯工具的時候很大的困難就是定位代碼,如果大部分代碼都集中在同一幀,問題就比較好解決了。通常,我們把代碼都放在第一幀中,並且單獨放在最頂層。如果在第一幀中集中了大量的代碼,記得用注釋標記區分,並在開頭加上代碼說明
// 視頻語音交談系統
// FCAVPresence組件
// Copyright ◎2002 Macromedia, Inc. All rights reserved.
// 完 善: Liu21st, Liu21st@126.com
//--------------------------------------------------------- 在獨立的功能模組前面加上類似的標註:
// 參數初始化
file://---------------------------------------------------------
  4. 初始化應用程式    記得一定要初始化你的應用程式,init函數應該是你的應用程式類的第一個函數,如果使用物件導向的編程方式則應該在建構函式中進線初始化工作。該函數只是對應用程式中的變數和對象初始化,其它的調用可以通過事件驅動。
下面的例子可以說明如何進線初始化 function FCAVPresenceClass() {
this.init();
}
FCAVPresenceClass.prototype.init = function() {
this.name = (this._name == null ? "_DEFAULT_" : this._name);
this.prefix = "FCAVPresence." + this.name + ".";
};     5.使用局部變數    所有的局部變數使用關鍵字var來申明,這樣可以避免被全域變數訪問,更重要的是,可以保證變數不被覆蓋和混淆程式邏輯。例如,下面的代碼沒有使用var來申明,覆蓋了其它變數。
counter = 7;
function loopTest()
{
trace(counter);
for(counter = 0; counter < 5; counter++)
{
trace(counter);
}
}
trace(counter);
loopTest();
trace(counter); 輸出結果為:
7
7
0
1
2
3
4
5
  6. 建立對象時使用原型添加方法和屬性    當我們建立一個對象的時候,應當使用原型方式來添加對象的方法或屬性,使得該方法或屬效能夠被所有該對象或子物件的實體所訪問。這種能夠確保記憶體中每個函數只有一份拷貝。作為一般的規則,不要在建構函式中定義方法。下面是一個正確的例子:

// Best practice for creating an object
MyObject = function()
{ }
MyObject.prototype.name = "";
MyObject.prototype.setName = function(name)
{
this.name = name;
}
MyObject.prototype.getName = function()
{
return this.name;
} 下面這段代碼是不可取的:

// Less desirable practice for creating an object
MyObject = function()
{
this.name = "";
this.setName = function(name)
{
this.name = name;
}
this.getName = function()
{
return this.name;
}
}   使用上面的方式在每個對象的實體被建立的時候都會實體重新複製每一個屬性和方法,會加重系統的記憶體開銷。
  7. 規範命名方式擷取代碼提示功能    不再是需要定義類似 _mc 之類的命名才會顯示代碼提示
但是需要使用as2.0的規範來書寫代碼,如:
1 :
var members:Array = new Array();然後我們在輸入members. ,Flash 就會顯示可用於 Array 對象的方法和屬性的列表
(關鍵是 members:Array 起的作用,其實我們在變數名稱後面打:的時候自動會給出所有支援的對象的列表)
但並不是要我們在使用物件導向編程的時候不需要注意命名規範了

相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。