欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

flash 編程習(xí)慣 小結(jié)

 更新時(shí)間:2009年03月21日 00:08:54   作者:  
本節(jié)內(nèi)容概述了在使用actionscript編程和創(chuàng)建應(yīng)用程序的時(shí)候需要遵循的一些規(guī)則,以及如何使我們的程序代碼更有效和具有更好的可讀性,更方便調(diào)試應(yīng)用程序。
把這節(jié)寫在前面,也是為了讓開始接觸ActionScript編程的開發(fā)人員從一開始就養(yǎng)成好的編程和開發(fā)習(xí)慣。
  1. 遵循命名規(guī)則
  
  一個(gè)應(yīng)用程序的命名規(guī)劃必須保持一致性和可讀性。任何一個(gè)實(shí)體的主要功能或用途必須能夠根據(jù)命名明顯的看出來。因?yàn)锳ctionScript是一個(gè)動態(tài)類型的語言,命名最好是包含有代表對象類型的后綴。一般而言,名詞_動詞和形容詞_名詞之類的語法是最常用的命名方式,如:
  影片名字:my_movie.swf
  URL實(shí)體:course_list_output
  組件或?qū)ο竺Q:chat_mc
  變量或?qū)傩裕簎serName
  
  方法和變量的名稱應(yīng)該以小寫字母開頭,對象和對象的構(gòu)造方法應(yīng)該大寫。命名變量的時(shí)候使用大小寫混和的方式,并且使用字母打頭,還可以包含數(shù)字和下劃線。
  下面的一些命名是非法的:
  
  _count =5 ;//首字符不能使用下劃線
  5count = 0;//首字符不能使用數(shù)字
  foo/bar = true;//包含非法字符
  
  另外,ActionScript使用的保留字不能用來命名變量。
  ActionScript是基于ECMAScript,所以我們可以根據(jù)ECMAScript的規(guī)范來命名。如:
  course_list_output = "foo"; //全部小寫,使用下劃線分割字串
  courseListOutput = "foo"; // 大小寫混和的方式
  BASEURL = http://www.flash8.net; // 常量使用全部大寫
  MAXCOUNTLIMIT = 10;
  MyObject = function(){ }; // 構(gòu)造函數(shù)
  f = new MyObject(); // 對象
  注意;良好的命名規(guī)范還可以使用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
  表明一個(gè)主題的開始
  // :BUG: [bugid] topic
  顯示了一個(gè)BUG所在
  // :KLUDGE:
  表明下面的代碼并不完善,可能存在問題
  // :TRICKY:
  告訴開發(fā)人員下面的代碼具有相互作用,修改之前請謹(jǐn)慎
  
  3. 保持代碼的整體性
  
  無論什么情況,應(yīng)該盡可能保證所有代碼在同一個(gè)位置,這樣使得代碼更容易搜索和調(diào)試。我們在調(diào)試程序的時(shí)候很大的困難就是定位代碼,如果大部分代碼都集中在同一幀,問題就比較好解決了。通常,我們把代碼都放在第一幀中,并且單獨(dú)放在最頂層。如果在第一幀中集中了大量的代碼,記得用注釋標(biāo)記區(qū)分,并在開頭加上代碼說明
  // 視頻語音聊天系統(tǒng)
  // FCAVPresence組件
  // Copyright ◎2002 Macromedia, Inc. All rights reserved.
  // 完 善: Liu21st, Liu21st@126.com
  //--------------------------------------------------------- 在獨(dú)立的功能模塊前面加上類似的標(biāo)注:
  // 參數(shù)初始化
  file://---------------------------------------------------------
  4. 初始化應(yīng)用程序
  
  記得一定要初始化你的應(yīng)用程序,init函數(shù)應(yīng)該是你的應(yīng)用程序類的第一個(gè)函數(shù),如果使用面向?qū)ο蟮木幊谭绞絼t應(yīng)該在構(gòu)造函數(shù)中進(jìn)線初始化工作。該函數(shù)只是對應(yīng)用程序中的變量和對象初始化,其它的調(diào)用可以通過事件驅(qū)動。
  下面的例子可以說明如何進(jìn)線初始化
  function FCAVPresenceClass() {
  this.init();
  }
  FCAVPresenceClass.prototype.init = function() {
  this.name = (this._name == null ? "_DEFAULT_" : this._name);
  this.prefix = "FCAVPresence." + this.name + ".";
  };
  
  5.使用局部變量
  
  所有的局部變量使用關(guān)鍵字var來申明,這樣可以避免被全局變量訪問,更重要的是,可以保證變量不被覆蓋和混淆程序邏輯。例如,下面的代碼沒有使用var來申明,覆蓋了其它變量。
  counter = 7;
  function loopTest()
  {
  trace(counter);
  for(counter = 0; counter < 5; counter++)
  {
  trace(counter);
  }
  }
  trace(counter);
  loopTest();
  trace(counter);
  輸出結(jié)果為:
  7
  7
  0
  1
  2
  3
  4
  5
  
  6. 創(chuàng)建對象時(shí)使用原型添加方法和屬性
  
  當(dāng)我們創(chuàng)建一個(gè)對象的時(shí)候,應(yīng)當(dāng)使用原型方式來添加對象的方法或?qū)傩裕沟迷摲椒ɑ驅(qū)傩阅軌虮凰性搶ο蠡蜃訉ο蟮膶?shí)體所訪問。這種能夠確保內(nèi)存中每個(gè)函數(shù)只有一份拷貝。作為一般的規(guī)則,不要在構(gòu)造函數(shù)中定義方法。下面是一個(gè)正確的例子:
  // 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;
  }
  }
  使用上面的方式在每個(gè)對象的實(shí)體被創(chuàng)建的時(shí)候都會實(shí)體重新復(fù)制每一個(gè)屬性和方法,會加重系統(tǒng)的內(nèi)存開銷。
  7. 規(guī)范命名方式獲取代碼提示功能
  
  不再是需要定義類似 _mc 之類的命名才會顯示代碼提示
  但是需要使用as2.0的規(guī)范來書寫代碼,如:
  1 :
  var members:Array = new Array();
  然后我們在輸入members. ,F(xiàn)lash 就會顯示可用于 Array 對象的方法和屬性的列表
  (關(guān)鍵是 members:Array 起的作用,其實(shí)我們在變量名稱后面打:的時(shí)候自動會給出所有支持的對象的列表)
  但并不是要我們在使用面向?qū)ο缶幊痰臅r(shí)候不需要注意命名規(guī)范了

相關(guān)文章

最新評論