<?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>Power-up Media Blog &#187; code</title>
	<atom:link href="http://blog.powerupmedia.nl/tag/code/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.powerupmedia.nl</link>
	<description></description>
	<lastBuildDate>Wed, 20 Jul 2011 20:39:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>0.1*3 = 0.30000000000000004</title>
		<link>http://blog.powerupmedia.nl/2007/12/20/013-030000000000000004/</link>
		<comments>http://blog.powerupmedia.nl/2007/12/20/013-030000000000000004/#comments</comments>
		<pubDate>Thu, 20 Dec 2007 14:53:53 +0000</pubDate>
		<dc:creator>Arno van Oordt</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Power-up Media]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as2]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://blog.justgreat.nl/2007/12/20/013-030000000000000004/</guid>
		<description><![CDATA[Isn&#8217;t this just great? I stumbled upon this problem in actionscript a while ago, but at that time I just worked around it and never bothered again&#8230; until today. A colleague came to me with the same problem and I decided to investigate a little more. Apparently it is some weird bug when it comes to [...]]]></description>
			<content:encoded><![CDATA[<p>Isn&#8217;t this just great? I stumbled upon this problem in actionscript a while ago, but at that time I just worked around it and never bothered again&#8230; until today. A <a target="_blank" href="http://blog.idsklijnsma.nl/">colleague</a> came to me with the same problem and I decided to investigate a little more.</p>
<p>Apparently it is some weird bug when it comes to multiplying decimals values by 3. Take this little script for example:</p>

<div class="wp_codebox"><table><tr id="p803"><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="p80code3"><pre class="actionscript" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">var</span> j:<span style="color: #0066CC;">Number</span>; 
<span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> i:<span style="color: #0066CC;">int</span>=<span style="color: #cc66cc;">0</span>; i<span style="color: #66cc66;">&amp;</span>lt;<span style="color: #cc66cc;">10</span>; i++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span> 
	j = i<span style="color: #66cc66;">/</span><span style="color: #cc66cc;">10</span>; 
	<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>j+<span style="color: #ff0000;">&quot;*3 =<span style="color: #000099; font-weight: bold;">\t</span>&quot;</span>+<span style="color: #66cc66;">&#40;</span>j<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>; 
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>It outputs:<br />
0*3 = 0<br />
0.1*3 = 0.30000000000000004<br />
0.2*3 = 0.6000000000000001<br />
0.3*3 = 0.8999999999999999<br />
0.4*3 = 1.2000000000000002<br />
0.5*3 = 1.5<br />
0.6*3 = 1.7999999999999998<br />
0.7*3 = 2.0999999999999996<br />
0.8*3 = 2.4000000000000004<br />
0.9*3 = 2.7</p>
<p>And it doesn&#8217;t stop just there. The same problems occur when adding a decimal value to the double of it&#8217;s value:</p>

<div class="wp_codebox"><table><tr id="p804"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p80code4"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>.1+.2<span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">//0.30000000000000004 </span>
<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>.2+.4<span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">//0.6000000000000001 </span>
<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>.3+.6<span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">//0.8999999999999999 </span>
<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>.4+.8<span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">//1.2000000000000002</span></pre></td></tr></table></div>

<p>The problem occurres in Javascript as well as in Actionscript (and probably some other languages too) so it&#8217;s probably caused by the way decimal values are treated at byte-level. Because it&#8217;s not likely there will be a fix for this soon, here is a little workaround:<br />
i = int(i *10)/10; //use int() in favour of Math.round() to speed up the code</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.powerupmedia.nl/2007/12/20/013-030000000000000004/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Joy with the script timeout period</title>
		<link>http://blog.powerupmedia.nl/2007/08/24/joy-with-the-script-timeout-period/</link>
		<comments>http://blog.powerupmedia.nl/2007/08/24/joy-with-the-script-timeout-period/#comments</comments>
		<pubDate>Fri, 24 Aug 2007 12:11:28 +0000</pubDate>
		<dc:creator>Arno van Oordt</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Power-up Media]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[timeout]]></category>

		<guid isPermaLink="false">http://blog.justgreat.nl/?p=60</guid>
		<description><![CDATA[Isn&#8217;t it just great when you finally find a useful new feature in Flash 9. I&#8217;m talking about the script-timeout period. Remember how you sometimes had to run a script for more than 15 seconds and always got that annoying timeout popup? From now on (using Flash 9 / player 7 and up) you can [...]]]></description>
			<content:encoded><![CDATA[<p>Isn&#8217;t it just great when you finally find a <strong>useful</strong> new feature in Flash 9.<br />
I&#8217;m talking about the script-timeout period.<br />
Remember how you sometimes had to run a script for more than 15 seconds and always got that annoying timeout popup? From now on (using Flash 9 / player 7 and up) you can set the timeout as you wish. Isn&#8217;t that just great?!<br />
It gets even better when you use AS3; the player doesn&#8217;t just show the script-timeout popup but it actually throws an Error (&#8220;Error #1502: A script has executed for longer than the default timeout period of 15 seconds.&#8221;). This way you can make a certain part of your script (which needs more time than the supplied timeout period) run over and over again until the calculation is complete.</p>
<p>Here is an example:</p>

<div class="wp_codebox"><table><tr id="p606"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td class="code" id="p60code6"><pre class="actionscript" style="font-family:monospace;">package <span style="color: #66cc66;">&#123;</span> 
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">Event</span>; 
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #0066CC;">MovieClip</span>; 
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> TestMC <span style="color: #0066CC;">extends</span> <span style="color: #0066CC;">MovieClip</span><span style="color: #66cc66;">&#123;</span> 
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> i:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; 
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> loopCount:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; 
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> TestMC<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span> 
			<span style="color: #0066CC;">this</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, <span style="color: #0066CC;">this</span>.<span style="color: #006600;">calculate</span><span style="color: #66cc66;">&#41;</span>; 
		<span style="color: #66cc66;">&#125;</span> 
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> calculate<span style="color: #66cc66;">&#40;</span>event:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span> 
			<span style="color: #0066CC;">try</span><span style="color: #66cc66;">&#123;</span> 
				<span style="color: #b1b100;">while</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">this</span>.<span style="color: #006600;">i</span>++; <span style="color: #66cc66;">&#125;</span> 
			<span style="color: #66cc66;">&#125;</span> 
			<span style="color: #0066CC;">catch</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:<span style="color: #0066CC;">Error</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span> 
				<span style="color: #0066CC;">this</span>.<span style="color: #006600;">loopCount</span>++; 
				<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;____________n'i' after &quot;</span>+loopCount+<span style="color: #ff0000;">&quot; frames = &quot;</span> + <span style="color: #0066CC;">this</span>.<span style="color: #006600;">i</span><span style="color: #66cc66;">&#41;</span>; 
				<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>i<span style="color: #66cc66;">&amp;</span>lt;<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span> <span style="color: #808080; font-style: italic;">//i will be negative when it becomes to big, normally you would check here if your calculation is done... </span>
					<span style="color: #0066CC;">this</span>.<span style="color: #006600;">removeEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, <span style="color: #0066CC;">this</span>.<span style="color: #006600;">calculate</span><span style="color: #66cc66;">&#41;</span>; 
				<span style="color: #66cc66;">&#125;</span> 
			<span style="color: #66cc66;">&#125;</span> 
		<span style="color: #66cc66;">&#125;</span> 
	<span style="color: #66cc66;">&#125;</span> 
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>This is just an example and I’m sure you can think of much more useful ways to use this feature.<br />
Hope it heps you along…</p>
<p>Update (1 December 2007):<br />
Just great; I forgot to mention HOW to set the timeout . Well here is how:<br />
You can’t set the timeoutperiod by code (neither in as3 nor in as2). You have to set the timeout manually in the publish settings of your fla: Ctrl+Shift+F12 &gt; flash-tab &gt; “Script time limit”.<br />
Let me know if you still have trouble.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.powerupmedia.nl/2007/08/24/joy-with-the-script-timeout-period/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Where is my as2 remoting in Flash 9?</title>
		<link>http://blog.powerupmedia.nl/2007/07/25/where-is-my-as2-remoting-in-flash-9/</link>
		<comments>http://blog.powerupmedia.nl/2007/07/25/where-is-my-as2-remoting-in-flash-9/#comments</comments>
		<pubDate>Wed, 25 Jul 2007 15:14:15 +0000</pubDate>
		<dc:creator>Arno van Oordt</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Power-up Media]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as2]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flash 9]]></category>
		<category><![CDATA[remoting]]></category>

		<guid isPermaLink="false">http://blog.justgreat.nl/?p=58</guid>
		<description><![CDATA[Just great! I installed Flash 9 and was happy I could finally throw out the old Flash 8 version only to find out that I couldn&#8217;t  compile my old as2 remoting projects in Flash 9. At Adobe they were smart enough to include remoting in as3 but they totally forgot to add it for as2 as well. Checking the (Flash [...]]]></description>
			<content:encoded><![CDATA[<p>Just great! I installed Flash 9 and was happy I could finally throw out the old Flash 8 version only to find out that I couldn&#8217;t  compile my old as2 remoting projects in Flash 9. At Adobe they were smart enough to include remoting in as3 but they totally forgot to add it for as2 as well. Checking the (Flash 9) help led me to the <a target="_blank" href="http://www.adobe.com/support/flashremoting/">site</a> where I can only download the Flash 8 remoting installer which can&#8217;t be installed for Flash 9&#8230;</p>
<p>Very smart Adobe! <img src='http://blog.powerupmedia.nl/wp-includes/images/smilies/icon_neutral.gif' alt=':|' class='wp-smiley' /> </p>
<p>Fortunately I thought of an easy way to get this problem solved; simply copy the remoting classes from Flash 8 to some other directory and set this directory as one of your default Flash 9 &#8211; as2 &#8211; classpaths. (Copying it into the default classpath with all other default classes didn&#8217;t work for me somehow.)</p>
<p>To make it easy for you I extracted the remoting classes and put them in a zip: <a href="http://blog.powerupmedia.nl/wp-content/uploads/2007/07/as2remotingpackage.zip" title="AS2 Remoting Package">as2RemotingPackage.zip</a></p>
<p>PS: I coudn&#8217;t find <strong>any</strong> info about this on the internet so either nobody ever needed it, nobody ever bothered to try and find a solution or this solution is so simple nobody ever bothered to write about it.<br />
Anyway I bother to write about it for those of you who couldn&#8217;t find a solution or just didn&#8217;t bother to find one.</p>
<p>Hope this will help you&#8230; <img src='http://blog.powerupmedia.nl/wp-includes/images/smilies/icon_idea.gif' alt=':idea:' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.powerupmedia.nl/2007/07/25/where-is-my-as2-remoting-in-flash-9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I want actual sizes!</title>
		<link>http://blog.powerupmedia.nl/2007/07/05/i-want-actual-sizes/</link>
		<comments>http://blog.powerupmedia.nl/2007/07/05/i-want-actual-sizes/#comments</comments>
		<pubDate>Thu, 05 Jul 2007 09:22:51 +0000</pubDate>
		<dc:creator>Arno van Oordt</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Power-up Media]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as2]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://blog.justgreat.nl/?p=54</guid>
		<description><![CDATA[Just great! yet another weird Flash &#8220;feature&#8221;. When I tried to get the width of a rotating MovieClip I got wildly variating values. This surprised me because the MovieClip only contained exact round shape. The circle was 25 px in diameter, but when I started to trace the width in an interval I got values ranging from [...]]]></description>
			<content:encoded><![CDATA[<p>Just great! yet another weird Flash &#8220;feature&#8221;. When I tried to get the width of a rotating MovieClip I got wildly variating values. This surprised me because the MovieClip only contained exact round shape. The circle was 25 px in diameter, but when I started to trace the width in an interval I got values ranging from 25 to 35.4px.</p>
<p>As it turned out, the width and height of the MovieClip only represent the bounding box of the original shape (when it still had a rotation of 0). The only way to get the actual width and height of the MovieClip was to use the <em>getBounds</em>method. This method calculates the boundingbox according to the current shape and orientation of the MovieClip giving the trrue width and height.</p>
<p>To test this create a movieclip width a circle in it and place the code below on the first frame (I&#8217;m no fan of timeline-code but it&#8217;s ideal for testing purpose <img src='http://blog.powerupmedia.nl/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  ).</p>

<div class="wp_codebox"><table><tr id="p548"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p54code8"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">onEnterFrame</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span> 
	<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_rotation</span> += <span style="color: #cc66cc;">15</span>; 
	<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;boundingbox-width: &quot;</span>+<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">getBounds</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">xMax</span>-<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">getBounds</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">xMin</span><span style="color: #66cc66;">&#41;</span>+<span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\t</span><span style="color: #000099; font-weight: bold;">\t</span>width: &quot;</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_width</span><span style="color: #66cc66;">&#41;</span>; 
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>The sample is as2 but the problem and solution are the same in as3.</p>
<p>I hope this helps some of you who were wondering why a 25px circel suddenly had a 35.4px width <img src='http://blog.powerupmedia.nl/wp-includes/images/smilies/icon_neutral.gif' alt=':|' class='wp-smiley' />  .</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.powerupmedia.nl/2007/07/05/i-want-actual-sizes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>allowFulSceen vs. transparent wmode</title>
		<link>http://blog.powerupmedia.nl/2007/06/29/allowfulsceen-vs-transparent-wmode/</link>
		<comments>http://blog.powerupmedia.nl/2007/06/29/allowfulsceen-vs-transparent-wmode/#comments</comments>
		<pubDate>Fri, 29 Jun 2007 10:29:41 +0000</pubDate>
		<dc:creator>Arno van Oordt</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Power-up Media]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as2]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[embedding]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[fullscreen]]></category>
		<category><![CDATA[transparent]]></category>

		<guid isPermaLink="false">http://blog.justgreat.nl/?p=53</guid>
		<description><![CDATA[Just great when you waste half an hour figuring out why you can&#8217;t get your flash to run in fullscreen mode To save you the time and frustration, here is why it didn&#8217;t work: You can&#8217;t use the allowFullScreen = true and wmode = transparent together Somehow the flashplayer is not smart enough to simply [...]]]></description>
			<content:encoded><![CDATA[<p>Just great when you waste half an hour figuring out why you can&#8217;t get your flash to run in fullscreen mode <img src='http://blog.powerupmedia.nl/wp-includes/images/smilies/icon_neutral.gif' alt=':|' class='wp-smiley' /> </p>
<p>To save you the time and frustration, here is why it didn&#8217;t work:<br />
You can&#8217;t use the <strong>allowFullScreen = true</strong> and <strong>wmode = transparent</strong> together <img src='http://blog.powerupmedia.nl/wp-includes/images/smilies/icon_confused.gif' alt=':?' class='wp-smiley' /> </p>
<p>Somehow the flashplayer is not smart enough to simply make the background opaque when you set the player to fullscreen mode.</p>
<p>Lets hope they fix this in the next player update&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.powerupmedia.nl/2007/06/29/allowfulsceen-vs-transparent-wmode/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Garbage Collector troubles using the Loader class.</title>
		<link>http://blog.powerupmedia.nl/2007/06/18/garbage-collector-troubles-using-the-loader-class/</link>
		<comments>http://blog.powerupmedia.nl/2007/06/18/garbage-collector-troubles-using-the-loader-class/#comments</comments>
		<pubDate>Mon, 18 Jun 2007 19:41:26 +0000</pubDate>
		<dc:creator>Arno van Oordt</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Power-up Media]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flash 9]]></category>
		<category><![CDATA[garbage collector]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[loader]]></category>

		<guid isPermaLink="false">http://blog.justgreat.nl/?p=44</guid>
		<description><![CDATA[Just great another weird Garbage Collector issue in AS3: When I load an image using the Loader class and unload it later on. It won&#8217;t be disposed by the garbage collector. There are no references to neither the Loader nor the (weak) eventlisteners. After loading the image a couple of times the memory goes sky [...]]]></description>
			<content:encoded><![CDATA[<p>Just great <img src='http://blog.powerupmedia.nl/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  another weird Garbage Collector issue in AS3:</p>
<p>When I load an image using the Loader class and unload it later on. It won&#8217;t be disposed by the garbage collector.<br />
There are no references to neither the Loader nor the (weak) eventlisteners. After loading the image a couple of times the memory goes sky high <img src='http://blog.powerupmedia.nl/wp-includes/images/smilies/icon_neutral.gif' alt=':|' class='wp-smiley' /> .</p>
<p>Here is a (simple) example: <a href="http://blog.powerupmedia.nl/wp-content/uploads/2007/06/loadertest.zip" title="LoaderTest">loadertest.zip</a></p>
<p>Does anyone have an explaination on why the GC doesn&#8217;t clean the loaded content? I would be very grateful!</p>
<p><strong>UPDATE 1 (2007-06-19):</strong><br />
I made the example even less complicated by using the same Loader instance when loading new images.</p>
<p>As I work around I tried to dispose the loaded BitmapData but unfortunately it had no effect.<br />
I assume the leak is somewhere within the Loader (or even deeper in the code) and that the loaded (binary) data is not removed after it&#8217;s converted into a BitmapData.</p>
<p><strong>UPDATE 2 (2007-06-19):<br />
</strong>I found the solution on in this post:<br />
<a href="http://www.webforumz.com/macromedia-flash/42690-memory-leak-when-loading-swf-in.htm">http://www.webforumz.com/macromedia-flash/42690-memory-leak-when-loading-swf-in.htm</a><a href="http://www.webforumz.com/macromedia...ding-swf-in.htm"></a></p>
<p>It seems that the unload() method has a bug when used in the flash IDE. Once I ran the test in a browser there seem to be no more problems and the GC nicely clears the memory&#8230;</p>
<p>Lets hope Adobe fixes this problem in the next Flash 9 update.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.powerupmedia.nl/2007/06/18/garbage-collector-troubles-using-the-loader-class/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Code speed-up tips!</title>
		<link>http://blog.powerupmedia.nl/2007/06/14/code-speed-up-tips/</link>
		<comments>http://blog.powerupmedia.nl/2007/06/14/code-speed-up-tips/#comments</comments>
		<pubDate>Thu, 14 Jun 2007 21:13:53 +0000</pubDate>
		<dc:creator>Arno van Oordt</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Power-up Media]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as2]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[code speed-up]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://blog.justgreat.nl/?p=43</guid>
		<description><![CDATA[Isn&#8217;t it just great how a few simple tricks can speed up your code? Here are some&#8230; Al examples below are based on the fact that calling a method is way slower than just calculating the answer on the fly. Here are some fast ways to replace common Math methods. In most cases this save [...]]]></description>
			<content:encoded><![CDATA[<p>Isn&#8217;t it just great how a few simple tricks can speed up your code? Here are some&#8230;<br />
Al examples below are based on the fact that calling a method is way slower than just calculating the answer on the fly.<br />
Here are some fast ways to replace common Math methods. In most cases this save half the time or more <img src='http://blog.powerupmedia.nl/wp-includes/images/smilies/icon_exclaim.gif' alt=':!:' class='wp-smiley' /> </p>

<div class="wp_codebox"><table><tr id="p4310"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
</pre></td><td class="code" id="p43code10"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//slow:</span>
z = <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">abs</span><span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//faster:</span>
z = <span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&lt;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span> ? -x : x;
&nbsp;
<span style="color: #808080; font-style: italic;">//slow:</span>
z = <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">min</span><span style="color: #66cc66;">&#40;</span>x,y<span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//faster:</span>
z = <span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&lt;</span>y<span style="color: #66cc66;">&#41;</span> ? x : y; 
&nbsp;
<span style="color: #808080; font-style: italic;">//slow:</span>
z = <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">max</span><span style="color: #66cc66;">&#40;</span>x,y<span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//faster:</span>
z = <span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&gt;</span>y<span style="color: #66cc66;">&#41;</span> ? x : y; 
&nbsp;
<span style="color: #808080; font-style: italic;">//slow:</span>
z = <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">floor</span><span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//faster:</span>
z = <span style="color: #66cc66;">&#40;</span>x <span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>; 
&nbsp;
<span style="color: #808080; font-style: italic;">//slow:</span>
z = <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">ceil</span><span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//faster:</span>
z = <span style="color: #66cc66;">&#40;</span>x <span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #cc66cc;">1</span>; <span style="color: #808080; font-style: italic;">//mind the brackets! </span>
&nbsp;
<span style="color: #808080; font-style: italic;">//slow:</span>
z = <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">round</span><span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//faster:</span>
z = <span style="color: #0066CC;">int</span><span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span>; 
&nbsp;
<span style="color: #808080; font-style: italic;">//slow:</span>
z = <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">pow</span><span style="color: #66cc66;">&#40;</span>x,<span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//faster:</span>
z = x<span style="color: #66cc66;">*</span>x; <span style="color: #808080; font-style: italic;">//this one only works faster if the power is a fixed value; for-loops in case of a variable power are most of the time slower than the Math.pow!</span></pre></td></tr></table></div>

<p>Of course most of the above method replacements make your code more sloppy, so I suggest you only use these replacements when the speed of the application <strong>really</strong> matters (for example in huge for-loops) or in libraries or components which rarely need adjustment.</p>
<p> <img src='http://blog.powerupmedia.nl/wp-includes/images/smilies/icon_idea.gif' alt=':idea:' class='wp-smiley' />  If you have any good additions to this list please let me know&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.powerupmedia.nl/2007/06/14/code-speed-up-tips/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use &#8220;this&#8221;&#8230;</title>
		<link>http://blog.powerupmedia.nl/2007/06/11/use-this/</link>
		<comments>http://blog.powerupmedia.nl/2007/06/11/use-this/#comments</comments>
		<pubDate>Mon, 11 Jun 2007 19:41:35 +0000</pubDate>
		<dc:creator>Arno van Oordt</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Power-up Media]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as2]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[code speed-up]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[this]]></category>

		<guid isPermaLink="false">http://blog.justgreat.nl/?p=37</guid>
		<description><![CDATA[Because &#8220;this&#8221; is just great! Unfortunately many people omit them in their code . Not sure why though, but my guess is that they are ignorant or just lazy (don&#8217;t be offended if you don&#8217;t use the this keyword for another reason, but please let me know why). Even Adobe (and Macromedia before them) neglects [...]]]></description>
			<content:encoded><![CDATA[<p>Because &#8220;<code>this</code>&#8221; is just great!</p>
<p>Unfortunately many people omit them in their code <img src='http://blog.powerupmedia.nl/wp-includes/images/smilies/icon_cry.gif' alt=':cry:' class='wp-smiley' />  . Not sure why though, but my guess is that they are ignorant or just lazy (don&#8217;t be offended if you don&#8217;t use the <code>this</code> keyword for another reason, but please let me know why).<br />
Even Adobe (and Macromedia before them) neglects the <code>this</code> keyword. None of their examples uses <code>this</code> and it&#8217;s nowhere to be found in their own code either!<br />
<strong>Shame on them!</strong></p>
<p>At the company where I work we didn&#8217;t use the keyword up until a year or two/three ago. Some of us found the keyword to be very handy and convinced the rest (not sure which group I belonged to at that time).</p>
<p>First of all, using the <font face="Courier New">this</font> instance variables supplies you the option to declare a local variable with the same name:</p>

<div class="wp_codebox"><table><tr id="p3712"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p37code12"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">this</span>.<span style="color: #006600;">myVar</span> = <span style="color: #ff0000;">&quot;my instance var&quot;</span>; 
<span style="color: #000000; font-weight: bold;">var</span> myVar:<span style="color: #0066CC;">String</span> = <span style="color: #ff0000;">&quot;my local var&quot;</span>; 
<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">myVar</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//my instance var </span>
<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>myVar<span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//my local var</span></pre></td></tr></table></div>

<p>(Note that the above code only works in a class and not in the timeline!)</p>
<p>This can come in really handy when you need to store some temporarily data, during a for loop for example.</p>
<p>The second and most important reason to use <code>this</code>, is that it keeps your code clean and neat. It will help you to visually distinguish the local variables from the instance variables. This is vital if you work in a team on the same project or if other people need to work on your project later on (bug fixing, implementing new feature, etc.)<br />
In all these cases it&#8217;s important to scan through someone&#8217;s code quickly and see at a glance where a certain variable comes from or is declared. If you omit the <code>this</code> keyword you would first have to scan the entire method to see if, maybe, the variable is declared local in this method. While if you <strong>do</strong> use the <code>this</code> keyword you know for sure it is declared in the Class definition and you know you can use it throughout the entire class (and in case of a public var, throughout the entire code).</p>
<p>So using the <code>this</code> keyword gives you more control over your code and it lets you (and your colleagues) programme in old or other peoples code <strong>much</strong> faster!</p>
<p>If you don&#8217;t use the <code>this</code> keyword at the moment, I hope this post convinced you to try out the <code>this</code> keyword for a while (even if it&#8217;s only for one single project) and I&#8217;m sure you never want to programme with out it, ever again.</p>
<p>If you already did use the <code>this</code> keyword, maybe this post wil help you to convince some ignorant fools in your vicinity <img src='http://blog.powerupmedia.nl/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.powerupmedia.nl/2007/06/11/use-this/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

