<?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>Deacon&#039;s Blog&#187; Flash Friday Archives  | Deacon&#039;s Blog</title>
	<atom:link href="http://ducharme.cc/category/flash-friday/feed/" rel="self" type="application/rss+xml" />
	<link>http://ducharme.cc</link>
	<description>by Daryl Joseph Ducharme</description>
	<lastBuildDate>Fri, 20 Aug 2010 10:00:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Caution: Example Code Ahead</title>
		<link>http://ducharme.cc/caution-code/</link>
		<comments>http://ducharme.cc/caution-code/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 10:00:41 +0000</pubDate>
		<dc:creator>Deacon</dc:creator>
				<category><![CDATA[Flash Friday]]></category>

		<guid isPermaLink="false">http://ducharme.cc/?p=454</guid>
		<description><![CDATA[Today&#8217;s post veers from anything flash specific and goes to the more generic area of example code.  For everything you want learn about in the world of programming there is some example code.  Example code is a great way to see what book authors and blog posters are trying to explain in their posts. I&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<p>Today&#8217;s post veers from anything flash specific and goes to the more generic area of example code.  For everything you want learn about in the world of programming there is some example code.  Example code is a great way to see what book authors and blog posters are trying to explain in their posts. I&#8217;m a better programmer than a writer so I know how difficult it is to explain some of these concepts without showing code. However, example code has some issues that it is important to be aware of when you use it.</p>
<h2>Comments aren&#8217;t part of the example</h2>
<p>Unless you are reading a book about writitng good code ( I recommend <a href="http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1281897409&amp;sr=8-1" target="_blank">Code Complete by Steve McConnell</a> ) the comments in the code are not there to show you good commenting practice. I could rant on and on how code should be self documenting and be able to be read like a good book but my main complaint with comments in most example code is stuff like this:</p>
<pre>// define variable a as an integer and set it to 5
var a:int = 5</pre>
<p>Now when you are learning about defining and setting variables this comment is important and that is why this comment is in example code. Unfortunately, I see this all too often in code I&#8217;ve had to debug. Code that is straight forward doesn&#8217;t need to be commented. In case you don&#8217;t know, comments like that in real world code scream amateur and/or I just copied this from the internet somewhere. Moving forward, you might want to make your code as straight forward as possible so you don&#8217;t need to comment it.</p>
<h2>Best Practices are rarely in example code</h2>
<p>Recently I was reading a book on AJAX programming that was trying to show how to use a simple service written in PHP.  To do this they had two input fields in a form where you entered numbers.  The javascript would then send the values of those two fields to a simple PHP webservice that divided the numbers then returned the results. After that the results were parsed to show the answer on the screen.  For the purpose of the book, which was to show how you could use a webservice without being overloaded with other code, this is okay.  In real life, you should just divide the numbers using javascript and leave the webservice out of it.</p>
<p>Also, if you read books and blog posts word for word the authors know that what they are doing isn&#8217;t meant for prime time so they will leave a caution warning ( possibly with a cartoony icon ) letting you know this. Please heed their advice if it is there, but since it usually isn&#8217;t just realize that example code probably isn&#8217;t the best way to handle the problem domain it seems to be solving.</p>
<h2>My oh my!</h2>
<p>This next section is about a pet peeve of mine, the use of the word &#8220;my&#8221; in example method and variable names.  For instance, I sometimes run across code like the following:</p>
<pre>var myName:String
function myClickHandler( event:Event ):void{
...
}</pre>
<p>Unlike the previous examples, I don&#8217;t think the reasoning behind this convention in example code is strong enough to even use it there. The reason I don&#8217;t like this convention is the readability of code that has to use it .  Using the <code>myName</code> variable as an example, which code appears cleaner and easier to read?</p>
<pre>if( employee.myName == 'Jeff' )</pre>
<p>or</p>
<pre>if( employee.name == 'Jeff' )</pre>
<p>I think you&#8217;ll agree that the second example, without the redundant prefix is cleaner and easier to read.</p>
<h2>The code doesn&#8217;t always work</h2>
<p>Anyone who has ever tried to copy or [GASP!] cuts and pastes example code has probably figured out that there is a high probability that it won&#8217;t work.  There are several possibilities for this from editors who think they know better to code that was only written in a text editor but not tested or even an errant copy and post from the author&#8217;s IDE that forgot a semi-colon.</p>
<p>This isn&#8217;t a problem in the way that the previous items are a problem with example code. Though it would probably be better if it didn&#8217;t occur, its better just to know that your chances of perfectly working code are 50/50. In fact, non-working example code can be a good thing to debug. Especially when you consider a majority of your programming career ( or hobby for that matter ) will probably be taken up with debugging code that you swear should work.</p>
<h2>What else?</h2>
<p>While the heading for this section might make you think I&#8217;m going to discuss the overuse of if-else statements I&#8217;m really asking for your opinions on example code.  Am I off base?  Do you have your own issues with example code? Perhaps you want to discuss the overuse of if-else statements in example code or maybe you&#8217;d like to see more of them.  Please, comment below and let me know.</p>
<p><br /><a href="http://www.qksrv.net/click-3730281-10570520?sid=ducharmeCC" target="_top">
<img src="http://www.qksrv.net/image-3730281-10570520" width="460" height="60" alt="Adobe Flex Builder" border="0"/></a><br /><br />
If you liked this post please subscribe to my <a href="http://ducharme.cc/feed">RSS feed</a> and/or <a title="My twitter page" href="http://twitter.com/diacre" target="_blank">follow me on Twitter</a>. If you only want to see my <a href="http://ducharme.cc/category/flash-friday/" target="_blank">Flash Friday posts</a> you can follow the subscribe to the <a href="http://ducharme.cc/category/flash-friday/feed">Flash Friday feed</a>. How&#8217;s that for alliteration <img src='http://ducharme.cc/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Until next time keep on coding.</p>
<p><map name='google_ad_map_454_4d908d47eedd0248'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/454?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_454_4d908d47eedd0248' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=454&amp;url= http%3A%2F%2Fducharme.cc%2Fcaution-code%2F' /></p>]]></content:encoded>
			<wfw:commentRss>http://ducharme.cc/caution-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Transitions and the Transition Manager</title>
		<link>http://ducharme.cc/transitions-transition-manager/</link>
		<comments>http://ducharme.cc/transitions-transition-manager/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 05:43:36 +0000</pubDate>
		<dc:creator>Deacon</dc:creator>
				<category><![CDATA[Flash Friday]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[transitions]]></category>

		<guid isPermaLink="false">http://ducharme.cc/?p=364</guid>
		<description><![CDATA[With Flash CS4 ( and CS3 for that matter ) comes a great utility for simple visual effects, the Transition Manager and accompanying transitions. With this tool you can use some common transitions without much complex coding on your side. The following is a list of the available transitions. Blinds Fade Fly Iris Photo PixelDissolve [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="Wipe Effect" src="http://t0.gstatic.com/images?q=tbn:V-9EDTLUkzizDM%3Ahttp://flash-effects.com/wp-content/uploads/2009/02/wipe-transition-swf-image.jpg" alt="" width="127" height="92" />With Flash CS4 ( and CS3 for that matter ) comes a great utility for simple visual effects, the <a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/index.html" target="_blank">Transition Manager</a> and accompanying <a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/index.html">transitions</a>. With this tool you can use some common transitions without much complex coding on your side. The following is a list of the available transitions.</p>
<ul>
<li><a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/fl/transitions/Blinds.html">Blinds</a></li>
<li><a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/fl/transitions/Fade.html">Fade</a></li>
<li><a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/fl/transitions/Fly.html">Fly</a></li>
<li><a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/fl/transitions/Iris.html">Iris</a></li>
<li><a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/fl/transitions/Photo.html">Photo</a></li>
<li><a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/fl/transitions/PixelDissolve.html">PixelDissolve</a></li>
<li><a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/fl/transitions/Rotate.html">Rotate</a></li>
<li><a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/fl/transitions/Squeeze.html">Squeeze</a></li>
<li><a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/fl/transitions/Wipe.html">Wipe</a></li>
<li><a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/fl/transitions/Zoom.html">Zoom</a></li>
</ul>
<div>Transitions can be used by themselves or mixed together for an even more professional look. And all this is very easy because of the power and simplicity of the Transition Manager class. Using the class is very simple. The following code performs a simple fade in on an imaginary MovieClip instance named myClip.</div>
<pre>import fl.transitions.*;
var transitionMgr:TransitionManager = new TransitionManager( myClip );
var params:Object = new Object();
params.type = Fade;
params.direction = Transition.IN;
var transition:Transition = transitionMgr.startTransition( params );</pre>
<div>The above code could also be done with the static start() method, like so:</div>
<pre>import fl.transitions.*;
var params:Object = new Object();
params.type = Fade;
params.direction = Transition.IN;
var transition:Transition = TransitionManager.start( myClip, params );</pre>
<div>Using the static start() method is a bit cleaner. However, if you need to do multiple transitions to the same movieclip the first method is best.</div>
<p><br/><script type="text/javascript"><!--
google_ad_client = "pub-6047221647343234";
/* 468x60, created 11/18/09 */
google_ad_slot = "7210119755";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br/></p>
<h2><span>Using Parameters</span></h2>
<p><span>The two transition methods both take a parameters object, but you might be wondering what goes in the object. That depends on a few things and here are some options.</span></p>
<ol>
<li><span>The type is required &#8211; enter one of the 10 above.</span></li>
<li><span>Other common properties for all transitions include</span>
<ol>
<li><span>direction &#8211; choices are Transition.IN and Transition.OUT ( default is Transition.IN )</span></li>
<li><span>duration &#8211; this is measured in seconds</span></li>
<li><span>easing &#8211; This is a function. I believe the default is None.none;</span></li>
</ol>
</li>
<li><span>You can add parameters specific to the fade type you are using( i.e. numStrips for a Blinds transition )</span></li>
</ol>
<h2>When does it end?</h2>
<p>When looking at the documentation for the Transition and Transition Manager classes, there appears to be a problem. If you want to do something when the transition(s) are done there doesn&#8217;t appear to be any events that tell you when this occurs. The truth is there are events that get fired, the documentation is just lacking. The events that get fired are of type flash.event.Event and there are no constants to give you any auto completion help.</p>
<p>For the transitions the following events may be fired:</p>
<ul>
<li>&#8220;transitionInDone&#8221;</li>
<li>&#8220;transitionOutDone&#8221;</li>
<li>&#8220;transitionProgress&#8221;</li>
</ul>
<p>The TransitionManager fires the following 2 events</p>
<ul>
<li>&#8220;allTransitionsInDone&#8221;</li>
<li>&#8220;allTransitionsOutDone&#8221;</li>
</ul>
<h2>Example</h2>
<p>With all the above in mind I thought I would show each of the different transitions and the events that fire. Each transition uses all of its defaults, but you do get to choose the direction so you can see the different complete events <img src='http://ducharme.cc/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://ducharme.cc/wp-content/uploads/2010/01/transition.swf" /><embed type="application/x-shockwave-flash" width="550" height="400" src="http://ducharme.cc/wp-content/uploads/2010/01/transition.swf"></embed></object></p>
<h2>One Last Thing</h2>
<p>The Transition classes unfortunately are only coded to work with MovieClip instances. For many people who don&#8217;t code in MovieClips you may have to find a different solution but for most users of Flash CS4+ this shouldn&#8217;t be a problem.<br />
<br /><a href="http://www.anrdoezrs.net/click-3730281-10685985?sid=ducharmeCC" target="_top">
<img src="http://www.anrdoezrs.net/image-3730281-10685985" width="468" height="60" alt="Adobe" border="0"/></a><br /><br />
If you liked this post please subscribe to my <a href="http://ducharme.cc/feed">RSS feed</a> and/or <a title="My twitter page" href="http://twitter.com/diacre" target="_blank">follow me on Twitter</a>. If you only want to see my <a href="http://ducharme.cc/category/flash-friday/" target="_blank">Flash Friday posts</a> you can follow the subscribe to the <a href="http://ducharme.cc/category/flash-friday/feed">Flash Friday feed</a>. How&#8217;s that for alliteration <img src='http://ducharme.cc/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Until next time keep on coding.</p>
<p><map name='google_ad_map_364_4d908d47eedd0248'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/364?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_364_4d908d47eedd0248' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=364&amp;url= http%3A%2F%2Fducharme.cc%2Ftransitions-transition-manager%2F' /></p>]]></content:encoded>
			<wfw:commentRss>http://ducharme.cc/transitions-transition-manager/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Year Ahead For Flash</title>
		<link>http://ducharme.cc/year-flash/</link>
		<comments>http://ducharme.cc/year-flash/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 10:00:26 +0000</pubDate>
		<dc:creator>Deacon</dc:creator>
				<category><![CDATA[Flash Friday]]></category>

		<guid isPermaLink="false">http://ducharme.cc/?p=340</guid>
		<description><![CDATA[What's new for flash in 2010? There is lots in the pipeline. Let's take a look at some of the highlights.]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="Flash Mobile" src="http://t3.gstatic.com/images?q=tbn:ZcQnqCj8cXMa4M%3Ahttp://androidcommunity.com/wp-content/uploads/2008/11/g1-flash.jpg" alt="" width="99" height="118" />2010 is looking to be an exciting year in the world of Flash. For the first Flash Friday post of the New Year I thought I would go over some of the big new things I am looking forward to in 2010.</p>
<h2><a href="http://labs.adobe.com/technologies/flashplayer10/" target="_blank">Flash Player 10.1</a></h2>
<p>Flash truly goes mobile this year and this is made possible by many of the changes in flash player 10.1. Many performance optimizations have been made to the player to allow better performance and this will help out, not only mobile, but all forms of the flash player. Mobile devices also require new interface methodologies and thus flash player 10.1 will be able to handle multitouch events and gestures. This is huge in mobile but will also be making a difference on the desktop with another thing I am looking forward to AIR 2.0.</p>
<h2><a href="http://labs.adobe.com/technologies/air2/" target="_blank">AIR 2.0</a></h2>
<p>Flash Player 10.1 is at the heart of the newest version of the AIR runtime. Along with some of the other benefits of Flash Player 10.1 such as gesture events there are some AIR only improvements. As a former audio professional the access to the Microphone sound is exciting. Other stuff I&#8217;m looking forward to are global error handling, detection of USB devices, more sockets and file promises.</p>
<h2><a href="http://labs.adobe.com/technologies/flashbuilder4/" target="_blank">Flash Builder 4</a></h2>
<p>Flex builder is being rebranded as Flash Builder and there are lots of changes. I&#8217;ve been a fan of Degrafa for a while so the new graphic changes are something I&#8217;m looking forward to. The new spark architecture will take some getting used to but the design flexibility will be nice.  Though I&#8217;ve got <a href="http://www.amazon.com/Using-FlexBuilder-Flash-Development-ebook/dp/B002D4924G/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1262833120&amp;sr=8-1" target="_blank">an e-article available on Amazon</a> that will be mostly worthless, the better integration between Flash Builder and Flash CS5 will make my life much easier.</p>
<h2><a href="http://labs.adobe.com/technologies/flashcs5/" target="_blank">Flash CS5</a></h2>
<p>The big thing with this new version of Flash CS5 is IPhone application development. Unfortunately, at this time it looks like that&#8217;s the closest that the I-platform is coming to having flash in 2010 unless something major changes. Everyone else having flash in the mobile market may be the  catalyst that makes this happen. Speaking of a catalyst&#8230;</p>
<h2><a href="http://labs.adobe.com/technologies/flashcatalyst/" target="_blank">Flash Catalyst</a></h2>
<p>I&#8217;ve been looking forward to this for a long time. Better integration between a design tools and Flash Builder. I&#8217;ve loved using Flex Builder since Flex 2 and Flash Catalyst will ( hopefully ) make a dramatic change in our office workflow. Also, this could be a boon for user experience architecting if all is done correct.</p>
<p>So what else is coming? What are you looking forward to? I&#8217;ve only touched on what Adobe has announced here but maybe you&#8217;ve heard a rumor.<br />
<br /><NOSCRIPT>
	<a href='http://www.jdoqocy.com/click-3730281-10588967'>
		<img alt='' border='0' height='60' src='http://www.ftjcfx.com/image-3730281-10588967' width='468'>
		</img>
	</a>
</NOSCRIPT>
<SCRIPT src='http://www.lduhtrp.net/javascript/get_flash_html.js' type='text/javascript'>
</SCRIPT>
<SCRIPT type='text/javascript'>
 getFlashHtml('Adobe CS4 Tools - 468x60', 468, 60, 'http://www.lduhtrp.net/flash-3730281-10588967?clickTag=http://www.jdoqocy.com/click-3730281-10588967', '', 'http://www.ftjcfx.com/image-3730281-10588967', 'http://www.jdoqocy.com/click-3730281-10588967')
</SCRIPT>
				    <br /><br />
If you liked this post please subscribe to my <a href="http://ducharme.cc/feed">RSS feed</a> and/or <a title="My twitter page" href="http://twitter.com/diacre" target="_blank">follow me on Twitter</a>. If you only want to see my <a href="http://ducharme.cc/category/flash-friday/" target="_blank">Flash Friday posts</a> you can follow the subscribe to the <a href="http://ducharme.cc/category/flash-friday/feed">Flash Friday feed</a>. How&#8217;s that for alliteration <img src='http://ducharme.cc/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Until next time keep on coding.</p>
<p><map name='google_ad_map_340_4d908d47eedd0248'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/340?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_340_4d908d47eedd0248' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=340&amp;url= http%3A%2F%2Fducharme.cc%2Fyear-flash%2F' /></p>]]></content:encoded>
			<wfw:commentRss>http://ducharme.cc/year-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wmode:gpu not a magic bullet</title>
		<link>http://ducharme.cc/wmode-gpu-not-magic-bullet/</link>
		<comments>http://ducharme.cc/wmode-gpu-not-magic-bullet/#comments</comments>
		<pubDate>Fri, 25 Dec 2009 10:00:14 +0000</pubDate>
		<dc:creator>Deacon</dc:creator>
				<category><![CDATA[Flash Friday]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[flash player]]></category>

		<guid isPermaLink="false">http://ducharme.cc/?p=328</guid>
		<description><![CDATA[At my current work, Provis Media Group, we do a lot of video for the web. We&#8217;ve had a lot of success with larger format video than is usually delivered via the internet. When Flash Player™ 9.0.115 came out allowing fullscreen h.264 video delivery things really took off. Quality went way up and we were [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="Flash Player" src="http://t1.gstatic.com/images?q=tbn:y7Zh9ssPGeh5pM:http://www.photoshopfiles.com/photoshop_files/689/preview.png" alt="" width="130" height="130" />At my current work, <a href="http://provismedia.com" target="_blank">Provis Media Group</a>, we do a lot of video for the web. We&#8217;ve had a lot of success with larger format video than is usually delivered via the internet. When Flash Player™ 9.0.115 came out allowing fullscreen h.264 video delivery things really took off. Quality went way up and we were able to deliver 720p+ content over the internet. In full screen it looked great. However, when we shrunk a video smaller than its true size some artifacting would occur. Really, it wasn&#8217;t that terrible but we pride ourselves on the quality of video we deliver, especially since most of it is done in house.</p>
<p>When flash player 10 came out we noticed 2 new wmodes, direct and gpu. Both were suppose to affect drawing performance on the screen and we thought gpu mode should improve the quality of our videos. In order to be sure we had to test it and compare it to the default mode that we almost always use.</p>
<p>Test after test proved that there really wasn&#8217;t any noticeable difference. In fact, wmode=gpu didn&#8217;t provide any noticeable playback difference but it did affect the player.<br />
<br /><NOSCRIPT>
	<a href='http://www.jdoqocy.com/click-3730281-10588967'>
		<img alt='' border='0' height='60' src='http://www.ftjcfx.com/image-3730281-10588967' width='468'>
		</img>
	</a>
</NOSCRIPT>
<SCRIPT src='http://www.lduhtrp.net/javascript/get_flash_html.js' type='text/javascript'>
</SCRIPT>
<SCRIPT type='text/javascript'>
 getFlashHtml('Adobe CS4 Tools - 468x60', 468, 60, 'http://www.lduhtrp.net/flash-3730281-10588967?clickTag=http://www.jdoqocy.com/click-3730281-10588967', '', 'http://www.ftjcfx.com/image-3730281-10588967', 'http://www.jdoqocy.com/click-3730281-10588967')
</SCRIPT>
				    <br /><br />
The more we read, the more it sounded like wmode=gpu really wouldn&#8217;t do much for most people until Flash Player™ 10.1 ( currently in beta 2 version on <a href="http://labs.adobe.com" target="_blank">Adobe labs</a> ). Installing Flash Player 10.1 did improve performance on the CPU ( which is awesome ) but their still wasn&#8217;t a difference from the default.</p>
<p>In the end the best thing to do with our video was to turn smoothing on. This actually made a dramatic improvement. In Flash Player 10.1 you get enough of a performance increase to make this work on even slower computers than before.</p>
<p>So wmode=gpu still may not be a magic bullet unless you control the playback platform but turning on smoothing gives you good performance if you are having artifacting when your videos get resized. You still need to be concerned about cpu performance ( for now ) but flash player 10.1 will really improve that.</p>
<p>If you have had different results or even the same, I&#8217;d love to hear your experiences. If you celebrate Christmas today then Merry Christmas and to everyone Seasons&#8217; Greetings and Happy Holidays.</p>
<p><map name='google_ad_map_328_4d908d47eedd0248'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/328?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_328_4d908d47eedd0248' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=328&amp;url= http%3A%2F%2Fducharme.cc%2Fwmode-gpu-not-magic-bullet%2F' /></p>]]></content:encoded>
			<wfw:commentRss>http://ducharme.cc/wmode-gpu-not-magic-bullet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Decreasing load times with RSLs</title>
		<link>http://ducharme.cc/decreasing-load-time-rsls/</link>
		<comments>http://ducharme.cc/decreasing-load-time-rsls/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 10:00:04 +0000</pubDate>
		<dc:creator>Deacon</dc:creator>
				<category><![CDATA[Flash Friday]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[runtime shared libraries]]></category>

		<guid isPermaLink="false">http://ducharme.cc/?p=293</guid>
		<description><![CDATA[Recently, Adobe released version 3.5 of the Flex SDK. I updated a project I was currently working on from 3.3 to 3.5 and I had to reset up my runtime shared library (RSL) for the project. This got me thinking that many people don't know how to properly use RSLs. The world of flex development is better if we all use the the SDK RSLs so that is the topic of today's post]]></description>
			<content:encoded><![CDATA[<p><br /><NOSCRIPT>
	<a href='http://www.dpbolvw.net/click-3730281-10591347'>
		<img alt='' border='0' height='60' src='http://www.lduhtrp.net/image-3730281-10591347' width='468'>
		</img>
	</a>
</NOSCRIPT>
<SCRIPT src='http://www.awltovhc.com/javascript/get_flash_html.js' type='text/javascript'>
</SCRIPT>
<SCRIPT type='text/javascript'>
 getFlashHtml('US - 468x60 - CS4 Design Premium (Flash)', 468, 60, 'http://www.tqlkg.com/flash-3730281-10591347?clickTag=http://www.dpbolvw.net/click-3730281-10591347', '', 'http://www.lduhtrp.net/image-3730281-10591347', 'http://www.dpbolvw.net/click-3730281-10591347')
</SCRIPT>
				    <br />Every Flex application that you create uses the same class files. Some of these are your class files, some are other libraries you have included and then of course you have the files that make up the Flex framework itself. One of the constant complaints I hear about Flex apps ( and flash in general ) is that it takes too long to load. One reason for the long load times is that every Flex application needs to be sure it has all the classes it needs, so all the necessary classes get compiled into the SWF. So, even if the same classes are used in most of the applications you create you are reloading that data again with every new application that gets loaded.</p>
<p>Not only is this reloading of data bad for your application but much of what gets reloaded is the Flex framework itself. The fact that it gets reloaded with every Flex application out there means it is adding to bandwidth use on the internet and thus bad for the image of Flex and Flash. Before you give up and start exclusively building AJAX applications, I&#8217;d like to introduce you to runtime shared libraries (RSLs).</p>
<p>RSLs were introduced in Flex to allow common libraries to be extracted from Flex application SWF files and put into their own files. That way the Flex apps that use classes from the library(ies) would be smaller and the classes would only need to be loaded once for all the SWF files that need them. Originally there were only two types of RSLs, signed and unsigned. Basically this is still the case but unsigned RSLs are now split into standard and cross-domain varieties while signed RSLs are now referred to as Framework RSLs.</p>
<p>The great thing about the signed, Framework RSLs ( and to a lesser extent cross-domain RSLs if the location used is the same ) is that once someone has loaded the RSL of that Flex SDK on their system, they shouldn&#8217;t have to reload it for any other app that requires that RSL. In other words, if someone has used another app that required the same Flex SDK (3.2, 3.3, 3.5, etc ) RSL as your app requires then your application will benefit with faster load times ( and vice versa ).</p>
<p>For today&#8217;s post we are going to focus only on using RSLs. I will save the lesson on creating them for another post if there is interest. Because of this fact I will explain how to use the framework RSLs specifically, but the same technique can be used with standard and cross-domain RSLs.</p>
<p>Using the framework RSLs is actually quite easy. It is even easy enough to take existing live apps and set them up to use RSLs in an effort to decrease load. I made one of my clients, extremely happy by doing this one little task.</p>
<p>In the Flex Build Path screen of project properties window select the Library Path tab ( you can also do this when initially setting up a project ). At the top of you should see a ComboBox labeled Frame<span style="text-decoration: underline;">w</span>ork Linkage: and you are given the choice of <em>Merged into code</em> (the default) or <em>Runtime shared library (RSL)</em>. Select <em>Runtime shared library (RSL)</em>. If you are going to have your RSL files in the same directory as your SWF, then that is all you need to do, as your RSL files will be in your bin-debug/bin-release folder along with your application SWF. For the Flex 3.5 SDK these are framework_3.5.0.12683.swz and framework_3.5.0.12683.swf. The SWF is just a backup for the SWZ.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-300" title="Framework Linkage setup in Flexbuilder" src="http://ducharme.cc/wp-content/uploads/2009/12/RSLbuildPath.jpg" alt="RSLbuildPath" width="660" height="408" /></p>
<p><br/><script type="text/javascript"><!--
google_ad_client = "pub-6047221647343234";
/* 468x60, created 11/18/09 */
google_ad_slot = "7210119755";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br/><br />
If, however, you want to put your RSL into a different location on your server, or on a different server altogether, you&#8217;ll need to take a couple extra steps to let your application know where to look. The framework RSL files will still show up in your bin-debug and bin-release folders next to your application SWF but it will look for them in a different location. To make these changes you&#8217;ll need to go to the tree view labeled <em><span style="text-decoration: underline;">B</span>uild path libraries:</em> and open the node for your flex SDK ( in my picture it says Flex 3.5 ) and then open the node that says framework.swc. Select the node that says <em>RSL URL:</em> and click the <em>Edit&#8230;</em> button on the right that probably just became enabled. The only thing you want to edit here are the deployment paths.</p>
<p><img class="alignleft size-full wp-image-301" title="Deployment Path Editor in Flex Builder" src="http://ducharme.cc/wp-content/uploads/2009/12/RSLdeploymentPath.jpg" alt="Deployment Path Editor" width="286" height="129" />When editing the deployment paths for <strong><em>BOTH</em></strong><span style="font-weight: normal;"> the SWZ and SWF files, you have the ability to edit 3 things:</span>
<ul>
<li>An input field labeled &#8211; <em>Deployment <span style="text-decoration: underline;">P</span>ath/URL:</em></li>
<li>A checkbox labeled &#8211; <em><span style="text-decoration: underline;">C</span>opy library to deployment path</em></li>
<li>Another input field labeled &#8211; <em>Policy <span style="text-decoration: underline;">f</span>ile URL:</em></li>
</ul>
<p>The deployment path input field is the path to your SWZ or SWF file. Relative paths are acceptable and I recommend using them. The copy library checkbox is used to tell Flex Builder whether or not to include the SWZ or SWC file in your bin-debug/bin-release folders. I like to uncheck this once I already have a copy of the SWZ and SWC available somewhere else because I&#8217;m not a big fan of having multiple copies of the exact same file on my computer. The policy file field is used for RSLs served from different domains. It is the path to the appropriate cross-domain policy file. As such it needs to be an absolute path. Cross-domain policy files are out of the scope of this document but more info can be found at: <a href="http://livedocs.adobe.com/flex/3/html/security2_04.html#139879" target="_blank">http://livedocs.adobe.com/flex/3/html/security2_04.html#139879</a>.</p>
<p>Now that you have set up your project just upload the RSL file(s) to the appropriate location and everything should be ready to go. You probably noticed quite a difference in file size and on subsequent loads should see an improvement in loading time. However there is one problem that is common with RSLs.</p>
<div id="attachment_299" class="wp-caption aligncenter" style="width: 484px"><img class="size-full wp-image-299" title="RSLerror" src="http://ducharme.cc/wp-content/uploads/2009/12/RSLerror.jpg" alt="The dreaded RSL error" width="474" height="310" /><p class="wp-caption-text">The dreaded RSL error</p></div>
<p>Usually you will get an RSL error if the RSL files aren&#8217;t where your application SWF is expecting them to be. An easy enough problem to fix. The problem arises in that you won&#8217;t  be able to recreate this error if you already have the files in your cache. Another hiccup is that, while standard and cross-domain RSLs are stored in your browser cache, signed framework RSLs are stored in the much lesser known flash cache. The flash cache is the location shared objects are stored in. It can be managed via the <a href="http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager.html" target="_blank">Adobe Flash Player™ Settings Manager&#8217;s</a> Global Storage Settings tab ( available at: <a href="http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager03.html">http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager03.html</a> ). Just uncheck the <em>store common Flash components to reduce download times</em> checkbox while testing to make sure you load the framework RSL every time instead of pulling them from your cache.</p>
<p>I highly recommend using the runtime shared library for the Flex framework on all your Flex projects. This will speed up the load time of all Flex applications online that are set up to use them and that is good for all of us. The other reason is that there are some <a href="http://livedocs.adobe.com/flex/3/html/rsl_06.html#227385" target="_blank">drawbacks to using RSLs</a> and the framework RSLs don&#8217;t really suffer from any of them. In fact from the looks of beta 1 and beta 2 of Flash Builder 4, the framework runtime shared libraries are going to be set by default and they&#8217;ll be served up by Adobe&#8217;s own servers. I hope this remains true upon release as it will greatly help Flex apps and their image in the developer community.<br />
<br /><NOSCRIPT>
	<a href='http://www.dpbolvw.net/click-3730281-10591347'>
		<img alt='' border='0' height='60' src='http://www.lduhtrp.net/image-3730281-10591347' width='468'>
		</img>
	</a>
</NOSCRIPT>
<SCRIPT src='http://www.awltovhc.com/javascript/get_flash_html.js' type='text/javascript'>
</SCRIPT>
<SCRIPT type='text/javascript'>
 getFlashHtml('US - 468x60 - CS4 Design Premium (Flash)', 468, 60, 'http://www.tqlkg.com/flash-3730281-10591347?clickTag=http://www.dpbolvw.net/click-3730281-10591347', '', 'http://www.lduhtrp.net/image-3730281-10591347', 'http://www.dpbolvw.net/click-3730281-10591347')
</SCRIPT>
				    <br /><br />
If you liked this post please subscribe to my <a href="http://ducharme.cc/feed">RSS feed</a> and/or <a title="My twitter page" href="http://twitter.com/diacre" target="_blank">follow me on Twitter</a>. If you only want to see my <a href="http://ducharme.cc/category/flash-friday/" target="_blank">Flash Friday posts</a> you can follow the subscribe to the <a href="http://ducharme.cc/category/flash-friday/feed">Flash Friday feed</a>. How&#8217;s that for alliteration <img src='http://ducharme.cc/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Until next time keep on coding.</p>
<p><map name='google_ad_map_293_4d908d47eedd0248'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/293?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_293_4d908d47eedd0248' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=293&amp;url= http%3A%2F%2Fducharme.cc%2Fdecreasing-load-time-rsls%2F' /></p>]]></content:encoded>
			<wfw:commentRss>http://ducharme.cc/decreasing-load-time-rsls/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Embedding Fonts in Flex Builder Using the Flash IDE</title>
		<link>http://ducharme.cc/embedding-fonts-flex-builder-flash-ide/</link>
		<comments>http://ducharme.cc/embedding-fonts-flex-builder-flash-ide/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 10:00:04 +0000</pubDate>
		<dc:creator>Deacon</dc:creator>
				<category><![CDATA[Flash Friday]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Fonts]]></category>
		<category><![CDATA[Styles]]></category>

		<guid isPermaLink="false">http://ducharme.cc/?p=242</guid>
		<description><![CDATA[Flex is great for building rich internet applications quickly. Building an application quickly is nice, but to give your application that truly professional touch you need to customize the look and feel of your app. In order to fully customize the look and the feel you will need to use a font that&#8217;s different than [...]]]></description>
			<content:encoded><![CDATA[<p><br /><NOSCRIPT>
	<a href='http://www.dpbolvw.net/click-3730281-10591347'>
		<img alt='' border='0' height='60' src='http://www.lduhtrp.net/image-3730281-10591347' width='468'>
		</img>
	</a>
</NOSCRIPT>
<SCRIPT src='http://www.awltovhc.com/javascript/get_flash_html.js' type='text/javascript'>
</SCRIPT>
<SCRIPT type='text/javascript'>
 getFlashHtml('US - 468x60 - CS4 Design Premium (Flash)', 468, 60, 'http://www.tqlkg.com/flash-3730281-10591347?clickTag=http://www.dpbolvw.net/click-3730281-10591347', '', 'http://www.lduhtrp.net/image-3730281-10591347', 'http://www.dpbolvw.net/click-3730281-10591347')
</SCRIPT>
				    <br /></p>
<p>Flex is great for building rich internet applications quickly. Building an application quickly is nice, but to give your application that truly professional touch you need to customize the look and feel of your app. In order to fully customize the look and the feel you will need to use a font that&#8217;s different than the default serif font that is used everywhere.</p>
<p>The flash player affords you the opportunity to embed many non standard fonts into your app, something that sets it apart from AJAX applications that need to rely on web safe fonts. In the flash IDE this is as easy as setting the font in the properties panel and selecting which character from that font which you want to embed. In a Flex app, things get a little trickier &#8211; especially if you want to use a non True Type font, which is the only type it can import natively. However, if you have the Flash IDE you can use its simplicity to get any font you can use in Flash into your Flex app.</p>
<p>The process is broken up into two steps.</p>
<ol>
<li>Create a SWF with the font(s) you need embedded in it</li>
<li>Add Style (CSS) info to your Flex project that imports the font into your Flex project</li>
</ol>
<div id="attachment_246" class="wp-caption alignleft" style="width: 208px"><img class="size-full wp-image-246 " title="characterEmbedding" src="http://ducharme.cc/wp-content/uploads/2009/12/characterEmbedding.jpg" alt="Character Embed Dialog in Flash" width="198" height="254" /><p class="wp-caption-text">Character Embed Dialog in Flash</p></div>
<p>Step one starts with the simplest of FLA files and can be created with earlier versions of the Flash IDE  (so you can use Flash 8 or MX2004 if that&#8217;s all you have). I recommend using a separate FLA for each font you want to embed, that way it is easier to catalog, store and reuse in other projects.<em> </em>Create 4 <em>dynamic</em> text fields. Each text field is for the different versions of the font so you should have:</p>
<ul>
<li>normal</li>
<li><em>italic</em></li>
<li><strong>bold</strong></li>
<li><strong><em>bold italic</em></strong></li>
</ul>
<p>You need to make sure you set up all 4 text fields to embed all the glyphs from the font you will need.  For most western languages Numerals, Punctuation and Basic Latin should cover all the glyphs you will need. Once again, make sure to set up the character embedding for all 4 text fields. If you notice certain parts of your flex document using the default font you may not have set up character embedding. You can of course leave out any of the 4 ( ie italic and italic bold ) that you aren&#8217;t going to use but if you are going to reuse the SWF I would do all 4.</p>
<p>Once you are done setting the character embedding for all 4 text fields, publish the file to a SWF.<br />
<br />
The second step of this process is to add Style to your Flex project that imports the font into the project. That&#8217;s as simple as adding an @font-face entry to your CSS file or <em>&lt;mx:Style&gt;</em> block. At first you simply give it the path to your font SWF and the name of the font ( ie Futura Book, Calibri ).</p>
<pre>@font-face</pre>
<pre>{</pre>
<pre>src:url( "path/to/yourFont.swf" );</pre>
<pre>fontFamily:"Exact Name of Font"</pre>
<pre>}</pre>
<p>You also need to add an @font-face entry for each version of the font you want to use. So if you also wanted to use the bold version you would add the following:</p>
<pre>@font-face</pre>
<pre>{</pre>
<pre>    src: url( "path/to/yourFont.swf");</pre>
<pre>    fontWeight:"bold";</pre>
<pre>    fontFamily:"Exact Name of Font";</pre>
<pre>}</pre>
<p>After you are done adding the appropriate @font-face entries you can style any component you need to or you can style the entire application with your font.</p>
<pre>Application</pre>
<pre>{</pre>
<pre>    fontFamily:"Exact Name of Font";</pre>
<pre>}</pre>
<p>There are a couple other ways to embed fonts, and if you don&#8217;t have a version of the flash IDE those are the only way to go. If there is enough interest I can cover those in comments or another post. However this is by far the simplest, it allows you the ability to embed non True Type fonts and you can reuse a font more quickly in the future.<br />
<br /><NOSCRIPT>
	<a href='http://www.dpbolvw.net/click-3730281-10591347'>
		<img alt='' border='0' height='60' src='http://www.lduhtrp.net/image-3730281-10591347' width='468'>
		</img>
	</a>
</NOSCRIPT>
<SCRIPT src='http://www.awltovhc.com/javascript/get_flash_html.js' type='text/javascript'>
</SCRIPT>
<SCRIPT type='text/javascript'>
 getFlashHtml('US - 468x60 - CS4 Design Premium (Flash)', 468, 60, 'http://www.tqlkg.com/flash-3730281-10591347?clickTag=http://www.dpbolvw.net/click-3730281-10591347', '', 'http://www.lduhtrp.net/image-3730281-10591347', 'http://www.dpbolvw.net/click-3730281-10591347')
</SCRIPT>
				    <br /><br />
If you liked this post please subscribe to my <a href="http://ducharme.cc/feed">RSS feed</a> and/or <a title="My twitter page" href="http://twitter.com/diacre" target="_blank">follow me on Twitter</a>. If you only want to see my <a href="http://ducharme.cc/category/flash-friday/" target="_blank">Flash Friday posts</a> you can follow the subscribe to the <a href="http://ducharme.cc/category/flash-friday/feed">Flash Friday feed</a>. How&#8217;s that for alliteration <img src='http://ducharme.cc/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Until next time keep on coding.</p>
<p><map name='google_ad_map_242_4d908d47eedd0248'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/242?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_242_4d908d47eedd0248' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=242&amp;url= http%3A%2F%2Fducharme.cc%2Fembedding-fonts-flex-builder-flash-ide%2F' /></p>]]></content:encoded>
			<wfw:commentRss>http://ducharme.cc/embedding-fonts-flex-builder-flash-ide/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The Open Source Media Framework</title>
		<link>http://ducharme.cc/open-source-media-framework/</link>
		<comments>http://ducharme.cc/open-source-media-framework/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 10:00:18 +0000</pubDate>
		<dc:creator>Deacon</dc:creator>
				<category><![CDATA[Flash Friday]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OSMF]]></category>

		<guid isPermaLink="false">http://ducharme.cc/?p=187</guid>
		<description><![CDATA[The Open Source Media Framework (OSMF ) is a new open source project managed by Adobe. It's aim is to make the creation of media players a simpler process and to give everyone who uses it access to best practices that they may have missed while rolling their own. I took it for a test drive and here are my first thoughts.]]></description>
			<content:encoded><![CDATA[<p>I first heard about the <a href="http://opensource.adobe.com/wiki/display/osmf/Open+Source+Media+Framework" target="_blank">Open Source Media Framework </a>(<abbr title="open source media framework">OSMF</abbr>) while watching one of the Adobe Max 2009 keynote speeches online. As a person who has built a lot of video players, galleries and mp3 players for my work I was very excited that this was being built. I have wanted to work on something like this myself for a long time. Now here was an open source project I could contribute to while building off of best practices others have contributed. Building robust custom players was going to be much quicker and easier.<br /><NOSCRIPT>
	<a href='http://www.anrdoezrs.net/click-3730281-10591357'>
		<img alt='' border='0' height='60' src='http://www.lduhtrp.net/image-3730281-10591357' width='468'>
		</img>
	</a>
</NOSCRIPT>
<SCRIPT src='http://www.awltovhc.com/javascript/get_flash_html.js' type='text/javascript'>
</SCRIPT>
<SCRIPT type='text/javascript'>
 getFlashHtml('US - 468x60 - CS4 Production Premium (flash)', 468, 60, 'http://www.ftjcfx.com/flash-3730281-10591357?clickTag=http://www.anrdoezrs.net/click-3730281-10591357', '', 'http://www.lduhtrp.net/image-3730281-10591357', 'http://www.anrdoezrs.net/click-3730281-10591357')
</SCRIPT>
				    <br /><br />
<span>While watching the keynote I looked <abbr title="open source media framework">OSMF</abbr> up, but it was still in early development. So I just added it too my ever growing research and development document. Recently I found a free ezine called <a href="http://ffdmag.com/" target="_blank">Flash &amp; Flex Developers Magazine</a> and the most recent issue was focused around <abbr title="open source media framework">OSMF</abbr>. I decided to take the framework for a test drive and while I was at it I would give the <abbr title="application programming interface">API</abbr> docs a skimming read. Here is what I found.</span></p>
<h2>Testing out the sample code</h2>
<p>The first thing I did was try out the examples straight from the magazine. This was straightforward. The samples didn&#8217;t build anything too advanced but I noticed something. It didn&#8217;t take very many lines of code to get the video playing. Most of the code was for adding buttons and making them call a single function in the <abbr title="open source media framework">OSMF</abbr> <abbr title="application programming interface">API</abbr>. As usual when doing samples from an article I decide to tweak it to see has intuitive it was to do things. Adding and customizing simple playback controls and capabilities was a breeze. I only needed to check the documentation to make sure my assumptions were true, which they were in most cases. For a basic custom player, this thing is extremely easy to use.</p>
<h2>Looking under the hood</h2>
<p>The second thing I did is something I like to do with a framework I&#8217;m looking at, skim over the documentation. This consists of going through each package and seeing what classes are where. For the most part I will click into each classes documentation to find out what the class is meant for. Sure, this has me look at a lot of helper classes that I may never use ( which is a good learning exercise ), but it also has me find obscure classes that might be quite useful in a pinch.<br />
<br />
One class that interested me both for educational and practical reasons was the <a href="http://help.adobe.com/en_US/OSMF/1.0/AS3LR/org/osmf/proxies/ListenerProxyElement.html" target="_blank">ListenerProxyElement</a> class. It is actually quite beautiful in its simple use. It is a class that is meant to be extended. The class itself sets up all the listeners for a <a href="http://help.adobe.com/en_US/OSMF/1.0/AS3LR/org/osmf/proxies/ListenerProxyElement.html" target="_blank">MediaElement</a> and has them trigger hook functions that you override to handle these events with custom code. I foresee using this in many projects. There are quite a few other things taken care of in this framework, such as handling of a video player that is sized differently from the video content.</p>
<p>Overall, Adobe ( who is in charge of this open source project ) has put together a very useful, intuitive and extensible framework that is still in the early stages. I&#8217;m looking forward to see what types of media players I can build now that so much is already handled for me. Is there anything you want to know about <abbr title="open source media framework">OSMF</abbr>? Have you already used it on a project? If you have can we see your work (and hopefully code)?<br /><NOSCRIPT>
	<a href='http://www.jdoqocy.com/click-3730281-10588967'>
		<img alt='' border='0' height='60' src='http://www.ftjcfx.com/image-3730281-10588967' width='468'>
		</img>
	</a>
</NOSCRIPT>
<SCRIPT src='http://www.lduhtrp.net/javascript/get_flash_html.js' type='text/javascript'>
</SCRIPT>
<SCRIPT type='text/javascript'>
 getFlashHtml('Adobe CS4 Tools - 468x60', 468, 60, 'http://www.lduhtrp.net/flash-3730281-10588967?clickTag=http://www.jdoqocy.com/click-3730281-10588967', '', 'http://www.ftjcfx.com/image-3730281-10588967', 'http://www.jdoqocy.com/click-3730281-10588967')
</SCRIPT>
				    <br /></p>
<p>For more information check out:</p>
<ul>
<li><a href="http://opensource.adobe.com/wiki/display/osmf/Open+Source+Media+Framework">The Open Source Media Framework main page</a></li>
<li><a href="http://help.adobe.com/en_US/OSMF/1.0/AS3LR/">The OSMF documentation</a></li>
<li><a href="http://forums.adobe.com/community/opensource/osmf/">The OSMF forums</a></li>
</ul>
<p><map name='google_ad_map_187_4d908d47eedd0248'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/187?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_187_4d908d47eedd0248' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=187&amp;url= http%3A%2F%2Fducharme.cc%2Fopen-source-media-framework%2F' /></p>]]></content:encoded>
			<wfw:commentRss>http://ducharme.cc/open-source-media-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
