<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>memo.393 &#187; GC</title>
	<atom:link href="http://memo.393.bz/archives/tag/gc/feed" rel="self" type="application/rss+xml" />
	<link>http://memo.393.bz</link>
	<description>個人的メモです。間違いなどありましたらご指摘ください。。。</description>
	<lastBuildDate>Sat, 31 Jul 2010 13:55:47 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>[AS]removeChild()でガベージコレクション(GC)対象となる。</title>
		<link>http://memo.393.bz/archives/377</link>
		<comments>http://memo.393.bz/archives/377#comments</comments>
		<pubDate>Thu, 05 Mar 2009 17:17:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[GC]]></category>

		<guid isPermaLink="false">http://memo.393.bz/?p=377</guid>
		<description><![CDATA[例えば、フレームアクションで、


var sp:Sprite = new Sprite();
this.addChild(sp);
removeChild(sp);
sp = null;

スプライトを作って、
メイン [...]]]></description>
			<content:encoded><![CDATA[<p>例えば、フレームアクションで、</p>
<pre name="code" class="as">

var sp:Sprite = new Sprite();
this.addChild(sp);
removeChild(sp);
sp = null;
</pre>
<p>スプライトを作って、<br />
メインのタイムラインに追加して、<br />
メインのタイムラインから削除して、<br />
スプライトの参照も削除</p>
<p>当然これで、spはGC対象となる。<br />
でもこの場合ではsp=nullは特に要らないみたい。</p>
<pre name="code" class="as">

var sp:Sprite = new Sprite();
this.addChild(sp);
removeChild(sp);
</pre>
<p>この場合は、これでもspはGCの対象となるようす。<br />
removeChild()した時点で、GC対象となっている。</p>
<p>removeChildについてのドキュメントより、</p>
<blockquote><p>DisplayObjectContainer インスタンスの子リストから指定の child DisplayObject インスタンスを削除します。<br />
削除された子の parent プロパティは null に設定されます。その子に対する参照が存在しない場合、そのオブジェクトはガベージコレクションによって収集されます。</p></blockquote>
<p>参考サイト：<br />
<a href="http://blog.katsuma.tv/2008/03/flashplayer_gc.html">FlashPlayer9のガベージコレクタのメモリ解放の考察 </a></p>
<p>DisplayObjectじゃない(addChildしてない)変数をGC対象とするときは○○=nullを使って参照を切ればいいってことなのかな。</p>
]]></content:encoded>
			<wfw:commentRss>http://memo.393.bz/archives/377/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
