從flash as2 0遷移到as3 0

2021-08-25 03:43:17 字數 1647 閱讀 2988

終於正式開始從as2遷移到as3了,這段時間裡,我會把自己學習過程中的一些小經驗貢獻給大家。另外,因為是從as2遷移到as3,所以本文便從基礎開始,針對2者的差異做**分析比較。

[1b]1、常量差異

[/1b]請看as2**:

var str:string;

var num:number;

var boo:boolean;

var obj:object;

var notyped;

trace(str+newline+num+newline+boo+newline+obj+newline+notyped);

//return

undefined

undefined

undefined

undefined

undefined再來看as3**:

var str:string;

var num:number;

var boo:boolean;

var obj:object;

var notyped;

trace(str+"\n"+num+"\n"+boo+"\n"+obj+"\n"+notyped);

//return

null

nanfalse

null

undefined從2者可以清楚的看到:在as2中string、number、boolean、object的預設值都是undefined,而在as3中則分別為null、nan、false、null。只有未作申明的變數的預設值才是undefined。as2中還有乙個常量newline在as3中已經取消,由"\n"替換。

[1b]2、操作符差異

[/1b]這裡先只討論instanceof。雖然as3中還保留了這個操作符,但as3中推薦用is代替它。而且is的用法更為靈活。

比如:

var mystr:string="test";

var mytest:test = new test();//test is extends supertest

trace(mytest instanceof supertest); //as2 return false //as3 return true

trace(mystr instanceof string);//as2 return false

trace(mystr instanceof string);//as3 return true

trace(mystr is string);//as3 return true

從此例可以看出instanceof在as3中的比as2中有了變化。在as2中instanceof不會將原始型別轉換為包裝物件,因此在上面例子中的string驗證中返回false,並且它對超類(如supertest)不起作用。而在as3中它是基於物件的原型鏈的,所以在第乙個trace中會返回true。但是as3中instanceof並不支援介面,而is支援。比如:

var mytest:test = new test();//test implements inte***cetest

trace(mytest is inte***cetest); //as3 return true 

trace(mytest instanceof inte***cetest); //as3 return false

從flash as2 0遷移到as3 0

終於正式開始從as2遷移到as3了,這段時間裡,我會把自己學習過程中的一些小經驗貢獻給大家。另外,因為是從as2遷移到as3,所以本文便從基礎開始,針對2者的差異做 分析比較。1b 1 常量差異 1b 請看as2 var str string var num number var boo boole...

從 ADT 遷移到 Android Studio

如果你看到上面的優點,已經克服了心中的懷疑和恐懼,準備動手遷移,下面提供一些遷移提示。部分需要科學上網 你無法科學上網?趕緊搜一下,自己搭或者買乙個吧。世界如此多嬌,人生苦短。將你遇到過問題的出錯資訊用 google 搜尋,第一條來自 stackoverflow 的答案就是你想要的。android ...

從 Redis 遷移到 SSDB

工具 在tools目錄中的redis import.phpphp 指令碼可以用來將 redis 伺服器上的資料,拷貝到 ssdb 伺服器上 用法 php redis import.php redis host redis port redis db ssdb host ssdb port 引數 請確...