下面一段摘自《programming actionscript 3.0 中文版》
adobe flash player 使用垃圾**系統來恢復不再使用的記憶體。當物件不具有指向它的引用
時,即可對其進行垃圾**,並會在下次執行垃圾**系統時恢復記憶體。例如,以下**創
建乙個新物件,並將對此物件的引用分配給變數 myobject:
var myobject:object = new object();
只要有對此物件的引用,垃圾**系統就不會恢復此物件占用的記憶體。如果更改 myobject
的值以使其指向其它物件或將其設定為值 null,並且沒有對原始物件的其它引用,則可以對
原始物件占用的記憶體進行垃圾**。
如果將 myobject 用作 dictionary 物件中的鍵,則會建立對原始物件的另乙個引用。例如,
以下**建立兩個物件引用(myobject 變數和 mymap 物件中的鍵):
import flash.utils.dictionary;
var myobject:object = new object();
var mymap:dictionary = new dictionary();
mymap[myobject] = "foo";
要使 myobject 引用的物件能夠進行垃圾**,您必須刪除對它的所有引用。在此情況下,
必須更改 myobject 的值並從 mymap 中刪除 myobject 鍵,如以下**所示:
myobject = null;
delete mymap[myobject];
此外,它可以使用 dictionary 建構函式的 useweakreference 引數,以使所有字典的鍵成
為「弱引用」。垃圾**系統忽略弱引用,也就是說只具有弱引用的物件可以進行垃圾**。
例如,在以下**中,要使物件能夠進行垃圾**,您不需要從 mymap 中刪除 myobject 鍵:
import flash.utils.dictionary;
var myobject:object = new object();
var mymap:dictionary = new dictionary(true);
mymap[myobject] = "foo";
myobject = null; // 使物件能夠進行垃圾**。
感覺這句可以省略,直到程式結束被自動**,當然,寫上更好
ActionScript 3 0工廠模式例項
研究了一段時間工廠模式,順便把書裡面的例子敲一下,大概效果就是這樣。示例效果 說明 運用了兩個工廠模式,乙個是簡單工廠 shipcreator.as 建立飛行器,乙個是工廠方法 weapon.as 建立 子彈。飛機裝載的 過於耦合,如果要開發成小遊戲,還要改善。用這個例子說明工廠方法實在適合不過,飛...
ActionScript 3 0 事件機制小結
這次先把actionscript 3.0 事件機制總結一下先吧,這裡只說一下自定義類傳送事件的3中方式,因為在設計模式中是比較常用的。例如mvc。關於自定義事件,主要由於兩個類 事件類 event 事件傳送類 eventdispatcher 我們討論的自定義傳送事件,就是如何使物件能夠傳送事件。方式...
actionscript 3 0 理解冒泡事件
關於冒泡事件的理解,主要有3個階段 1.捕獲階段,eventphase的屬性值1 2.目標階段,eventphase的屬性值2 3.冒泡階段,eventphase的屬性值3 以上為黑羽所著的 actionscript3殿堂之路 中描述為。讓我們來看下面的例子 比如點選以上倒數第3個容器,事件流過程如...