03.22
[此文章僅供ActionScript3.0參考]
ActionScript3.0的嚴謹性是眾所皆知的,雖然有很多Flash的美術設計師對這個 ActionScript3.0 是又恐懼又氣憤,但是我個人是抱著樂觀的態度來迎接他,因為我已經被 ActionScript2.0 許多不統一的寫法邏輯困擾很久了,到了 ActionScript3.0 以後反而覺得輕鬆自在許多,因為裡面的寫法又乾淨又有統一性 (除了 NetStream 這一掛的)。
稍微扯遠了,在 ActionScript3.0 中有一個 as 的運算,這是幹麻用的哩,as 其實有點像形態轉換方法,不過他又不是,舉個例子來說,若是要將某個型態的值給轉換掉,就可以用型態轉換的函數來處理:
//將數字轉換成布林
trace(Boolean("-1″));
這樣一來就能將轉換型態給傳回來,但是 as 是專門拿來處理複雜的型態,例如 Array,Class,DisplayObject等,當某種型態使用 as DataType 時,他會嘗試用該種型態來表示他,否則無法轉換時將會用該型態的內定值來表示之,例如:
var users:Array = new Array("anistar","sung");
trace(users as Array);
//顯示: "anistar,sung" 因為users是陣列
trace(usera as Number);
//顯示: NaN 因為users不是數字
這樣應該就比較會有點概念了,那這個是要幹麻用的哩,這就要講到 ActionScript3.0 當中許多好用的新類別與方法,這以後再說,我舉個簡單的例子,例如若要產生一個 ArrayCollection 那個在 ArrayCollection 的類別參數中就必須使用陣列,所以這時候就很好使用了,我舉兩個例子:
var users:ArrayCollection = dataGrid.dataProvider as ArrayCollection;
或是:
var users:ArrayCollection = new ArrayCollection(myArray as Array);
當然,不是說不寫就一定會錯,有時候不是程式能跑出來就好了,最好還是嚴謹至上,必盡如果有BUG出現時,這時候相信找錯的時間上會減少許多。
相關文章:
文章內容由宋志峰[ANISTAR]撰寫,引用分享請以鏈結形式註明出處與原始作者。


No Comment.
Add Your Comment