Forked from: Fumio's Testing weak reference diff:12 forked from: Testing weak reference プライベート関数:GCされない keno42 forked:1favorite:0lines:30license : MIT License modified : 2009-09-02 19:04:08 Embed Tweet // forked from Fumio's Testing weak reference 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(); public function TestingWeakRef() { var myTimer:Timer = new Timer(1); addEventListener(Event.ENTER_FRAME, test, false, 0, true); // 弱い参照を指定 my_txt.wordWrap = true; my_txt.autoSize = TextFieldAutoSize.LEFT; addChild(my_txt); myTimer.addEventListener(TimerEvent.TIMER, xTest); myTimer.start(); } private function test(e:Event):void{ my_txt.text = String(new Date().time) + ": " + String(System.totalMemory); } private function xTest(eventObject:Event):void { new TextField(); } } } Code Fullscreen Preview Fullscreen test が publicかprivateかとGCされないことはあまり関係が無いように思えるのですが、これはどういった意図のコードなんですか。 by mtok at 2009/09/04 06:12:02 元コードはtestが関数クロージャでした。外に出すと関数への参照が生きているのでGCされないのかなぁ?と漠然と思いましたが、本当の理由はよくわかってません。 by keno42 at 2009/09/06 23:18:12 test System.totalMemory Date TimerEvent.ENTER_FRAME start TextFieldAutoSize.LEFT TimerEvent.TIMER time addEventListener Timer text addChild String Sprite sort new page view favorite forked pv188 forked from: forked from: Test.. uwi forked:0 favorite:0lines:31 (diff:3)