<?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>noCreativity.com &#187; AIR</title>
	<atom:link href="http://nocreativity.com/blog/tag/air/feed" rel="self" type="application/rss+xml" />
	<link>http://nocreativity.com</link>
	<description>The life and discoveries of a new media artist</description>
	<lastBuildDate>Sat, 07 Jan 2012 17:03:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>More particle awesomeness</title>
		<link>http://nocreativity.com/blog/more-particle-awesomeness</link>
		<comments>http://nocreativity.com/blog/more-particle-awesomeness#comments</comments>
		<pubDate>Tue, 08 Jun 2010 13:13:40 +0000</pubDate>
		<dc:creator>Ronny</dc:creator>
				<category><![CDATA[Experiments]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Cool shit]]></category>
		<category><![CDATA[effects]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[particles]]></category>
		<category><![CDATA[PNG]]></category>

		<guid isPermaLink="false">http://nocreativity.com/blog/?p=1059</guid>
		<description><![CDATA[A few weeks ago, I toyed around with particles. I used perlin noise maps to send the particles in the right directions. However the particles were randomly positioned and just a boring flat color&#8230; Kris Temmerman addressed that in his latest experiment. As he&#8217;s a decent man, he&#8217;s always sharing his code, so I just [...]]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago, I toyed around with <a href="http://nocreativity.com/blog/particle-power" target="_blank">particles</a>. I used perlin noise maps to send the particles in the right directions. However the particles were randomly positioned and just a boring flat color&#8230; <a href="http://neuroproductions.be" target="_blank" target="_blank">Kris Temmerman</a> addressed that in his <a href="http://www.neuroproductions.be/generative-art/blowing-up-images/" target="_blank" target="_blank">latest experiment</a>. As he&#8217;s a decent man, he&#8217;s always sharing his code, so I just took his render engine, threw in some AIR magic and got myself a PNG sequence generator (for those who don&#8217;t speak Ronny: I made an AIR app that generates these <em>image particles explosions</em> and in the meantime saves every step as a PNG file. That way you can create a video based on these frames <img src='http://nocreativity.com/blog-engine/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  )</p>
<p>As it turns out I happen to have no life at all, so I went for insanity when I decided trying to get enough images for a 60 seconds sequence (Generating those images took a whole afternoon&#8230; I ended up having ±15GB of HQ PNG files).</p>
<p>Anyway, long story short: I&#8217;ve got this video I wanted to show you.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="580" height="326" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=12379381&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=ffff00&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="580" height="326" src="http://vimeo.com/moogaloop.swf?clip_id=12379381&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=ffff00&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>You know: Afterwards I realized this could probably be done using After Effects right away&#8230; (I wouldn&#8217;t know to be honest). But in the end, it&#8217;s proven again: Sometimes not knowing how crazy something is, is actually a good thing.</p>
<p>PS: I would share the AIR app, but right now it&#8217;s buggy as hell and somehow memory seems to be an issue. Will need to address those first. I promise I will release it sometime soon <img src='http://nocreativity.com/blog-engine/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://nocreativity.com/blog/more-particle-awesomeness/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Flash on the iPhone? Orly&#8230;? Ya. Rly.</title>
		<link>http://nocreativity.com/blog/flash-on-the-iphone-orly-ya-rly</link>
		<comments>http://nocreativity.com/blog/flash-on-the-iphone-orly-ya-rly#comments</comments>
		<pubDate>Mon, 05 Oct 2009 19:22:02 +0000</pubDate>
		<dc:creator>Ronny</dc:creator>
				<category><![CDATA[Everything else]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Adobe Max]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iphone dev]]></category>

		<guid isPermaLink="false">http://nocreativity.com/blog/?p=696</guid>
		<description><![CDATA[Well&#8230; Actually not&#8230; But: If you are a Flash developer and you know how to compile a SWF then as off today* you can build native iPhone applications using your current AS3 knowledge. Does that sound familiar to you? Well it should because Adobe did the exact same thing when they first announced Adobe AIR. [...]]]></description>
			<content:encoded><![CDATA[<p>Well&#8230; Actually not&#8230; <img src='http://nocreativity.com/blog-engine/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="340" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/lzqd5mHWTHE&amp;hl=en&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="560" height="340" src="http://www.youtube.com/v/lzqd5mHWTHE&amp;hl=en&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>But: If you are a Flash developer and you know how to compile a SWF then as off today* you can build native iPhone applications using your current AS3 knowledge. Does that sound familiar to you? Well it should because Adobe did the exact same thing when they first announced Adobe AIR.</p>
<p>Adobe just showed a Flash CS5 preview featuring a &#8216;compile for iPhone&#8217; demo. (Watch a similar demo <a href="http://labs.adobe.com/technologies/flashcs5/appsfor_iphone/" target="_blank" target="_blank">here</a>)<span id="more-696"></span></p>
<p><strong>Exactly how does this work?</strong><br />
Flash CS5 will be able to compile your Flash AS3 project to a native iPhone application. That means you can use your current knowledge and use it to build applications you can release in the Apple App Store.<br />
However, Apple isn&#8217;t as forthcoming as most of us would like so there&#8217;s still no Flash Player for the iPhone available.</p>
<p><strong>I do wonder though&#8230;</strong><br />
Can I add &#8216;iPhone Development&#8217; to my resumé now? Or will Flash CS5 only be able to target a limited number of the iPhone OS&#8217; API&#8217;s?<br />
Having seen how AIR had to evolve / is evolving on the desktop, I feel there won&#8217;t be full support for the iPhone platform right away&#8230; However it&#8217;s still appealing to me&#8230; I&#8217;m really excited about the upcoming beta. Can&#8217;t wait to get my hands on this and play with it!</p>
<p><strong>Other intresting Adobe Max announcements?<br />
<span style="font-weight: normal;">Hmz&#8230; Well for starters, Adobe is releasing Flash Player 10.1 (beta) sometime soon which features a lot of new stuff (most of it focussed on mobile devices. Examples: Multitouch, accelerometer input, optimized performance, gesture detection, &#8230;)</span><span style="font-weight: normal;"> . AIR 2.0 now supports external USB devices (like a <a href="http://www.theflip.com/" target="_blank" target="_blank">Flip</a> cam) and native fileformat linkage (what&#8217;s the correct term for that? kthxbye). They also demoed a new feature in Photoshop&#8230; But it&#8217;s nothing exciting like the Flash Player and the Flash CS5-iPhone announcement <img src='http://nocreativity.com/blog-engine/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  </span></strong></p>
<p>I&#8217;m really wondering what they&#8217;ll be announcing tomorrow&#8230;</p>
<p><strong><span style="font-weight: normal;"><strong>(Freaking cool) links</strong><br />
Adobe Flash CS5 &#8211; more info: <a href="http://labs.adobe.com/technologies/flashcs5/appsfor_iphone/" target="_blank">Click<br />
</a>iPhone and Flash FAQ: <a href="http://labs.adobe.com/wiki/index.php/Applications_for_iPhone" target="_blank">Click<br />
</a>Adobe Flash Player 10.1 &#8211; more info: <a href="http://labs.adobe.com/technologies/flashplayer10/" target="_blank" target="_blank">Click</a></span></strong></p>
<p><strong><span style="font-weight: normal;"><br />
</span></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://nocreativity.com/blog/flash-on-the-iphone-orly-ya-rly/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Open Microphone pt 1</title>
		<link>http://nocreativity.com/blog/open-microphone-pt-1</link>
		<comments>http://nocreativity.com/blog/open-microphone-pt-1#comments</comments>
		<pubDate>Fri, 25 Sep 2009 14:10:04 +0000</pubDate>
		<dc:creator>Ronny</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[getMicrophone]]></category>
		<category><![CDATA[mic]]></category>
		<category><![CDATA[microphone]]></category>
		<category><![CDATA[mikerophone]]></category>
		<category><![CDATA[SoundAnalyzing]]></category>
		<category><![CDATA[SoundSpectrum]]></category>

		<guid isPermaLink="false">http://nocreativity.com/blog/?p=669</guid>
		<description><![CDATA[If you&#8217;ve come by here a few times you know I have been experimenting with computeSpectrum and webcam motion detection. At a given moment I wanted to combine the 2 of them in order to use voice commands in order to make stuff happen on the screen. That would be pretty badass, right? However I [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-670 alignleft" title="mikerophone" src="http://nocreativity.com/blog-engine/wp-content/uploads/2009/09/mikerophone.jpg" alt="mikerophone" width="220" height="239" />If you&#8217;ve come by here a few times you know I have been experimenting with computeSpectrum and webcam motion detection. At a given moment I wanted to combine the 2 of them in order to use voice commands in order to make stuff happen on the screen. That would be pretty badass, right?</p>
<p>However I soon learned the microphone feed didn&#8217;t go through the SoundMixer of the Flash Player, therefor would would not be able to be analyzed. There was a workaround with FMS/RED5 and bouncing the stream off the server but that&#8217;s rather overkill (not to mention the lag). <span id="more-669"></span></p>
<p><strong>However&#8230;<br />
</strong>Mike Chambers and Lee Brimelow were in Paris the other day where they demoed/demo&#8217;ed/demo-ed (how the hell do you spell that word??) a few new features of the upcoming AIR release. If you don&#8217;t already know, you&#8217;ll probably have guessed it by now but (just to be crystal clear): The microphone is accesible for computeSpectrum in the AIR runtime. Check out <a href="http://theflashblog.com/?p=1426" target="_blank" target="_blank">the demo</a> on Lee&#8217;s blog <img src='http://nocreativity.com/blog-engine/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Lee stated on his blog he couldn&#8217;t talk about this feature being brought to the Flash Player, but I&#8217;m pretty confident Adobe will do so <img src='http://nocreativity.com/blog-engine/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Even though I&#8217;m not much of an AIR developer, I like the idea of having access to both microphone and camera&#8230; I can image a few cool applications using those features&#8230; <img src='http://nocreativity.com/blog-engine/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
<p>By the way: If you don&#8217;t already know: there&#8217;s a great site with all kinds of intresting articles on the subject. If you&#8217;re interested, make sure to check it out: <a href="http://www.getmicrophone.com/" target="_blank" target="_blank">getMicrophone()</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nocreativity.com/blog/open-microphone-pt-1/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>4 &#8220;WTF?!&#8221; moments during a Flex/AIR experiment</title>
		<link>http://nocreativity.com/blog/4-wtf-moments-during-a-flexair-experiment</link>
		<comments>http://nocreativity.com/blog/4-wtf-moments-during-a-flexair-experiment#comments</comments>
		<pubDate>Thu, 11 Jun 2009 11:56:30 +0000</pubDate>
		<dc:creator>Ronny</dc:creator>
				<category><![CDATA[Download]]></category>
		<category><![CDATA[Experiments]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Alchemy]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[cross platform]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[JPGEncoding]]></category>
		<category><![CDATA[Photo Booth]]></category>
		<category><![CDATA[timelapse]]></category>

		<guid isPermaLink="false">http://nocreativity.com/blog/?p=551</guid>
		<description><![CDATA[On a shiny day I was sitting inside, and I don&#8217;t know what bug just bit me, but I felt like experimenting with Flex and AIR (instead of heading outside into the light). For some reason I felt like creating a Photobooth clone with only one feature: Taking a snapshot every few seconds and saving [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-558" title="picture-1462" src="http://nocreativity.com/blog-engine/wp-content/uploads/2009/06/picture-1462-278x300.jpg" alt="picture-1462" width="278" height="300" />On a shiny day I was sitting inside, and I don&#8217;t know what bug just bit me, but I felt like experimenting with Flex and AIR (instead of heading outside into the light). For some reason I felt like creating a Photobooth clone with only one feature: Taking a snapshot every few seconds and saving it to the disk. During my quest I came across a few findings that were either extremely weird or just plain awesome. Here goes my list of &#8216;WTF?!&#8217;<br />
(If you don&#8217;t like reading, but you do want to check out the AIR app, click <a href="http://nocreativity.com/stuff/Alchyboot.air" target="_blank">here</a>)<span id="more-551"></span></p>
<h2>HorizontalList and ItemRenderers in Flex</h2>
<p>I must&#8217;ve done something wrong&#8230; I can&#8217;t imagine this being so hard.<br />
What I did was: I used a simple HorizontalList component, set the columnWidth to 80, built my own itemrenderer and put them together. The itemrenderer basically loads a JPG and displays it. Seen as my images were larger than 80px I decided to do some maths the resize the image on the fly.<br />
To start with, i went into my itemrenderer, and traced the with of the bitmap, and the width of the itemrenderer itself. Just to make sure those properties are actually ready. First thing to notice: <em>this.width</em> inside the itemrenderer randomly traced 80 and 85.<img class="alignright" title="Flex" src="http://nocreativity.com/blog-engine/wp-content/uploads/2008/09/flex-icon.jpg" alt="" width="100" height="100" /></p>
<p>What the f-&#8230; Wait&#8230; Eh&#8230; No, what?</p>
<p>I didn&#8217;t really find out why that is, but if anybody feels like enlightning me: go right ahead. (After that, I noticed that sometimes the first or the last (or both) items in the list weren&#8217;t updating at all&#8230; I must be misunderstanding some fundamentals of the framework I guess&#8230; [Btw: I did NOT manage to fix this in a decent way, so at some point I gave up an threw it away...])</p>
<h2>The panel titlebar in Flex</h2>
<p>So this is AIR, right? Goodbye system chrome, hello you science-fiction-looking chrome! I created my own (very Flex-looking) chrome and disabled the system chrome. I wanted my app to be able to be moved around on the desktop&#8230; You know: Like windows do (not Windows&#8230;).<br />
I figured: Hell, the Panel component looks a lot like a basic window. Why not use it as the main window? So what&#8217;s the first thing a regular human brain would do? Right, you&#8217;ll try to get to the titleBar via the panel instance&#8230; But you can&#8217;t! I figured I must be misunderstanding the construction of the panel. So there I go, reading about the titleBar on the <a href="http://livedocs.adobe.com/flex/3/langref/mx/containers/Panel.html#titleBar" target="_blank" target="_blank">Panel Class page</a> in the Flex Livedocs. Most of you already know but just let me spell it out for you: It&#8217;s <em>protected</em>&#8230; So you can&#8217;t get to it right away&#8230; You have to built your own panel class that extends the original Panel class, and create your own public getter for the titleBar&#8230;</p>
<p>Excuse me: WTF? Oh, I think I understa&#8230; Oh, no I don&#8217;t: Why again?</p>
<p>No seriously: What&#8217;s the deal with that? I can see how you don&#8217;t want a setter there&#8230; But no getter? What good is that supposed to do? Anyway, let&#8217;s fix this&#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">&lt;</span> <span style="color: #000066; font-weight: bold;">?</span>xml <span style="color: #004993;">version</span>=<span style="color: #990000;">&quot;1.0&quot;</span> encoding=<span style="color: #990000;">&quot;utf-8&quot;</span><span style="color: #000066; font-weight: bold;">?&gt;</span>
<span style="color: #000066; font-weight: bold;">&lt;</span>mx <span style="color: #000066; font-weight: bold;">:</span>Panel xmlns<span style="color: #000066; font-weight: bold;">:</span>mx=<span style="color: #990000;">&quot;http://www.adobe.com/2006/mxml&quot;</span> layout=<span style="color: #990000;">&quot;absolute&quot;</span> <span style="color: #004993;">width</span>=<span style="color: #990000;">&quot;400&quot;</span> <span style="color: #004993;">height</span>=<span style="color: #990000;">&quot;300&quot;</span><span style="color: #000066; font-weight: bold;">&gt;</span>
<span style="color: #000066; font-weight: bold;">&lt;/</span>mx<span style="color: #000066; font-weight: bold;">&gt;&lt;</span>mx <span style="color: #000066; font-weight: bold;">:</span>Script<span style="color: #000066; font-weight: bold;">&gt;</span>
<span style="color: #000066; font-weight: bold;">&lt;</span> <span style="color: #000066; font-weight: bold;">!</span><span style="color: #000000;">&#91;</span>CDATA<span style="color: #000000;">&#91;</span>
<span style="color: #0033ff; font-weight: bold;">import</span> mx<span style="color: #000066; font-weight: bold;">.</span>core<span style="color: #000066; font-weight: bold;">.</span>UIComponent<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #0033ff; font-weight: bold;">get</span> theTitlebar<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span>UIComponent<span style="color: #000000;">&#123;</span>
<span style="color: #0033ff; font-weight: bold;">return</span> <span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>titleBar<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
<span style="color: #009900; font-style: italic;">// There are probably way easier/simpler ways than this...</span>
<span style="color: #000000;">&#93;</span><span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">&gt;</span>
<span style="color: #000066; font-weight: bold;">&lt;/</span>mx<span style="color: #000066; font-weight: bold;">&gt;</span></pre></div></div>

<p>And now I can use theTitlebar of my DraggablePanel class to actually drag my panel like a real window&#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;">pnlMain<span style="color: #000066; font-weight: bold;">.</span>theTitlebar<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">MOUSE_DOWN</span><span style="color: #000066; font-weight: bold;">,</span> startTheDrag<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> startTheDrag<span style="color: #000000;">&#40;</span>e<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">MouseEvent</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000000;">&#123;</span>
nativeWindow<span style="color: #000066; font-weight: bold;">.</span>startMove<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>That looks pretty straight forward, and actually works like a charm&#8230; But why did I have to do this? Why is the titleBar protected??</p>
<h2>AS3 JPGEncoder for FP9, FP10 and the one on speedballs</h2>
<p>So at one point I actually got to building the thing I actually wanted to build: A Photobooth-clone that takes a picture and saves it to the harddrive. Drawing the bitmap went fine, saving the encoded JPG to disk went perfectly smooth as well. The AIR API is really fun to work with. Pretty straight foward&#8230; But I will get back to that in just a minute&#8230;</p>
<p>The problem at hand right now was the Bitmap encoding: I draw a bitmap (480 x 360) and I want to write it to disk. So I include the <a href="http://code.google.com/p/as3corelib/" target="_blank" target="_blank">AS3corelib</a> in my project and continue my quest. When testrunning I notice the application freezes while the bitmapdata is encoded. And not just for a moment. Noooo&#8230; For a full second (or longer)! I can hear you thinking: &#8216;A second&#8230;? So?&#8217;. Well if you want to shoot a picture every second this application will just completely freeze. And let&#8217;s just face the fact: it&#8217;s just plain annoying the have an application the freezes every few seconds for that amount of time.</p>
<p>So I started playing with quality settings, and bitmap sizes. All to no avail. The encoder is just too slow. <a href="http://Peterelst.com" target="_blank" target="_blank">Peter</a> suggested taking a look at the Vector implementation found <a href="http://www.bytearray.org/?p=775" target="_blank" target="_blank">here</a>. That went way faster already: Up to 4 times faster. But still: 0.3 seconds is pretty slow&#8230; So I read through the comments and run into the magic word: &#8216;<a href="http://labs.adobe.com/technologies/alchemy/" target="_blank" target="_blank">Alchemy</a>&#8216;. I haven&#8217;t been playing with Alchemy myself (mainly because I don&#8217;t know C), but I knew Alchemy would be the key to he solution of this problem. So I downloaded <a href="http://segfaultlabs.com/blog/post/asynchronous-jpeg-encoding" target="_blank" target="_blank">this SWC</a> (<a href="http://segfaultlabs.com/swf/alchemy/alchemyJpegUpdate_sv/alchemy_flex.zip" target="_blank" target="_blank">direct link</a>), implemented this version of the encoder, ran the script and&#8230;<br />
&#8230;.I went &#8216;WHAT THE FUUUUCK?&#8217; (You can see what that looks like below)</p>
<div style="text-align:center"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="368" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=5101218&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=ffff00&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="480" height="368" src="http://vimeo.com/moogaloop.swf?clip_id=5101218&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=ffff00&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
<p>This video was made using the pictures Alchemy created. Alchemy was encoding these bitmaps in .05 seconds per frame! (I swear, I went on for at least 15 minutes WTF-ing over and over again&#8230;). So: From 1.2 seconds to 0.05 seconds&#8230; That&#8217;s about 24 times faster. Ain&#8217;t that amazing?</p>
<p>The coolest thing? I didn&#8217;t even have to compile the C code myself as I was given the .swc file. (Believe me I gave C compiling a try, but me and Terminal&#8230; It&#8217;s just not gonna happen&#8230;)</p>
<h2>File.nativePath and File.url in AIR</h2>
<p><img class="alignleft" title="AIR" src="http://nocreativity.com/blog-engine/wp-content/uploads/2008/09/air_icon_special.jpg" alt="" width="100" height="100" />The one thing I love about AIR? The combination of creating crossplatform applications using the tools I&#8217;m familiar with from online development. The keyword here is <em>crossplatform</em>. Creating AIR apps is supposed to be a straight forward process. You shouldn&#8217;t worry about platform specific issues. AIR is handling the heavy lifting for you. The only thing you need to do is create the app using the crossplatform API. Or so you would think.</p>
<p>One of the first things I noticed was the fact that the <em>file.nativePath </em>property isn&#8217;t all that crossplatform. And nobody can&#8217;t really explain why. Even <a href="http://theflashblog.com" target="_blank" target="_blank">Lee Brimelow</a> didn&#8217;t manage to explain that in <a href="http://www.gotoandlearn.com/play?id=42" target="_blank" target="_blank">his tutorial</a>&#8230;</p>
<p>I mean: How can the <em>native path</em> not be <em>cross platform</em>? It&#8217;s native to it&#8217;s own platform! (I really went WTF when learning that).</p>
<p>Apparently you can do anything using the <em>file.url</em> property. To me <em>file.nativePath</em> isn&#8217;t intended to be used when trying to access a file, but more intended to show the end-user where on the filesystem the file resides using a <em>platform native notation</em>.</p>
<p>Examples</p>
<ul>
<li>Windows XP: c:\Documents and Settings\noCreativity\My Documents\myFile.jpg</li>
<li>Windows Vista: c:\Users\noCreativity\My Documents\myFile.jpg</li>
<li>OSX: /Users/noCreativity/Documents/myFile.jpg</li>
</ul>
<p>instead of</p>
<ul>
<li>file:///c:/Documents%20and%Settings/noCreativity/My%20Documents/myFile.jpg</li>
<li>file:///Users/noCreativity/Documents/myFile.jpg</li>
</ul>
<p>I am no Adobe AIR expert so please, feel free to correct me. Because this really itches me. How can a crossplatform API have a property which is not crossplatform-compatible (and don&#8217;t get me started on the whole OSX Dock/menubar vs Windows Start Menu/taskbar thing&#8230; But somehow, that&#8217;s different&#8230;)</p>
<h2>Finally&#8230; The end&#8230;</h2>
<p>Yes, I had a hard time doing all this but I learned a lot! My conclusions?</p>
<p>I like Flex and how it enables you to rapidly create data driven applications, but I&#8217;m pretty sure I&#8217;d really have to look into the inner workings of the framework before trying to build something, using the framework&#8230; And basically that &#8216;really looking into it&#8217; ruins the mood for me&#8230; Definitely when experimenting.</p>
<p>Alchemy is amazing! I can&#8217;t wait to get a good C development environment up on my iMac and start playing with C and lean how I can get the best from both worlds. If you have got any decent suggestions on how to do that [without Terminal] feel free to tell me <img src='http://nocreativity.com/blog-engine/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /><br />
Oh and by the way: If you&#8217;re experimenting with Alchemy and you&#8217;re open-sourcing code or libraries, I encourage you to add a .swc file with the compiled C code. Thanks in advance!</p>
<p>I love the AIR API. Although that nativePath thing will keep haunting me until somebody can give me a straight answer, &#8217;cause I feel like a complete idiot right now.</p>
<p>Oh, and if you care: Feel free to check out the application!</p>
<p><strong>Download</strong>: <a href="http://nocreativity.com/blog-engine/wp-content/plugins/download-monitor/download.php?id=1" title="Alchyboot - Downloaded 277 times">Click</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://nocreativity.com/blog/4-wtf-moments-during-a-flexair-experiment/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Flex, Flash, AIR, Silverlight en ander ongedierte</title>
		<link>http://nocreativity.com/blog/flex-flash-air-silverlight-en-ander-ongedierte</link>
		<comments>http://nocreativity.com/blog/flex-flash-air-silverlight-en-ander-ongedierte#comments</comments>
		<pubDate>Wed, 01 Oct 2008 18:06:45 +0000</pubDate>
		<dc:creator>Ronny</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Blend]]></category>
		<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[Expression]]></category>
		<category><![CDATA[Flash Lite]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Visual studio]]></category>

		<guid isPermaLink="false">http://nocreativity.com/blog/?p=155</guid>
		<description><![CDATA[Ik heb in de laatste maanden gemerkt dat meer en meer verwarring ontstaat als het over Flash, Flex, AIR en Silverlight gaat. Blijkbaar weet een groot publiek niet wat het verschil is. Ikzelf ben al enkele jaren met Flash bezig, en gezien de snelle evolutie van de laatste 2 jaar kan ik me voorstellen dat [...]]]></description>
			<content:encoded><![CDATA[<p>Ik heb in de laatste maanden gemerkt dat meer en meer verwarring ontstaat als het over Flash, Flex, AIR en Silverlight gaat. Blijkbaar weet een groot publiek niet wat het verschil is.<br />
Ikzelf ben al enkele jaren met Flash bezig, en gezien de snelle evolutie van de laatste 2 jaar kan ik me voorstellen dat er verwarring ontstaat. Maar blijkbaar wordt er toch nog veel verkeerde informatie verspreid, waardoor zelfs schrijvers van magazines de foute weg op gaan.</p>
<p>Hieronder volgt een korte uitleg over deze termen. Ik heb er ook meteen de meest voor de hand liggende software pakketten bij geplaatst, want ook daar durft men soms verkeerd geïnformeerd zijn.<span id="more-155"></span></p>
<h3>Flash</h3>
<p><img class="alignleft size-full wp-image-156" title="flash-icon" src="http://nocreativity.com/blog-engine/wp-content/uploads/2008/09/flash-icon.jpg" alt="" width="100" height="94" /><strong>Omschrijving</strong>: Flash is een programma van Adobe waarmee SWF files kunnen gebouwd worden. Deze SWF bestanden worden vooral op het internet gebruikt, en spelen af in de Flash Player. De Flash Player is een krachtige light-weight plug-in voor webbrowsers (Firefox, Safari, Internet Explorer, Opera&#8230; ) die zowel op Windows, OS X alsook Linux beschikbaar is.</p>
<p><strong>Tools of the trade</strong>:</p>
<ul>
<li><a href="http://www.adobe.com/products/flash/" target="_blank" target="_blank">Adobe Flash</a></li>
</ul>
<p><strong>Voorbeelden van toepassingen</strong>:</p>
<ul>
<li><a href="http://youtube.com" target="_blank">Youtube</a>: De video&#8217;s worden afgespeeld in de Flash Player. De video-besturing is Flash-content. De video die afspeelt is Flash Video</li>
<li><a href="http://switchmw.com" target="_blank" target="_blank">Switch Media Works</a>: Een volledige Flash website</li>
</ul>
<p><strong>Links</strong>:</p>
<ul>
<li><a href="http://www.adobe.com/products/flash/" target="_blank" target="_blank">Adobe Flash</a></li>
<li><a href="http://www.adobe.com/go/gntray_dl_getflashplayer" target="_blank" target="_blank">Adobe Flash Player plug-in</a></li>
</ul>
<h3>Flash Lite</h3>
<p><img class="alignleft size-full wp-image-157" title="logoflashlite" src="http://nocreativity.com/blog-engine/wp-content/uploads/2008/09/logoflashlite.jpg" alt="" width="100" height="93" /><strong>Omschrijving</strong>: Flash Lite is een runtime die vooral op GSM&#8217;s, PDA&#8217;s, en andere handhelds (zoals de <a href="http://www.chumby.com/" target="_blank" target="_blank">Chumby</a>) ingezet wordt. Bedoeling hiervan is dat Flash developers nog een groter publiek kunnen bereiken door kleine applicaties te kunnen maken, die op de kleinere draagbare toestellen kunnen bekeken en gebruikt worden.</p>
<p><strong>Tools of the trade</strong>:</p>
<ul>
<li><a href="http://www.adobe.com/products/flash/" target="_blank" target="_blank">Adobe Flash</a></li>
</ul>
<p><strong>Voorbeelden van toepassingen</strong>:</p>
<ul>
<li><a href="http://nocreativity.com/blog/flash-on-the-beach-mobile" target="_blank">Flash on the beach mobile</a></li>
<li><a href="http://www.flashfocus.nl/forum/showthread.php?t=41351" target="_blank" target="_blank">Flash in the can mobile guide</a></li>
</ul>
<p><strong>Links</strong>:</p>
<ul>
<li><a href="http://www.adobe.com/products/flashlite/" target="_blank" target="_blank">Adobe Flash Lite</a></li>
<li><a href="http://www.adobe.com/products/flash/" target="_blank" target="_blank">Adobe Flash </a></li>
</ul>
<h3>Flex</h3>
<p><img class="alignleft size-full wp-image-158" title="flex-icon" src="http://nocreativity.com/blog-engine/wp-content/uploads/2008/09/flex-icon.jpg" alt="" width="100" height="100" /><strong>Omschrijving</strong>: Flex is in het leven geroepen met het oog om snel Flash applicaties te maken. Flex steunt op het gebruik van Flex componenten, die deel uitmaken van het Flex framework. Die maken het mogelijk om snel data-driven applicaties te maken. Flex projecten resulteren &#8211; net als Flash &#8211; in een (of meerdere) SWF bestanden, die gewoon in je browser, in de Flash Player plug-in zullen werken. Je hoeft dus geen andere plug-in te downloaden om sites (gebouwd in Flex) te bekijken.</p>
<p><strong>Tools of the trade</strong>:</p>
<ul>
<li><a href="http://www.adobe.com/products/flex/" target="_blank" target="_blank">Adobe Flex Builder</a></li>
<li><a href="http://www.eclipse.org/" target="_blank" target="_blank">Eclipse</a> + <a href="http://fdt.powerflasher.com/" target="_blank" target="_blank">FDT plug-in</a></li>
<li>Je favoriete tekst editor + (gratis) <a href="http://www.adobe.com/products/flex/flexdownloads/index.html" target="_blank" target="_blank">Flex SDK</a></li>
</ul>
<p><strong>Voorbeeld van toepas</strong>singen:</p>
<ul>
<li><a href="http://flex.org/showcase/" target="_blank" target="_blank">Flex Showcase</a>: Deze site is gemaakt in Flex, en toont nog eens heel erg coole voorbeelden van wat allemaal met Flex kan.</li>
</ul>
<p><strong>Links</strong>:</p>
<ul>
<li><a href="http://www.adobe.com/products/flex/" target="_blank" target="_blank">Adobe Flex Builder</a></li>
<li><a href="http://www.adobe.com/go/gntray_dl_getflashplayer" target="_blank" target="_blank">Adobe Flash Player plug-in</a></li>
<li><a href="http://fdt.powerflasher.com/" target="_blank" target="_blank">PowerFlasher FDT</a></li>
</ul>
<h3>AIR</h3>
<p><img class="alignleft size-full wp-image-159" title="air_icon_special" src="http://nocreativity.com/blog-engine/wp-content/uploads/2008/09/air_icon_special.jpg" alt="" width="100" height="100" /><strong>Omschrijving</strong>: AIR is een afkorting voor Adobe Integrated Runtime. Met andere woorden: AIR maakt het mogelijk om Flash/Flex applicaties op je desktop te draaien. Beter nog: AIR geeft je de mogelijkheid om de vaardigheden die je opgebouwd hebt tijdens het werken met Flex/Flash/HTML &amp; Javascript nu te gebruiken bij het bouwen van desktop applicaties. AIR bestaat voor zowel Windows, OS X aslsook Linux. AIR is dus platform onafhankelijk.</p>
<p><strong>Tools of the trade</strong>:</p>
<ul>
<li><a href="http://www.adobe.com/products/flash/" target="_blank" target="_blank">Adobe Flash</a></li>
<li><a href="http://www.adobe.com/products/flex/" target="_blank" target="_blank">Adobe Flex Builder</a></li>
<li><a href="http://www.adobe.com/products/dreamweaver/" target="_blank" target="_blank">Adobe Dreamweaver</a></li>
<li>Je favoriete tekst editor + (gratis) <a href="http://www.adobe.com/products/air/tools/sdk/" target="_blank" target="_blank">AIR SDK</a></li>
</ul>
<p><strong>Voorbeelden van toepassingen</strong>:</p>
<ul>
<li><a href="http://www.twhirl.org/" target="_blank" target="_blank">Twhirl</a></li>
<li><a href="http://desktop.ebay.com/" target="_blank" target="_blank">eBay Desktop</a></li>
</ul>
<p><strong>Links</strong>:</p>
<ul>
<li><a href="http://www.adobe.com/products/air/" target="_blank" target="_blank">Adobe AIR </a></li>
<li><a href="http://" target="_blank" target="_blank">Adobe Flash</a></li>
<li><a href="http://www.adobe.com/products/flex/" target="_blank" target="_blank">Adobe Flex Builder</a></li>
</ul>
<h3>Silverlight</h3>
<p><img class="alignleft size-full wp-image-160" title="silverlight" src="http://nocreativity.com/blog-engine/wp-content/uploads/2008/09/silverlight.jpg" alt="" width="100" height="74" /><strong>Omschrijving</strong>: Microsoft Silverlight is &#8211; net zoals Flash &#8211; een media formaat dat vooral op het web toegepast wordt, en dus in een plug-in van je browser afspeelt. Hoewel men Silverlight de &#8216;Flash Killer&#8217; noemt is Silverlight tot vandaag relatief weinig ingezet.</p>
<p><strong>Tools of the trade</strong>:</p>
<ul>
<li><a href="http://www.microsoft.com/expression/products/Overview.aspx?key=blend" target="_blank" target="_blank">Microsoft Expression Blend</a></li>
<li><a href="http://www.microsoft.com/belux/msdn/defyallchallenges/nl/?wt.srch=1" target="_blank" target="_blank">Microsoft Visual Studio</a></li>
</ul>
<p><strong>Voorbeelden van toepassingen</strong>:</p>
<ul>
<li><a href="http://silverlight.net/Showcase/" target="_blank" target="_blank">Silverlight Showcase</a></li>
</ul>
<p><strong>Links</strong>:</p>
<ul>
<li><a href="http://www.microsoft.com/expression/products/Overview.aspx?key=blend" target="_blank" target="_blank">Microsoft Expression Blend</a></li>
<li><a href="http://www.microsoft.com/belux/msdn/defyallchallenges/nl/?wt.srch=1" target="_blank" target="_blank">Microsoft Visual Studio</a></li>
<li><a href="http://www.microsoft.com/silverlight/resources/install.aspx" target="_blank" target="_blank">Microsoft Silverlight plug-in</a></li>
</ul>
<p>Er zijn nog zoveel andere dingen te zeggen &#8211; en die zelfs al gezegd zijn &#8211; zodat ik me bijna verplicht voel om nog enkele links naar andere leeswaardige artikels te posten.</p>
<ul>
<li>Peter Elst &#8211; <a href="http://www.peterelst.com/blog/2008/09/26/flash-vs-silverlight-20/" target="_blank" target="_blank">Flash vs Silverlight 2.0</a></li>
<li>Peter Elst &#8211; <a href="http://www.peterelst.com/blog/2008/05/15/adobe-air-versus-microsoft-silverlight/" target="_blank" target="_blank">Flash vs Silverlight</a></li>
<li>John Dowdell &#8211; <a href="http://weblogs.macromedia.com/jd/archives/2008/03/whats_up_with_r.html" target="_blank" target="_blank">What&#8217;s up with reporters?</a></li>
<li>Endrone &#8211; <a href="http://blog.endrone.com/2007/07/10/the-war-of-ria-flash-vs-silverlight/" target="_blank" target="_blank">The war: Flash vs Silverlight</a></li>
<li>FlashFocus &#8211; <a href="http://www.flashfocus.nl/forum/showthread.php?t=31391" target="_blank" target="_blank">Silverlight en JavaFX: Flash krijgt concurrentie</a></li>
<li>Tweakers &#8211; <a href="http://tweakers.net/nieuws/47139/microsofts-silverlight-gaat-strijd-aan-met-flash.html" target="_blank" target="_blank">Microsofts Silverlight gaat de strijd aan met Flash</a></li>
<li>Keith Peters &#8211; <a href="http://www.bit-101.com/blog/?p=1110" target="_blank" target="_blank">Silverlight again</a></li>
</ul>
<p><em><span style="font-size:11px;">Dank aan <a href="http://peterelst.com" target="_blank" target="_blank">Peter Elst</a> voor het nalezen, en aanvullen van dit artikel. Thanks, Peter!!</span></em></p>
]]></content:encoded>
			<wfw:commentRss>http://nocreativity.com/blog/flex-flash-air-silverlight-en-ander-ongedierte/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Adobe AIR voor Linux</title>
		<link>http://nocreativity.com/blog/adobe-air-voor-linux</link>
		<comments>http://nocreativity.com/blog/adobe-air-voor-linux#comments</comments>
		<pubDate>Mon, 31 Mar 2008 13:38:42 +0000</pubDate>
		<dc:creator>Ronny</dc:creator>
				<category><![CDATA[Open-source]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://nocreativity.com/blog/adobe-air-voor-linux</guid>
		<description><![CDATA[Een paar weken geleden heb ik gepost over de officiële release van Adobe AIR, de cross-platform runtime van Adobe die het mogelijk maakt voor developers om met hun bestaande kennis en kunnen programma&#8217;s voor de desktop te maken, zonder zich daarbij tot een platform te moeten beperken.  Toen ik dat artikel schreef was Adobe AIR [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://nocreativity.com/blog-engine/wp-content/uploads/2008/02/air_icon_special.jpg" align="left" height="106" width="106" /> Een paar weken geleden heb ik gepost over de officiële release van Adobe AIR, de cross-platform runtime van Adobe die het mogelijk maakt voor developers om met hun bestaande kennis en kunnen programma&#8217;s voor de desktop te maken, zonder zich daarbij tot een platform te moeten beperken.  Toen ik dat artikel schreef was Adobe AIR nog niet inzetbaar op het Linux platform. Sinds vandaag is dat anders!</p>
<p><a href="http://www.webkitchen.be" target="_blank" target="_blank">Serge Jespers</a> <a href="http://www.webkitchen.be/2008/03/31/air-alpha-version-now-available-for-linux/" target="_blank" target="_blank">berichtte</a> vandaag dat de eerste <a href="http://www.adobe.com/go/airlinux" target="_blank" target="_blank">alpha versie van de runtime voor Linux </a>beschikbaar is. Op deze manier wordt het bekende open-source platform weer toegankelijker! Verder is er vandaag ook een update beschikbaar geworden voor de <a href="http://www.adobe.com/go/flexbuilder_linux" target="_blank" target="_blank">Flex Builder voor Linux</a>. Deze zou AIR support moeten geven zodat developers ook op Linux aan de slag kunnen gaan!</p>
<p>En om het plaatje af te maken, <a href="http://linux-foundation.org/weblogs/press/2008/03/30/adobe-joins-linux-foundation-with-focus-on-linux-for-web-20-applications/" target="_blank" target="_blank">maakt Adobe bekend dat ze zich bij de Linux Foundation aansluiten</a>.</p>
<p>Dit lijkt mij heel goed en fijn nieuws!</p>
]]></content:encoded>
			<wfw:commentRss>http://nocreativity.com/blog/adobe-air-voor-linux/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Playr: De ActionScript 3 music player class!</title>
		<link>http://nocreativity.com/blog/playr-de-actionscript-3-music-player-class</link>
		<comments>http://nocreativity.com/blog/playr-de-actionscript-3-music-player-class#comments</comments>
		<pubDate>Wed, 19 Mar 2008 14:46:13 +0000</pubDate>
		<dc:creator>Ronny</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[docs]]></category>
		<category><![CDATA[Downloads]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[MusicPlayer]]></category>
		<category><![CDATA[Playr]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://nocreativity.com/blog/playr-de-actionscript-3-music-player-class</guid>
		<description><![CDATA[Update: Er is een nieuwe versie van deze klasse die je hier kan vinden. De download van deze versie heb ik verwijderd om die reden. Ik heb gisteren de laatste wijzigingen aangebracht aan de vroegere MusicPlayer class. Zoals het er nu uitziet lijkt deze klasse af, voor een eerste ronde echt gebruik, keiharde feedback en [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update:</strong> <em>Er is <a href="http://nocreativity.com/blog/playr-20-is-here">een nieuwe versie</a> van deze klasse die je hier kan vinden. De download van deze versie heb ik verwijderd om die reden.</em></p>
<p><em> </em></p>
<p>Ik heb gisteren de laatste wijzigingen aangebracht aan de vroegere MusicPlayer class. Zoals het er nu uitziet lijkt deze klasse af, voor een eerste ronde echt gebruik, keiharde feedback en vele suggesties.</p>
<p>Belangrijke wijzigingen zijn:</p>
<ul>
<li> Classnames, en package names zijn aangepast.
<ul>
<li>De klasse zelf heet nu <strong>Playr </strong>in plaats van MusicPlayer.</li>
<li>Package name is aangepast. com.noCreativity.MusicPlayer is nu <strong>com.nocreativity.playr</strong> (met dank aan Peter Elst voor de best practice tip <img src='http://nocreativity.com/blog-engine/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )</li>
</ul>
</li>
<li> Shuffle mode toegevoegd</li>
<li>Trackprogress kan nu ook opgevraagd worden</li>
<li>Singletrack werkt nu volledig</li>
<li>Bug ivm repeat weggewerkt</li>
</ul>
<h3>Wat doet Playr?</h3>
<p>Playr is een Flash Actionscript 3 klasse die het maken van een volwaardige music player in Flash/Flex/AIR reduceert tot enkele regels code. Of je nu maar 1 loop wilt laten spelen, of een volledige playlist wilt 	afspelen in Flash/Flex/AIR: Playr kan het sneller dan jij!</p>
<p>Playr kan je gebruiken om een enkele loop af te spelen, of voor volledige XML afspeellijsten te laten 	afspelen. Zowel shuffle als repeat zijn mogelijk. Ook de interactiviteit met de gebruiker kan snel worden toegevoegd.<br />
De Playr class is ontworpen met snelheid en gemak voor ogen<span id="more-72"></span></p>
<h3>Hoe gebruik ik Playr?</h3>
<p>3 Korte voorbeelden hoe je de Playr class kunt inzetten.</p>
<p>Minimaal<br />
Je wilt gewoon één track laten afspelen.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">import</span> com<span style="color: #000066; font-weight: bold;">.</span>nocreativity<span style="color: #000066; font-weight: bold;">.</span>playr<span style="color: #000066; font-weight: bold;">.*;</span>
<span style="color: #6699cc; font-weight: bold;">var</span> myPlayer<span style="color: #000066; font-weight: bold;">:</span>Playr = <span style="color: #0033ff; font-weight: bold;">new</span> Playr<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>singleTrack = <span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>loadTrack<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;music/myTrack.mp3&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">play</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></pre></div></div>

<p>Minimaal<br />
Je wilt een volledige playlist afspelen zonder interactie of weer te geven informatie.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">import</span> com<span style="color: #000066; font-weight: bold;">.</span>nocreativity<span style="color: #000066; font-weight: bold;">.</span>playr<span style="color: #000066; font-weight: bold;">.*;</span>
<span style="color: #6699cc; font-weight: bold;">var</span> myPlayer<span style="color: #000066; font-weight: bold;">:</span>Playr = <span style="color: #0033ff; font-weight: bold;">new</span> Playr<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>autoPlay=<span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>loadPlaylist<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;playlist.xml&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></pre></div></div>

<p>Maximaal</p>
<p>Je wilt een volwaardige music player maken, met alles erop en eraan.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">import</span> com<span style="color: #000066; font-weight: bold;">.</span>nocreativity<span style="color: #000066; font-weight: bold;">.</span>playr<span style="color: #000066; font-weight: bold;">.*;</span>
<span style="color: #6699cc; font-weight: bold;">var</span> myPlayer<span style="color: #000066; font-weight: bold;">:</span>Playr = <span style="color: #0033ff; font-weight: bold;">new</span> Playr<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>autoPlay=<span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>repeat = <span style="color: #0033ff; font-weight: bold;">false</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">volume</span> = <span style="color: #000000; font-weight:bold;">100</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>shuffle = <span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>loadPlaylist<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;playlist.xml&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>registerPlayButton<span style="color: #000000;">&#40;</span>btnPlay<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>registerStopButton<span style="color: #000000;">&#40;</span>btnStop<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>registerPauseButton<span style="color: #000000;">&#40;</span>btnPause<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>registerNextButton<span style="color: #000000;">&#40;</span>btnNext<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>registerPreviousButton<span style="color: #000000;">&#40;</span>btnPrevious<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>registerMuteButton<span style="color: #000000;">&#40;</span>btnMute<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>ID3SourceEnabled =<span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
myPlayer<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span>PlayrEvent<span style="color: #000066; font-weight: bold;">.</span>SONGINFO<span style="color: #000066; font-weight: bold;">,</span>infoHandler<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span>PlayrEvent<span style="color: #000066; font-weight: bold;">.</span>SONG_PROGRESS<span style="color: #000066; font-weight: bold;">,</span>songprogressHandler<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span>PlayrEvent<span style="color: #000066; font-weight: bold;">.</span>LOAD_PROGRESS<span style="color: #000066; font-weight: bold;">,</span>loadprogressHandler<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #339966; font-weight: bold;">function</span> songprogressHandler<span style="color: #000000;">&#40;</span>e<span style="color: #000066; font-weight: bold;">:</span>PlayrEvent<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000000;">&#123;</span>
txtSongProgress<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">text</span> = <span style="color: #990000;">&quot;Time elapsed: &quot;</span> <span style="color: #000066; font-weight: bold;">+</span>  myPlayer<span style="color: #000066; font-weight: bold;">.</span>trackProgress<span style="color: #000066; font-weight: bold;">;</span>
<span style="color: #000000;">&#125;</span>
<span style="color: #339966; font-weight: bold;">function</span> loadprogressHandler<span style="color: #000000;">&#40;</span>e<span style="color: #000066; font-weight: bold;">:</span>PlayrEvent<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000000;">&#123;</span>
txtLoadProgress<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">text</span> = <span style="color: #990000;">&quot;Load progress: &quot;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #000066; font-weight: bold;">+</span> e<span style="color: #000066; font-weight: bold;">.</span>loadprogress<span style="color: #000066; font-weight: bold;">;</span>
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #339966; font-weight: bold;">function</span> infoHandler<span style="color: #000000;">&#40;</span>e<span style="color: #000066; font-weight: bold;">:</span>PlayrEvent<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000000;">&#123;</span>
txtTrackInfo<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">text</span> = myPlayer<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">artist</span> <span style="color: #000066; font-weight: bold;">+</span> <span style="color: #990000;">&quot; - &quot;</span> <span style="color: #000066; font-weight: bold;">+</span> myPlayer<span style="color: #000066; font-weight: bold;">.</span>trackName<span style="color: #000066; font-weight: bold;">;</span>
<span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span>myPlayer<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">album</span> <span style="color: #000066; font-weight: bold;">!</span>= <span style="color: #990000;">&quot;&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
txtTrackInfo<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">appendText</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot; (&quot;</span><span style="color: #000066; font-weight: bold;">+</span>myPlayer<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">album</span><span style="color: #000066; font-weight: bold;">+</span><span style="color: #990000;">&quot;)&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
<span style="color: #000000;">&#125;</span>
txtTrackInfo<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">appendText</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot; | &quot;</span> <span style="color: #000066; font-weight: bold;">+</span> myPlayer<span style="color: #000066; font-weight: bold;">.</span>trackDuration<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<h3>Playlist.xml?</h3>
<p>Hoe deze noemt maakt in feite niet echt veel uit, zolang de inhoud volgens <a href="http://nocreativity.com/Playr/playlist.xml">deze structuur</a> is.<br />
Betekenis van de verschillende nodes:</p>
<ul>
<li>Artist: Naam van de artiest</li>
<li>Title: Naam van het liedje</li>
<li>TotalTime: Totale duur van het liedje in seconden</li>
<li>Filename: bestandspad naar de af te spelen MP3 file. (absoluut of relatief).</li>
</ul>
<h3>Documentatie over Playr?</h3>
<p>Deze is er en kun je <a href="http://nocreativity.com/Playr/docs/" target="_blank">hier</a> vinden.</p>
<h3>Download</h3>
<p>Download de Playr class <a href="http://nocreativity.com/Playr/Playr-1.0.zip" target="_blank">hier</a>.</p>
<h3>Feedback &amp; Suggesties</h3>
<p>Heb je vragen, of zijn er onduidelijkheden? Schiet maar raak, ik bijt niet!<br />
Zijn er onvolmaaktheden, of heb je dat geniale extra dat deze klasse nog tekort heeft? Laat mij het weten, en ik zal er zeker naar kijken.<br />
Gebruik je deze  class en ben je er tevreden mee? Ik hoor het graag. Laat ook zien in welk(e) project(en) je de class inzet!</p>
<p>Veel plezier!</p>
<p><img src="http://creativecommons.nl/wp-content/themes/ccnl/img/licenses/BY-SA.png" border="0" alt="Naamsvermelding &amp; Gelijk delen" width="69" height="32" /> <span style="font-size: 11px">Ik release de Playr class en de PlayrEvent class onder de <a href="http://creativecommons.org/licenses/by-sa/3.0/nl/legalcode"title="Naams vermelding &amp; gelijk delen"  target="_blank">Creative Commons</a> license. Dat wil zeggen dat je alles in deze classes mag aanpassen zolang je er een verwijzing naar de originele auteur ( ik dus <img src='http://nocreativity.com/blog-engine/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ) in laat staan, en je deze classes met dezelfde rechten verder verdeeld.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://nocreativity.com/blog/playr-de-actionscript-3-music-player-class/feed</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Adobe OnAIR in Brussel: Kom jij?</title>
		<link>http://nocreativity.com/blog/adobe-onair-in-brussel-kom-jij</link>
		<comments>http://nocreativity.com/blog/adobe-onair-in-brussel-kom-jij#comments</comments>
		<pubDate>Thu, 13 Mar 2008 01:33:40 +0000</pubDate>
		<dc:creator>Ronny</dc:creator>
				<category><![CDATA[Everything else]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Events]]></category>

		<guid isPermaLink="false">http://nocreativity.com/blog/adobe-onair-in-brussel-kom-jij</guid>
		<description><![CDATA[Adobe OnAIR komt naar Europa (zoals de meesten ondertussen al weten). Toch nog even een oproep naar de Belgen: Kom op 7 april naar deze gratis event in Brussel waar je Mike Chambers, Kevin Hoyt, Danny Dura, Andrew Shorten, Oliver Goldman, Andre Charland, Lee Brimelow, Serge Jespers, Peter Elst en Nicolas Lierman kunt ontmoeten! Het [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://nocreativity.com/blog-engine/wp-content/uploads/2008/03/onairtoureuropetrain.png" alt="onAIR Eurotrain" align="left" />Adobe OnAIR komt naar Europa (zoals de meesten ondertussen al weten). Toch nog even een oproep naar de Belgen: Kom op 7 april naar deze gratis event in Brussel waar je <a href="http://www.mikechambers.com/blog/" target="_blank" target="_blank">Mike Chambers</a>, <a href="http://blog.kevinhoyt.org/" target="_blank" target="_blank">Kevin Hoyt</a>, <a href="http://www.danieldura.com/" target="_blank" target="_blank">Danny Dura</a>, <a href="http://www.ashorten.com/" target="_blank" target="_blank">Andrew Shorten</a>, <a href="http://blogs.adobe.com/simplicity" target="_blank" target="_blank">Oliver Goldman</a>, <a href="http://blogs.nitobi.com/andre/" target="_blank" target="_blank">Andre Charland</a>, <a href="http://www.theflashblog.com/" target="_blank" target="_blank">Lee Brimelow</a>, <a href="http://www.webkitchen.be" target="_blank" target="_blank">Serge Jespers</a>, <a href="http://www.peterelst.com/" target="_blank" target="_blank">Peter Elst</a> en <a href="http://www.aboutnico.be/" target="_blank" target="_blank">Nicolas Lierman</a>  kunt ontmoeten!</p>
<p>Het <a href="http://onair.adobe.com/schedule/cities/brussels.php" target="_blank" target="_blank">volledige programma</a> ziet er best interessant uit, dus waarom niet komen?</p>
<p>Wil jij ook komen? <a href="https://www28.cplan.com/pls/pg_adobe/c203_reg.user_info" target="_blank" target="_blank">Registratie</a> is verplicht, kosten zijn er geen <img src='http://nocreativity.com/blog-engine/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Ik zal er alvast zijn!</p>
]]></content:encoded>
			<wfw:commentRss>http://nocreativity.com/blog/adobe-onair-in-brussel-kom-jij/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe AIR goes live</title>
		<link>http://nocreativity.com/blog/adobe-air-goes-live</link>
		<comments>http://nocreativity.com/blog/adobe-air-goes-live#comments</comments>
		<pubDate>Mon, 25 Feb 2008 15:49:11 +0000</pubDate>
		<dc:creator>Ronny</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://nocreativity.com/blog/adobe-air-goes-live</guid>
		<description><![CDATA[Na meer dan 1 jaar is het eindelijk zover: Adobe Integrated Runtime verlaat zijn beta fase, en is zomee officieel gereleased. Dat is goed nieuws voor de RIA developers onder ons. Want vanaf nu kunnen we dus echte applicaties maken met de kennis die we hebben vanuit onze webdevelopment ervaringen. En het kost niets! Cooler [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://nocreativity.com/blog-engine/wp-content/uploads/2008/02/air_icon_special.jpg" alt="Adobe AIR Logo" align="left" />Na meer dan 1 jaar is het eindelijk zover: <a href="http://www.adobe.com/products/air/" target="_blank" target="_blank">Adobe Integrated Runtime</a> verlaat zijn beta fase, en is zomee officieel gereleased.</p>
<p>Dat is goed nieuws voor de RIA developers onder ons. Want vanaf nu kunnen we dus echte applicaties maken met de kennis die we hebben vanuit onze webdevelopment ervaringen. En het kost niets! Cooler nog: het is crossplatform!</p>
<p><strong>Wat is Adobe AIR?</strong></p>
<p>Adobe Integrated Runtime is een  runtime omgeving  die het mogelijk maakt voor RIA developers om met hun gekende technologieën zoals Flash, Flex of HTML/Javascript interactieve applicaties te maken die rechtstreeks op je computer draaien, en toch meteen in contact staan met online applicaties zoals <a href="http://www.twitter.com" target="_blank" target="_blank">Twitter</a>, <a href="http://www.ebay.com" target="_blank" target="_blank">eBay</a>, <a href="http://www.pownce.com" target="_blank">Pownce</a>, of <a href="http://www.mtv.com/" target="_blank" target="_blank">MTV</a>.</p>
<p>AIR biedt een rijke API voor bestaande developers die toegang geeft tot de verschillende mogelijkheden van de computer zoals bijvoorbeeld het bestandssysteem zodat je met een kleine AIR app makkelijk een bestand kunt openen, bewerken, opslaan, of zelfs uploaden. Zo zijn er talrijke mogelijkheden.</p>
<p><strong>Waarom Adobe AIR?<br />
</strong>Menig software developer zal hier natuurlijk scheef naar kijken, en zich afvragen: &#8220;Waarom zou ik Adobe AIR gebruiken als ik VB.net of C# heb?&#8221;</p>
<p>Het antwoord is simpel:</p>
<ul>
<li><strong>AIR is flexibel! </strong><br />
Wil je een applicatie schrijven die gebaseerd is op Flash, of op HTML en Javascript? Het maakt niet uit. AIR apps kunnen met beiden gebouwd worden.</li>
<li><strong>AIR laat jou kiezen!<br />
</strong>Ben jij altijd al fan geweest van de Flash IDE? Of gaat het ontwikkelen sneller in Flex Builder? Of ligt Flash jou niet zo, en ben je meer een HTML/Javascript developer in Dreamweaver? AIR beperkt jou workflow niet: Je kunt AIR apps ontwikkelen en releasen vanuit zowel <a href="http://www.adobe.com/products/air/develop/flash/" target="_blank" target="_blank">Flash</a>, <a href="http://www.adobe.com/products/air/develop/flex/" target="_blank">Flex Builder</a>, en <a href="http://www.adobe.com/products/air/develop/ajax/" target="_blank" target="_blank">Dreamweaver</a>.</li>
<li><strong>AIR is vooruitstrevend!<br />
</strong>Tegenwoordig is het onmogelijk om &#8216;Windows-only&#8217; of &#8216;Linux-only&#8217; te denken. Met de hedendaagse ontwikkeling moet je gewoon met alle platformen rekening houden. Adobe AIR doet dat voor jou! Jij maakt gewoon jouw applicatie in de omgeving naar keuze, en compiled een &#8216;AIR&#8217; file, die in de runtime van zowel Mac OSX als Windows alsook Linux*.</li>
<li><strong>AIR is free!</strong> <span style="font-size: 8px;">(Klink best grappig, he? <img src='http://nocreativity.com/blog-engine/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  )</span><br />
Applicaties ontwerpen in AIR kost jou niets! Als je over Flash, Flex of Dreamweaver beschikt kun je gewoon aan de slag! Waar je voor Visual Studio veel geld moet betalen om applicaties te kunnen maken, moet je voor AIR gewoon een gratis update (voor <a href="http://www.adobe.com/products/air/develop/flash/" target="_blank" target="_blank">Flash</a>, <a href="http://www.adobe.com/products/air/develop/flex/" target="_blank">Flex Builder</a>, of <a href="http://www.adobe.com/products/air/develop/ajax/" target="_blank" target="_blank">Dreamweaver</a> ) downloaden van de Adobe site. Je betaalt niets, en je kunt zooooveel meer en je moet er niets voor bijleren! Je huidige kennis en je huidige tools zijn alles wat je nodig hebt!</li>
</ul>
<p>Ik herinner me Adobe Live van vorig jaar nog, waar Greg Rewis regelmatig op het podium stond te roepen: &#8216;Is that cool?!&#8217;.<br />
Ik heb hier maar 1 antwoord voor: This <strong>is</strong> cool!</p>
<p><strong>Update</strong>: Ward heeft me attent gemaakt op het feit dat er Express versies zijn van Visual Studio die gratis te verkrijgen zijn en het mogelijk maken om gratis software te ontwikkelen binnen het Microsoft .NET framework.</p>
<p><span style="font-size: 8px;">* De Adobe Integrated Runtime is op het moment van dit schrijven nog niet gereleased, maar Adobe belooft om hier zo snel mogelijk verandering in te brengen. In Adobe we trust <img src='http://nocreativity.com/blog-engine/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </span></p>
]]></content:encoded>
			<wfw:commentRss>http://nocreativity.com/blog/adobe-air-goes-live/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Open-source MP3 Player Class: MusicPlayer (Beta release)</title>
		<link>http://nocreativity.com/blog/open-source-mp3-player-class-musicplayer-beta-release</link>
		<comments>http://nocreativity.com/blog/open-source-mp3-player-class-musicplayer-beta-release#comments</comments>
		<pubDate>Sun, 30 Dec 2007 00:45:35 +0000</pubDate>
		<dc:creator>Ronny</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[MP3]]></category>
		<category><![CDATA[MusicPlayer]]></category>
		<category><![CDATA[Playr]]></category>

		<guid isPermaLink="false">http://nocreativity.com/blog/open-source-mp3-player-class-musicplayer-beta-release</guid>
		<description><![CDATA[Update: Er is een nieuwe versie van deze klasse die je hier kan vinden. De download van deze versie heb ik verwijderd om die reden. Na lang wachten heb ik vandaag eindelijk al mijn ditjes en datjes in mijn MusicPlayer class kunnen afwerken. De player beschikt nu over de volgende properties: Autoplay Playlist laden (XML) [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update:</strong> <em>Er is <a href="http://nocreativity.com/blog/playr-20-is-here">een nieuwe versie</a> van deze klasse die je hier kan vinden. De download van deze versie heb ik verwijderd om die reden.</em></p>
<p>Na lang wachten heb ik vandaag eindelijk al mijn ditjes en datjes in mijn MusicPlayer class kunnen afwerken.</p>
<p>De player beschikt nu over de volgende properties:</p>
<ul>
<li>Autoplay</li>
<li>Playlist laden (<a href="http://nocreativity.com/MusicPlayer/playlist.xml"title="Bekijk een voorbeeld van de playlist.xml" >XML</a>)</li>
<li>De buttonacties instellen</li>
<li> 2 progress events (Vooruitgang van inladen van de track, alsook de vooruitgang van de track zelf)</li>
<li>Enkele track inladen</li>
<li>Repeat</li>
<li>ID3 ondersteuning</li>
</ul>
<p>Wat nog op het programma staat:</p>
<ul>
<li>Shuffle</li>
<li>Visualisatie module</li>
</ul>
<p>Er zijn een aantal wijzigingen in de class gebeurd, waardoor je waarschijnlijk je code zult moeten aanpassen in je huidige projecten. Zo is de import regel iets gewijzigd, gezien de MusicPlayer class zijn eigen events nodig heeft (PlayerEvents). Ik heb de hiërarchie dan ook ietje gewijzigd zodat je geen meerdere imports moet uitvoeren.</p>
<p>De code ziet er voortaan zo uit:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">import</span> com<span style="color: #000066; font-weight: bold;">.</span>nocreativity<span style="color: #000066; font-weight: bold;">.</span>playr<span style="color: #000066; font-weight: bold;">.*;</span>
<span style="color: #6699cc; font-weight: bold;">var</span> myPlayer<span style="color: #000066; font-weight: bold;">:</span>Playr = <span style="color: #0033ff; font-weight: bold;">new</span> Playr<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>autoPlay=<span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>repeat = <span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">volume</span> = <span style="color: #000000; font-weight:bold;">100</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>loadPlaylist<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;playlist.xml&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>registerPlayButton<span style="color: #000000;">&#40;</span>btnPlay<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>registerStopButton<span style="color: #000000;">&#40;</span>btnStop<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>registerPauseButton<span style="color: #000000;">&#40;</span>btnPause<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>registerNextButton<span style="color: #000000;">&#40;</span>btnNext<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>registerPreviousButton<span style="color: #000000;">&#40;</span>btnPrevious<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>registerMuteButton<span style="color: #000000;">&#40;</span>btnMute<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span>ID3SourceEnabled =<span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
myPlayer<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span>PlayerEvent<span style="color: #000066; font-weight: bold;">.</span>SONGINFO<span style="color: #000066; font-weight: bold;">,</span>infoHandler<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span>PlayerEvent<span style="color: #000066; font-weight: bold;">.</span>SONG_PROGRESS<span style="color: #000066; font-weight: bold;">,</span>songprogressHandler<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
myPlayer<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span>PlayerEvent<span style="color: #000066; font-weight: bold;">.</span>LOAD_PROGRESS<span style="color: #000066; font-weight: bold;">,</span>loadprogressHandler<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #339966; font-weight: bold;">function</span> songprogressHandler<span style="color: #000000;">&#40;</span>e<span style="color: #000066; font-weight: bold;">:</span>PlayerEvent<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000000;">&#123;</span>
txtSongProgress<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">text</span> = <span style="color: #990000;">&quot;song progress: &quot;</span> <span style="color: #000066; font-weight: bold;">+</span> e<span style="color: #000066; font-weight: bold;">.</span>songprogress<span style="color: #000066; font-weight: bold;">;</span>
<span style="color: #000000;">&#125;</span>
<span style="color: #339966; font-weight: bold;">function</span> loadprogressHandler<span style="color: #000000;">&#40;</span>e<span style="color: #000066; font-weight: bold;">:</span>PlayerEvent<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000000;">&#123;</span>
txtLoadProgress<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">text</span> = <span style="color: #990000;">&quot;load progress: &quot;</span> <span style="color: #000066; font-weight: bold;">+</span> e<span style="color: #000066; font-weight: bold;">.</span>loadprogress<span style="color: #000066; font-weight: bold;">;</span>
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #339966; font-weight: bold;">function</span> infoHandler<span style="color: #000000;">&#40;</span>e<span style="color: #000066; font-weight: bold;">:</span>PlayerEvent<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000000;">&#123;</span>
txtTrackInfo<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">text</span> = myPlayer<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">artist</span><span style="color: #000066; font-weight: bold;">;</span>
txtTrackInfo<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">appendText</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot; - &quot;</span> <span style="color: #000066; font-weight: bold;">+</span> myPlayer<span style="color: #000066; font-weight: bold;">.</span>trackName<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
txtTrackInfo<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">appendText</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot; (&quot;</span> <span style="color: #000066; font-weight: bold;">+</span>myPlayer<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">album</span><span style="color: #000066; font-weight: bold;">+</span><span style="color: #990000;">&quot;)&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
txtTrackInfo<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">appendText</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot; | &quot;</span> <span style="color: #000066; font-weight: bold;">+</span> myPlayer<span style="color: #000066; font-weight: bold;">.</span>trackDuration<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>In het bovenstaande voorbeeld is ook de <em>ID3SourceEnabled</em> gebruikt: deze boolean laat je kiezen of je de ID3tag van je MP3 bestanden wilt gebruiken als bron voor de artist, album en trackName eigenschappen. Als je deze waarde op <em>true</em> zet wordt de <em>artist</em>, <em>album</em> en <em>title</em> tag uit je XML bestand genegeerd, en kun je je XML bestand dus gewoon korter maken. Zet je dit op <em>false</em> wordt je XML bestand als bron van deze eigenschappen gebruikt. Dus als je ID3tags niet naar behoren zijn ingevuld is dit een secundaire oplossing.</p>
<p>Ook de XML heeft een kleine wijziging ondergaan: Er is een nieuwe tag bijgekomen (totalTime): de totale tijd (in seconden) die het betreffende liedje duurt. Dus in geval van een track van 3 minuten en 28 seconden komt dat op 208 (3*60+28) uit. Deze waarde moet handmatig ingegeven worden. Het kan ook via ID3tag maar is precies omslachtig&#8230; Als iemand de gouden tip heeft is dit welkom.</p>
<h3>Download:</h3>
<p style="padding: 10px 10px 10px 20px; background-color: #dfffff">De huidige versie kun je <a href="http://nocreativity.com/MusicPlayer/MusicPlayer_1.0_Beta_1.zip"title="Download de zip met de class bestanden" >hier</a> downloaden.<br />
Een voorbeeld hoe de XML er moet uitzien staat <a href="http://nocreativity.com/MusicPlayer/playlist.xml"title="Bekijk een voorbeeld van de playlist.xml" >hier</a>.<br />
Een voorbeeld kun je <a href="http://nocreativity.com/MusicPlayer/voorbeeld.zip"title="Download een voorbeeld van het gebruik van de MusicPlayer class" >hier</a> downloaden.<br />
De documentatie heb ik nog niet geupdate, maar dat komt er zo snel mogelijk aan.</p>
<p><img src="http://creativecommons.nl/wp-content/themes/ccnl/img/licenses/BY-SA.png" border="0" alt="Naamsvermelding &amp; Gelijk delen" width="69" height="32" /> <span style="font-size: 10px">Ik release de MusicPlayer class en de PlayerEvent class onder de <a href="http://creativecommons.org/licenses/by-sa/3.0/nl/legalcode"title="Naams vermelding &amp; gelijk delen"  target="_blank">Creative Commons</a> license. Dat wil zeggen dat je alles in deze classes mag aanpassen zolang je er een verwijzing naar de originele auteur ( ik dus <img src='http://nocreativity.com/blog-engine/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ) in laat staan, en je deze classes met dezelfde rechten verder verdeeld.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://nocreativity.com/blog/open-source-mp3-player-class-musicplayer-beta-release/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

