<?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>Tommy Lacroix &#187; Flash</title>
	<atom:link href="http://www.tommylacroix.com/category/web-development/programming/flash/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tommylacroix.com</link>
	<description>Personal Blog</description>
	<lastBuildDate>Tue, 08 Dec 2009 18:23:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PHP based MP4/F4V meta data reader</title>
		<link>http://www.tommylacroix.com/2009/06/11/mp4-and-f4v-php-flash-video-meta-data-reader/</link>
		<comments>http://www.tommylacroix.com/2009/06/11/mp4-and-f4v-php-flash-video-meta-data-reader/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 14:45:40 +0000</pubDate>
		<dc:creator>tlacroix</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[PHP]]></category>
<category>duration</category><category>f4v</category><category>flash</category><category>flv</category><category>height</category><category>meta</category><category>meta data</category><category>mp4</category><category>mp4info</category><category>php</category><category>tool</category><category>width</category>
		<guid isPermaLink="false">http://www.tommylacroix.com/?p=124</guid>
		<description><![CDATA[
You might have read my post about my FLV meta data and cue point reader/writer. You might also know that the F4V format (which really is simple MP4+H264+AAC) succeeded to the FLV format, and is supported by Flash 9.0.115 and up.
The MP4Info class is a simple extensible PHP class reading the MP4 container&#8217;s frames (called [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float:left;margin:0 10px 10px 0;" title="F4V File Format" src="http://www.tommylacroix.com/wp-content/uploads/2009/06/f4v.gif" alt="F4V File Format" width="128" height="128" /><br />
You might have read my post about my <a title="PHP based FLV meta and cue points reader/writer" href="http://www.tommylacroix.com/2008/07/04/a-php-tool-to-modify-an-flv-meta-and-cuepoints-on-the-fly/" target="_self">FLV meta data and cue point reader/writer</a>. You might also know that the <a title="Flash Video, at Wikipedia" href="http://en.wikipedia.org/wiki/Flash_Video#File_formats" target="_blank">F4V format</a> (which really is simple MP4+H264+AAC) succeeded to the FLV format, and is supported by Flash 9.0.115 and up.</p>
<p>The <a title="php-mp4info, at Google Code" href="http://code.google.com/p/php-mp4info/" target="_blank">MP4Info class</a> is a simple extensible PHP class reading the MP4 container&#8217;s frames (called boxes) to get various information, namely the video duration, the video/audio codecs, the width and the height, as well as the embedded <a title="Adobe's Extensible Meta-data Platform (XMP), at Wikipedia" href="http://en.wikipedia.org/wiki/Extensible_Metadata_Platform" target="_blank">XMP meta data</a>.</p>
<p>The F4V format is better than the FLV format in many aspects:</p>
<ul>
<li>Better compression ratio</li>
<li>Better quality at similar bit rates</li>
<li>Open source compressors available, through ffmpeg and libh264 (Flash 8 On2 VP6 codec is proprietary)</li>
<li>Decoding H.264 is a lot less CPU intensive on the host computer than decoding On2 VP6</li>
</ul>
<div>With <a title="Adobe Flash Player Version Penetration" href="http://www.adobe.com/products/player_census/flashplayer/version_penetration.html" target="_blank">Flash 9 being at a rate of penetration of 98.9% in mature markets</a><sup>1</sup> and will all the advantages, MP4 Flash video is becoming more and more common.</div>
<div><span id="more-124"></span></div>
<div>It really only has been tested with Sorenson Squeeze encoded F4V files for now, and therefore should be considered beta.</p>
<p>You&#8217;ll find the project <a title="php-mp4info, at Google Code" href="http://code.google.com/p/php-mp4info/" target="_blank">at Google Code, under php-mp4info</a>.</p>
<p><small><sup>1</sup> As per Adobe&#8217;s Adobe Flash Player Version Penetration statistics, on June 11, 2009<br />
<sup>2</sup> F4V logo at the top found at <a title="Flash Develop And Design" href="http://www.flashdevelop.net/postshow_975.html" target="_blank">Flash Develop And Design</a></small></div>
]]></content:encoded>
			<wfw:commentRss>http://www.tommylacroix.com/2009/06/11/mp4-and-f4v-php-flash-video-meta-data-reader/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PHP based FLV meta and cue points reader/writer</title>
		<link>http://www.tommylacroix.com/2008/07/04/a-php-tool-to-modify-an-flv-meta-and-cuepoints-on-the-fly/</link>
		<comments>http://www.tommylacroix.com/2008/07/04/a-php-tool-to-modify-an-flv-meta-and-cuepoints-on-the-fly/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 21:30:26 +0000</pubDate>
		<dc:creator>tlacroix</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[cue point]]></category>
		<category><![CDATA[flv]]></category>
		<category><![CDATA[meta data]]></category>
