AS1.0的OOP 與 AS2.0的OOP對比

來源:互聯網
上載者:User
    AS1.0用Function構造的OOP並不是完善的OOP.而AS2.0在定義時就嚴格要求.這對寫程式有很大協助……

    以前用AS1.0做OOP架構時,使用的是Function建構函式和定義子(私人)函數通過prototype比如建立一個textField,用於顯示一個文本集合。

    FLA的第一幀,以下內容為程式碼:

#include "mytestload.as"  //如果用AS2.0這句不需要_root.createTextField("mytext",1,50,50,100,20);var text_arr = new Array("one","two","three");var txtobj = new mytextload(mytext,text_arr);  //調用函數

    用AS1.0 建立的 mytestload.as

_global.mytestload=function(txt,txt_arr){  this.mytext_txt = txt; //定義有公有變數  this.mytext_txt_arr = txt_arr;  this.textload(2); //運行子函數}mytestload.prototype.textload=function(n){//構造私人函數  this.mytext_txt.text = this.mytext_txt_arr[n];}

    再來看看AS2.0寫的mytextload.as

class mytextload {  var tmptxt1:TextField; //公開變數  var tmptext_arr1:Array;  function mytextload(tmptxt:TextField,tmptext_arr:Array){    tmptxt1 = tmptxt;//定義公開變數    tmptext_arr1 = tmptext_arr;    text_load(2);  }  private function text_load(n:Number) //建立私人函數{    tmptxt1.text = tmptext_arr1[n];  }}

    很明顯,AS2.0在變數和傳遞實值型別要求文法是很嚴格的,並且在定義私人,公有函數,變數裡也是要求嚴格的.

    而AS1.0用Function構造的OOP並不是完善的OOP.如果用過C#,JAVA就明白變數和函數的嚴格定義是很重要的.特別是返回和傳遞類型,子函數,超類.而AS1.0要實現這種架構組成AS類的話.得要有點頭昏.比如對返回類形是OBJECT,還是ARRAY,或MC,而AS2.0在定義時就嚴格要求.這對寫程式有很大協助..

    FLASH2004如果用Function.prototype構造OOP結構,發布時FLASH時要發布成flash6.0 AS1.0的格式,AS2.0不採用Function函數構造器形式.這個可以看flash2k4的協助檔案裡找Function class,可以瞭解更多.

    當然AS1.0存在了很長時間,也可以實現OOP結構很好.重要的理解和熟練運用其實一種,理解OOP,FLASHMX和FLASH2K4都是不錯的軟體.這裡只是把兩種的主要區別寫了出來.



相關文章

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 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。