package { import flash.display.Sprite; import flash.utils.Timer; import flash.system.System; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.events.Event; import flash.events.TimerEvent; public class TestingWeakRef extends Sprite { private var my_txt:TextField = new TextField(); /* 疑問 こんなふうにリスナーが消えてしまった場合、 removeListenerした場合とどう違うのか? 内部にリスナーの登録自体はのこるのか、 */ public function TestingWeakRef() { var myTimer:Timer = new Timer(1); var listener:Function = function():void { my_txt.text = String(new Date().time) + ": " + String(System.totalMemory); } addEventListener(Event.ENTER_FRAME, listener, false, 0, true); // 弱い参照を指定 my_txt.wordWrap = true; my_txt.autoSize = TextFieldAutoSize.LEFT; addChild(my_txt); myTimer.addEventListener(TimerEvent.TIMER, xTest); myTimer.start(); } private function xTest(eventObject:Event):void { new TextField(); //trace('timer'); } } } 疑問