<category>cue point</category><category>flash</category><category>flv</category><category>meta data</category><category>php</category>
		<guid isPermaLink="false">http://www.tommylacroix.com/?p=63</guid>
		<description><![CDATA[Update (Dec 20, 2008): The AMF0Parser library has been updated to better handle broken AMF0 packets. The FLVInfo2 library PHPDoc has been updated.
Update (Aug 15, 2008): The AMF0Parser library has been updated to support the Date type in the metas, added among others by the &#8220;inlet media FLVTool2&#8243; tool.
Update (Jun 11, 2009): The project has [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-medium wp-image-68" style="float:left; margin: 0 8px 0 8px;" title="Flash Video" src="http://www.tommylacroix.com/wp-content/uploads/2008/07/64px-flashvideo.png" alt="" width="64" height="64" /><strong>Update (Dec 20, 2008): The AMF0Parser library has been updated to better handle broken AMF0 packets. The FLVInfo2 library PHPDoc has been updated.</strong></p>
<p><strong>Update (Aug 15, 2008): The AMF0Parser library has been updated to support the Date type in the metas, added among others by the &#8220;inlet media FLVTool2&#8243; tool.</strong></p>
<p><strong>Update (Jun 11, 2009): The project has been moved to </strong><a title="php-flvinfo at Google Code" href="http://code.google.com/p/php-flvinfo/" target="_blank"><strong>Google Code</strong></a><strong>. MP4Info, an F4V file (or more genericaly MP4 file) class is also available: check out <a title="PHP based MP4/F4V meta data reader" href="http://www.tommylacroix.com/2009/06/11/mp4-and-f4v-php-flash-video-meta-data-reader/" target="_self">blog post</a></strong><strong> and project at <a title="php-mp4info, at Google Code" href="http://code.google.com/p/php-mp4info/" target="_blank">Google Code</a></strong><strong>.</strong></p>
<p>If you&#8217;ve done Flash banners or micro-sites that embed video with cue points for synchronization before, you know that it&#8217;s a pain in the arse. There doesn&#8217;t seem to be any tool around to modify the damn points once the file is encoded, so you&#8217;ve got to re-encode the file over and over to have your things synced correctly.</p>
<p>If you&#8217;ve tried to reverse engineer the <a title="Flash Video, at Wikipedia" href="http://en.wikipedia.org/wiki/Flv" target="_blank">FLV format</a> before, you know that it&#8217;s a pain in the arse as well. The AMF0 format is anything but intuitive, and the documentation has been lacking for a long long time &#8212; although there&#8217;s apparently an SDK now. Luckily, there was <a title="OSFlash" href="http://osflash.org/" target="_blank">OSFlash</a>, and <a title="SabreAMF PHP Library, at Google Code" href="http://sabreamf.googlecode.com/" target="_blank">SabreAMF</a> and <a title="AMFPHP library" href="http://osflash.org/projects/amfphp" target="_blank">AMFPHP</a> that could be used as a documentation source.</p>
<p>If you recognize yourself, this might be your lucky day. After many hours of trial and error, I&#8217;ve finally been able to reverse engineer it, and to build a library that extract essential FLV information, reads the Meta, and allows you to write them back &#8212; including the cue points.</p>
<p><span id="more-63"></span></p>
<p>First, you&#8217;ll need to FLVInfo2 and the AMF0Parser libraries, below. The FLVInfo2 library has three main functions:</p>
<ul>
<li><code>getInfo</code>, which returns information gotten from analyzing the FLV file and it&#8217;s meta. Frame rate, bit rate, audio/video codec, width, height, etc.
<pre class="code">(
    [signature] =&gt; 1
    [hasVideo] =&gt; 1
    [hasAudio] =&gt; 1
    [minimalFlashVersion] =&gt; 8
    [video] =&gt; stdClass Object
        (
            [codec] =&gt; 4
            [width] =&gt; 320
            [height] =&gt; 240
            [keyframeRatio] =&gt; 0.0180537208278
            [keyframeEvery] =&gt; 55.3902439024
            [fps] =&gt; 15
            [bitrate] =&gt; 448
            [codecStr] =&gt; On2 VP6
        )

    [audio] =&gt; stdClass Object
        (
            [codec] =&gt; 2
            [frequency] =&gt; 22
            [depth] =&gt; 16
            [channels] =&gt; 2
            [bitrate] =&gt; 48
            [codecStr] =&gt; MP3
        )
)</pre>
</li>
<li><code>getMeta</code>, which returns the meta data, and the cue points
<pre class="code">Array
(
    [metas] =&gt; Array
        (
            [0] =&gt; Array
                (
                    [0] =&gt; onMetaData
                    [1] =&gt; Array
                        (
                            [duration] =&gt; 151.46
                            [width] =&gt; 320
                            [height] =&gt; 240
                            [videodatarate] =&gt; 500
                            [canSeekToEnd] =&gt; 1
                            [videocodecid] =&gt; 4
                            [audiodatarate] =&gt; 48
                            [audiocodecid] =&gt; 2
                            [framerate] =&gt; 15
                            [creationdate] =&gt; Tue Jun 17 13:06:15 2008
                            [Encoded_By] =&gt; orangetango Video Encoder
                            [Encoded_With] =&gt; orangetango Video Encoder
                            [metadatacreator] =&gt; orangetango FLV meta data writer
                        )
                )
        )
    [cuepoints] =&gt; Array
        (
            [0] =&gt; Array
                (
                    [0] =&gt; onCuePoint
                    [1] =&gt; Array
                        (
                            [name] =&gt; name1
                            [time] =&gt; 4.41
                            [type] =&gt; event
                        )
                )
            [1] =&gt; Array
                (
                    [0] =&gt; onCuePoint
                    [1] =&gt; Array
                        (
                            [name] =&gt; name1_end
                            [time] =&gt; 6.7
                            [type] =&gt; event
                        )
                )
        )
)</pre>
</li>
<li><code>rewriteMeta</code>, which inputs an FLV file, meta data and cue points, and outputs a new FLV file.</li>
</ul>
<p>As a practical example, you find the <code>rewriteTagsForFile</code> function in the <code>example.php</code> file, that rewrites the meta data and gets the cue points from a FLVCoreCuePoints XML file.</p>
<p><a title="FLVInfo2 class, reads and writes FLV meta data from a Flash Video File." href="http://www.tommylacroix.com/wp-content/uploads/2008/07/flvinfo2.phps" target="_blank"><span style="text-decoration: line-through;"><img style="border: 0pt none ;" src="http://www.tommylacroix.com/img/icons/script_code.gif" alt="PHP Source" width="16" height="16" /></span></a><span style="text-decoration: line-through;"> </span><a title="AMF0 Parser, reads and writes AMF0 encoded data" href="http://www.tommylacroix.com/wp-content/uploads/2008/07/flvinfo2.phps" target="_blank"><span style="text-decoration: line-through;">flvinfo2.php</span></a><span style="text-decoration: line-through;"> </span><em><span style="text-decoration: line-through;">(20k , updated Dec 20, 2008)</span></em></p>
<p><a title="FLVInfo2 class example" href="http://www.tommylacroix.com/wp-content/uploads/2008/07/amf0parser.phps" target="_blank"><span style="text-decoration: line-through;"><img style="border: 0pt none ;" src="http://www.tommylacroix.com/img/icons/script_code.gif" alt="PHP Source" width="16" height="16" /></span></a><span style="text-decoration: line-through;"> </span><a title="AMF0 Parser, reads and writes AMF0 encoded data" href="http://www.tommylacroix.com/wp-content/uploads/2008/07/amf0parser.phps" target="_blank"><span style="text-decoration: line-through;">AMF0Parser.php</span></a><span style="text-decoration: line-through;"> </span><em><span style="text-decoration: line-through;">(16k, updated Dec 20, 2008)</span></em></p>
<p><a title="FLVInfo2 class example" href="http://www.tommylacroix.com/wp-content/uploads/2008/07/example.phps" target="_blank"><span style="text-decoration: line-through;"><img style="border: 0pt none ;" src="http://www.tommylacroix.com/img/icons/script_code.gif" alt="PHP Source" width="16" height="16" /></span></a><span style="text-decoration: line-through;"> </span><a title="FLVInfo2 class example" href="http://www.tommylacroix.com/wp-content/uploads/2008/07/example.phps" target="_blank"><span style="text-decoration: line-through;">example.php</span></a><span style="text-decoration: line-through;"> </span><em><span style="text-decoration: line-through;">(12k)</span></em><a title="FLVInfo2 class example" href="http://www.tommylacroix.com/wp-content/uploads/2008/07/example.phps" target="_blank"><br />
</a></p>
<p><small>Flash Video logo found on <a title="Flash Video, at Wikipedia" href="http://en.wikipedia.org/wiki/Flash_Video">Wikipedia</a>.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommylacroix.com/2008/07/04/a-php-tool-to-modify-an-flv-meta-and-cuepoints-on-the-fly/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Dealing with Adobe Flash slow performance on old Mac and PCs</title>
		<link>http://www.tommylacroix.com/2008/02/28/slow-flash-on-mac/</link>
		<comments>http://www.tommylacroix.com/2008/02/28/slow-flash-on-mac/#comments</comments>
		<pubDate>Thu, 28 Feb 2008 17:05:44 +0000</pubDate>
		<dc:creator>tlacroix</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Web development]]></category>
		<category><![CDATA[detection]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[osx]]></category>
<category>detection</category><category>example</category><category>flash</category><category>javascript</category><category>mac</category>
		<guid isPermaLink="false">http://www.tommylacroix.com/2008/02/08/slow-flash-on-mac/</guid>
		<description><![CDATA[Recently, I faced the awkward Adobe Flash slowness on Mac and old PCs during the development of the web site of a client of mine.
After doing a little research and testing, I found out that some Mac are especially bad at alpha and scaling, among other things.
This post aims to centralize as much information as [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border: 1px solid black; float: right; margin-left: 5px; margin-bottom: 5px" src="http://www.tommylacroix.com/wp-content/uploads/2008/02/tortoise.jpg" alt="Turtle" />Recently, I faced the awkward Adobe Flash slowness on Mac and old PCs during the development of the web site of a client of mine.</p>
<p>After doing a little research and testing, I found out that some Mac are especially bad at alpha and scaling, among other things.</p>
<p>This post aims to centralize as much information as possible on the subject, because very little is available on the web and it&#8217;s unfortunately disparate. I&#8217;ll try to <strong>nail the facts</strong> and <strong>outline solutions</strong>.</p>
<p>Please add a comment or email me if you feel I&#8217;ve forgotten something or if you made a breakthrough discovery.</p>
<p><span id="more-13"></span></p>
<h2>Facts, or rumors?</h2>
<p>Unfortunately, there is not a lot of information about this. Bits and pieces floating around in forums, a few hints on Adobe&#8217;s web site, but nothing more.</p>
<p>Based on my experience, the especially slow things are:</p>
<ul>
<li>Alpha transparency
<ul>
<li>Redrawing portions of the screen with alpha transparency is significantly slower than without.</li>
<li>When doing alpha transparency, avoid medium-large MovieClips that are moving, or underneath, above or very close to moving objects, as they need to be redrawn often.</li>
</ul>
</li>
<li>Redrawing large portion of the screen
<ul>
<li>Clipping mask don&#8217;t reduce the redraw region. If you have a 1000 x 1000 clip masked on 100 x 100, the hidden region is still redrawn if something changes in it.</li>
</ul>
<ul>
<li>Scaling increases the actual size of the redraw region.</li>
<li>Solutions: <a title="Disabling scaling" href="http://www.tommylacroix.com/wp-admin/post.php#noScale">disabling scaling</a> when dealing with slow computers.</li>
</ul>
</li>
<li>Vector graphics
<ul>
<li>High quality complex vector graphics usually requires more CPU processing than bitmaps.</li>
<li>Solutions: <a title="Cache MovieClips as bitmap" href="http://www.tommylacroix.com/wp-admin/post.php#cacheAsBitmap">cache vector graphic as bitmap</a>, and <a title="Reducing MovieClip quality" href="http://www.tommylacroix.com/wp-admin/post.php#movieclipQuality">reduce quality</a> when dealing with slow computers.</li>
</ul>
</li>
</ul>
<p>Here&#8217;s more. I discovered that:</p>
<ul>
<li>Flash 8 and above uses OpenGL on Safari to speed up scaling and alpha rendering<sup> 1</sup></li>
<li>G3 and old G4&#8217;s with ATI cards can&#8217;t use OpenGL because the card isn&#8217;t compatible and doesn&#8217;t support the necessary features <sup>1</sup></li>
<li>Single or dual G4 apparently doesn&#8217;t change a thing (forum talk<sup>2</sup>, and personal benchmark with the problematic site)</li>
<li>Newer G4&#8217;s with NVidia cards, G5 and Core Duo Macs will use OpenGL on Safari and will run just fine.</li>
<li>A dual G4 1Ghz with 2 GB of RAM and an ATI card runs slower than a single P-III 866Mhz with 512 MB or RAM (personal benchmark with the problematic site)</li>
</ul>
<p><sup>1</sup> Based on <a title="Flash Player 8 on the Mac, on Kaourantin" href="http://www.kaourantin.net/2005/07/why-does-flash-player-8-on-mac-perform.html" target="_blank">Tinic Uro&#8217;s post on Kaourantin</a>.<a title="Flash Player 8 on the Mac, on Kaourantin" href="http://www.kaourantin.net/2005/07/why-does-flash-player-8-on-mac-perform.html" target="_blank"><br />
</a><sup>2</sup> Based on forum post at <a title="Flash not making use of dual processor" href="http://www.kirupa.com/forum/archive/index.php/t-189079.html" target="_blank">Kirupa</a>.</p>
<p><a title="Flash Player 8 on the Mac, on Kaourantin" href="http://www.kaourantin.net/2005/07/why-does-flash-player-8-on-mac-perform.html" target="_blank"></a></p>
<h2>Solutions: the two approaches</h2>
<p>Now, many of my clients want their web site to be usable by technology laggards. So the simplest solution would be to use the <strong>lowest common denominator</strong>. However, Flash sites designed for G3&#8217;s can&#8217;t be much interactive and carry multimedia content, unless they do in very small portions of the screen, and never simultaneously.</p>
<p>Then the idea of creating an <strong>adaptive solution</strong> came to my mind. What if the site would be optimized for recent computers (newer G4&#8217;s for instance, so we&#8217;re talking 5 years of age), and would detect slow turtles and reduce rendering quality in real-time?<br />
<a title="turtleDetector" name="turtleDetector"></a></p>
<h3>Slow computers detection</h3>
<p>Unfortunately, to be adaptive, we need to detect the turtles, and detecting isn&#8217;t necessarily easy.Browser detection is unsafe. We can probably say that a Mac that runs Safari 1.3 is fairly old. But Safari 2 and 3 can run on slow computers as well.</p>
<p>If you&#8217;re playing a video, you can check the current FPS to see if it&#8217;s really low (from my tests, playing at or below 8 FPS should be considered slow, as the sound stream usually starts to skip).</p>
<p>If you&#8217;re not playing a video however, I suggest you use the following trick: use an onEnterFrame event to calculate that actual FPS. Then compare it to the expected FPS, and see it&#8217;s too slow or acceptable. That&#8217;s what my AS2 turtleDetector class does.</p>
<p><img src="http://www.tommylacroix.com/wp-content/uploads/2008/02/flash_icon.gif" alt="Adobe Flash" /> <a title="turtleDetector AS2 class" href="http://www.tommylacroix.com/wp-content/uploads/2008/02/turtledetector.zip">turtleDetector.zip</a> (19 KB)</p>
<h3>Disabling alpha on the fly</h3>
<p>If your Flash application is running on a turtle, you want to disable Alpha transparency as much as possible, especially on parts that are rendered often. That includes moving objects with Alpha transparency, and fixed objects underneath or above moving objects. I haven&#8217;t come up with a fully automatic solution yet, unfortunately.</p>
<p><a title="#scaleMode" name="#scaleMode"></a></p>
<h3>Disabling scaling on the fly</h3>
<p>It&#8217;s pretty simple to disable scaling in ActionScript. However, there is unfortunately no option to achieve both vertical and horizontal centering.</p>
<pre class="code">Stage.scaleMode = "noScale";Stage.align = "T";</pre>
<p>See <a title="Adobe LiveDocs on Stage" href="http://livedocs.adobe.com/flash/8/main/wwhelp/wwhimpl/js/html/wwhelp.htm?href=Part4_ASLR2.html" target="_blank">Adobe LiveDocs</a> for further details.</p>
<p>For both vertical and horizontal centering, you will have to use JavaScript to resize the container (or reload the page with a resized container if there&#8217;s no JavaScript available).</p>
<p><a title="movieclipQuality" name="movieclipQuality"></a></p>
<h3>Reducing movie quality on the fly</h3>
<p>This can be done on the entire movie with the <em>_quality</em> global property:</p>
<pre class="code">_quality = "LOW";</pre>
<p>&#8230; or on a specific MovieClip with the _<em>quality</em> public property:</p>
<pre class="code">mc._quality = "LOW";</pre>
<p>See Adobe&#8217;s LiveDocs on <a title="Adobe LiveDocs on _quality global property." href="http://livedocs.adobe.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&amp;file=00001791.html" target="_blank">global _quality</a> and <a title="Adobe LiveDoc on MovieClip._quality property." href="http://livedocs.adobe.com/flash/8/main/00002509.html" target="_blank">MovieClip._quality</a> for further details.<br />
<a title="cacheAsBitmap" name="cacheAsBitmap"></a></p>
<h3>Caching vector graphic as bitmap</h3>
<p>Caching complex vector as bitmap can speed things up in many cases.</p>
<pre class="code">mc.cacheAsBitmap = true;</pre>
<p>Caching as bitmap is a double bladed knife: it requires more memory, and can be slower if your vector graphic has to be redrawn often. You will need to do some profiling.</p>
<p>See <a title="Adobe LiveDoc on MovieClip.cacheAsBitmap property." href="http://livedocs.adobe.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&amp;file=00002445.html">Adobe&#8217;s LiveDocs</a> for further details.</p>
<h2>Conclusion</h2>
<p>It is indeed possible to detect the slow Mac and PCs and offer them an accessible site with less rendering quality. Shall you have more tips and tricks, I can only encourage you to share them here.</p>
<h2>Further reading</h2>
<ul>
<li><a title="Why does Flash Player 8 on Mac perform so much better? on Kaourantin" href="http://www.kaourantin.net/2005/07/why-does-flash-player-8-on-mac-perform.html" target="_blank">Why does Flash Player 8 on Mac perform so much better? on Kaourantin</a></li>
<li><a title="Flash Player Performance on OS X : Looking for Examples, on Mike Chambers blog" href="http://www.mikechambers.com/blog/2003/01/28/flash-player-performance-on-os-x-looking-for-examples/" target="_blank">Flash Player Performance on OS X : Looking for Examples, on Mike Chambers Blog </a></li>
</ul>
<p><small> Turtle photograph by <a title="Axonite at SXC.hu" href="http://www.sxc.hu/profile/Axonite">Axonite</a>.<br />
</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommylacroix.com/2008/02/28/slow-flash-on-mac/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
