我不完全理解在這個例子中類型轉換的這兩種方法之間的優勢/劣勢:AS3爲VS級()
for each(var i:DisplayObject in _display)
{
trace(i as Sprite);
trace(Sprite(i));
}
有什麼建議解決這個呢?我一直用Class()
包裝,就像後面的例子一樣,但as
有時候讀起來更容易。
我不完全理解在這個例子中類型轉換的這兩種方法之間的優勢/劣勢:AS3爲VS級()
for each(var i:DisplayObject in _display)
{
trace(i as Sprite);
trace(Sprite(i));
}
有什麼建議解決這個呢?我一直用Class()
包裝,就像後面的例子一樣,但as
有時候讀起來更容易。
據我所知,區別是TypeError
。
var o:Object = "test";
trace(o as MovieClip); // displays: null
trace (MovieClip (o)); // generates a TypeError
http://archive.darronschall.com/weblog/2006/02/actionscript-3-casting.html
我總是像使用,因爲當你使用類(參考)幾類有意想不到的效果。例如
var arr:Array = [1, 2, 3];
var arr2:Array = Array(arr);
ARR2現在是[1,2,3]
這是相當明顯的,當ARR和ARR2被定義在那裏一起,但是當ARR定義別的地方,你不」 t知道它是否包含數組,您可以使用Array(arr)語法獲得一個bug。