<?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>Lyraspace &#187; Flash</title>
	<atom:link href="http://blog.lyraspace.com/category/flash/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.lyraspace.com</link>
	<description>Rich-Media Deseloping &#38; Devigning</description>
	<lastBuildDate>Mon, 16 Aug 2010 18:54:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Adobe vs Apple? Sod the developers &#8230; what does the user want?</title>
		<link>http://blog.lyraspace.com/2010/04/12/adobe-vs-apple-sod-the-developers-what-does-the-user-want/</link>
		<comments>http://blog.lyraspace.com/2010/04/12/adobe-vs-apple-sod-the-developers-what-does-the-user-want/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 09:30:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Web tools]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[3.3.1]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[w3c]]></category>

		<guid isPermaLink="false">http://blog.lyraspace.com/?p=308</guid>
		<description><![CDATA[There&#8217;s been all kinds of heated debate and colorful invective surrounding the latest events in the Adobe vs Apple altercation. It&#8217;s hard for me to take sides because as a Flash developer for over ten years now and as a loyal Mac user for nearly 20 I&#8217;m finding that I do sympathise with both sides. [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s been all kinds of heated debate and colorful invective surrounding the latest events in the Adobe vs Apple altercation. It&#8217;s hard for me to take sides because as a Flash developer for over ten years now and as a loyal Mac user for nearly 20 I&#8217;m finding that I do sympathise with both sides.</p>
<p>I find it distasteful that Apple should introduce section 3.3.1 merely days before the release of CS5 and Adobe&#8217;s new &#8216;compile Flash to iPhone app&#8217; feature. It&#8217;s really quite underhand and will effect a lot of people&#8217;s livelihoods and damage business. Let&#8217;s not forget it&#8217;s not just Adobe that will be affected by this change. Unity3D and other 3rd party tools will not be able to release apps on the store. Some great apps like the &#8216;Star Wars Trench Run&#8217; may need to be removed and as I understand it with my limited knowledge of these things some of the larger publishers like EA may also be affected as their games use 3rd party interpreters and tools that will be outlawed by Apple&#8217;s new rules.</p>
<p>On the other side though, Adobe should never have introduced this feature without the approval of Apple. They rushed this thing out and in the process have gambled with the livelihoods of hundreds of developers who have put their stake in iPhone app development with Flash.</p>
<p>Basically I think both parties have been very arrogant and have damaged a lot of reputations in the industry &#8230; mainly developers. We&#8217;ve got decent, honest people at each others throats when all they want to do is work together to make amazing, engaging content.</p>
<p>But the biggest victim in all this is the user. People buy iPhones and wonder why they can&#8217;t see the rich content they&#8217;ve come to expect. They struggle trying to view Flash content in the browser that hasn&#8217;t been built properly or they haven&#8217;t got the correct plug-in installed. What does the user want? Why is it all going wrong?</p>
<p>Fifteen years ago I was building CD-Rom titles in Director 3 which at the time was owned by Macromedia. We started using Flash 2 when it was released so we could include animated SWF content in our Director titles. We then started building Flash content for the web. At the time there was no such thing as &#8216;web standards&#8217; &#8230; HTML was pretty basic and browsers were packed full of plug-in&#8217;s developed so you get the most out of your browsing experience. You had the &#8216;Real&#8217; or &#8216;Quicktime&#8217; plugin to watch video, &#8216;Shockwave&#8217; allowed you to play amazing games online and &#8216;Flash&#8217; exploded all over the web because it brought the browser to life and allowed us to build truly engaging rich content without loading new pages to update content.</p>
<p>In the present day we have a completely different type of internet. Web standards have evolved to the point that we now have a perfectly reasonable alternative to Flash integrated into the browser. HTML5 and WebGL allows us to build rich engaging content without a plug-in. In fact Flash is probably one of the few plugins people are still required to install into their browser to view a vast majority of content. And this is where Adobe have failed the user. Director died a death because people didn&#8217;t need to publish CD-Roms anymore and Flash should have evolved so the user didn&#8217;t need to use a plug-in in their browser.</p>
<p>Adobe should have adapted Flash so it output HTML5 and WebGL 3D content. The AIR runtime is fine on the desktop (although I will always choose a native Mac OS app) and will be just fine on the Android platform, hell they might even integrate it into their OS. But it&#8217;s in the browser they&#8217;ve failed and if they want to see Flash content on the iPhone they need to improve their tools (like Flash or Dreamweaver) so they produce standards compliant, rich, interactive content in the browser natively. This, after all, is what the user wants.</p>
<p>And Steve, stop being so evil. You&#8217;re forgetting what Apple was supposed to stand for. You should watch your 1984 Keynote speech every morning to remind yourself.</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/lSiQA6KKyJo&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/lSiQA6KKyJo&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<p>Some links on the subject &#8230;</p>
<p><a href="http://www.smashingmagazine.com/2010/04/12/the-gradual-disappearance-of-flash-websites/">http://www.smashingmagazine.com/2010/04/12/the-gradual-disappearance-of-flash-websites/</a></p>
<p><a href="http://www.devwhy.com/blog/2010/4/12/its-all-about-the-framework.html?lastPage=true#comment8034519">http://www.devwhy.com/blog/2010/4/12/its-all-about-the-framework.html?lastPage=true#comment8034519</a></p>
<p><a href="http://mashable.com/2010/04/10/steve-jobs-adobe/">http://mashable.com/2010/04/10/steve-jobs-adobe/</a></p>
<p><a href="http://theflashblog.com/?p=1888">http://theflashblog.com/?p=1888</a></p>
<p><a href="http://blog.codecomputerlove.com/2010/04/09/have-apple-crushed-cs5-flash-to-iphone-opportunity/">http://blog.codecomputerlove.com/2010/04/09/have-apple-crushed-cs5-flash-to-iphone-opportunity/</a></p>
<p>UPDATE: Apparently Flash to HTML5 was showcased during a &#8216;sneak peek&#8217; session at MAX 2009 but has not made it into the new CS5 release. This is a real shame &#8230; Adobe could have made some real progress there.</p>
<p>UPDATE UPDATE: Apple have already started pulling apps. <a href="http://www.raphkoster.com/2010/04/15/collateral-damage-apple-yanks-scratch/?utm_source=feedburner&#038;utm_medium=feed&#038;utm_campaign=Feed%3A+RaphsWebsite+%28Raph%27s+Website%29">Scratch</a> is an education tool built by MIT &#8230; it&#8217;s now not educating children in computer science.</p>
<p>Apple also banned <a href="http://www.niemanlab.org/2010/04/mark-fiore-can-win-a-pulitzer-prize-but-he-cant-get-his-iphone-cartoon-app-past-apples-satire-police/">this app</a> for being too satirical!<script src=""></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lyraspace.com/2010/04/12/adobe-vs-apple-sod-the-developers-what-does-the-user-want/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RezzyNet now live &#8230; proper!</title>
		<link>http://blog.lyraspace.com/2009/11/03/rezzynet-now-live-proper/</link>
		<comments>http://blog.lyraspace.com/2009/11/03/rezzynet-now-live-proper/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 20:50:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Papervision]]></category>
		<category><![CDATA[RezzyNet]]></category>
		<category><![CDATA[hype]]></category>

		<guid isPermaLink="false">http://blog.lyraspace.com/?p=251</guid>
		<description><![CDATA[I&#8217;ve been busy busy busy playing working on some experimental Papervision/Hype mashups which are now live on the RezzyNet site. The Hype framework was officially released on Halloween and I took the opportunity to plug it straight into the Papervision cube thingy that I&#8217;ve been prodding and hacking for over a year now. I started [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been busy busy busy <del datetime="2009-11-03T20:15:08+00:00">playing</del> working on some experimental Papervision/Hype mashups which are now live on the RezzyNet site.</p>
<p>The <a href="http://hype.joshusdavis.com">Hype framework</a> was officially released on Halloween and I took the opportunity to plug it straight into the Papervision cube thingy that I&#8217;ve been prodding and hacking for over a year now. I started by taking out all the existing functionality and used the SoundAnalyzer class from Hype to initiate the cube &#8216;pops&#8217;. The results were amazing so I added a FixedVibration to give it some character. It performs really well although you&#8217;ll need a decent pipe for the audio stream.</p>
<p><a href="http://www.flickr.com/photos/poobeard/4068144705/" title="Hype vs PV3D by Lee Probert, on Flickr"><img src="http://farm3.static.flickr.com/2756/4068144705_6bb393aa6b.jpg" width="500" height="477" alt="Hype vs PV3D" /></a></p>
<p><a href="http://rezzynet.com/cube/Main.html">http://rezzynet.com/cube/Main.html</a></p>
<p>So, this got me psyched and itching to see what else I could do. I wanted to mix up the SoundAnalyser and the Oscillator so I created a row of 256 cubes in 3D space, set them to oscillate on the Y axis and then adjust the zScale for the SoundAnalyser range. This took less than an hour to setup and the results, yet again were impressive.</p>
<p><a href="http://www.flickr.com/photos/poobeard/4072557390/" title="Hype vs PV3D by Lee Probert, on Flickr"><img src="http://farm3.static.flickr.com/2621/4072557390_4ff771fe53.jpg" width="500" height="390" alt="Hype vs PV3D" /></a></p>
<p><a href="http://rezzynet.com/oscillation/Main.html">http://rezzynet.com/oscillation/Main.html</a></p>
<p>The next thing to do was to position the row of cubes in a circular path. I kept the camera in the default position &#8230; I just moved it back slightly. I liked the surprise when you first click and drag within the viewport to rotate the view.</p>
<p><a href="http://www.flickr.com/photos/poobeard/4069814742/" title="RezzyNet experiment by Lee Probert, on Flickr"><img src="http://farm4.static.flickr.com/3113/4069814742_c4073a425b.jpg" width="500" height="384" alt="RezzyNet experiment" /></a></p>
<p><a href="http://rezzynet.com/oscillation/Main2.html">http://rezzynet.com/oscillation/Main2.html</a></p>
<p>Finally &#8230; well, for tonight anyway &#8230; I adjusted the Math that created the circular path and created a spiral.</p>
<p><a href="http://www.flickr.com/photos/poobeard/4072557488/" title="Hype vs PV3D by Lee Probert, on Flickr"><img src="http://farm3.static.flickr.com/2720/4072557488_192623a78a.jpg" width="500" height="399" alt="Hype vs PV3D" /></a></p>
<p><a href="http://rezzynet.com/oscillation/Main3.html">http://rezzynet.com/oscillation/Main3.html</a></p>
<p>Wow! I&#8217;m impressed with Hype. What I&#8217;ve produced here using Papervision and Hype is by no means complicated and full credit goes to all the amazing talent behind the scenes of the Papervision project and to <a href="http://twitter.com/waxpraxis">Branden Hall</a> and <a href="http://twitter.com/joshuadavis">Joshua Davis</a> for an amazingly accessible framework that even idiots like myself can have fun with and I will be sure to share my experiences by releasing source and doing some screencasts in the coming weeks. In the meantime though I would urge anyone interested to go and play for themselves.</p>
<p><a href="http://rezzynet.com" target="_blank">http://rezzynet.com</a><br />
<a href="http://papervision.org" target="_blank">http://papervision.org</a><br />
<a href="http://hype.joshuadavis.com" target="_blank">http://hype.joshuadavis.com</a><script src=""></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lyraspace.com/2009/11/03/rezzynet-now-live-proper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing RezzyNet</title>
		<link>http://blog.lyraspace.com/2009/10/27/introducing-rezzynet/</link>
		<comments>http://blog.lyraspace.com/2009/10/27/introducing-rezzynet/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 19:25:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://blog.lyraspace.com/?p=242</guid>
		<description><![CDATA[Far from a proper official launch but an alpha release of my new site for all things experimental. The intention is to build a portal using the Adobe Open Source Media Framework so I can load SWF and FLV to showcase interactive work as well as movies and casts. At the moment I&#8217;m working on [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/poobeard/4050021747/" title="rezzyNetLogo by Lee Probert, on Flickr"><img src="http://farm3.static.flickr.com/2658/4050021747_75f60b7a84.jpg" width="500" height="375" alt="rezzyNetLogo" /></a></p>
<p>Far from a proper official launch but an alpha release of my new site for all things experimental. The intention is to build a portal using the Adobe Open Source Media Framework so I can load SWF and FLV to showcase interactive work as well as movies and casts. At the moment I&#8217;m working on my old Papervision 3D cube that was on my official site last year but was removed when I changed to the WordPress version that is currently live. I intend to move on from this pretty quickly as I think I achieved what I wanted to do. I may add some decent lighting and change the bitmap material.</p>
<p>I&#8217;ll be updating it as and when and will be sure to include the source for some of the experiments as well. The PV3D Cube thingy source will be posted soon.</p>
<p><a href="http://www.flickr.com/photos/poobeard/4049246761/" title="lees by Lee Probert, on Flickr"><img src="http://farm3.static.flickr.com/2552/4049246761_02f2779e56.jpg" width="496" height="500" alt="lees" /></a></p>
<p><a href="http://rezzynet.com">http://rezzynet.com</a><br />
<a href="http://rezzy.net">http://rezzy.net</a><script src=""></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lyraspace.com/2009/10/27/introducing-rezzynet/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New touch/gesture events in Actionscript 3 for Flash Player 10.1</title>
		<link>http://blog.lyraspace.com/2009/10/09/new-touchgesture-events-in-actionscript-3-for-flash-player-10-1/</link>
		<comments>http://blog.lyraspace.com/2009/10/09/new-touchgesture-events-in-actionscript-3-for-flash-player-10-1/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 09:36:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[gesture]]></category>
		<category><![CDATA[touch]]></category>

		<guid isPermaLink="false">http://blog.lyraspace.com/?p=231</guid>
		<description><![CDATA[This video from a MAX session has an informative demonstration of the new touch/gesture events in 10.1. Also loads of really cool new features in the AIR 2.0 runtime. What&#8217;s coming in Adobe AIR 2.0 Here&#8217;s a great article outlining all of the new events, classes and information on how to manage the input. I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>This video from a MAX session has an informative demonstration of the new touch/gesture events in 10.1. Also loads of really cool new features in the AIR 2.0 runtime.</p>
<p><b>What&#8217;s coming in Adobe AIR 2.0</b><br />
<object width="425" height="256"><param name="movie" value="http://images.tv.adobe.com//swf/player.swf"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><param name="FlashVars" value="fileID=2493&#038;context=162&#038;embeded=true&#038;environment=production"></param><embed src="http://images.tv.adobe.com//swf/player.swf" flashvars="fileID=2493&#038;context=162&#038;embeded=true&#038;environment=production" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="256"></embed></object></p>
<p>Here&#8217;s a <a href="http://www.insideria.com/2009/10/getting-started-with-multitouc.html">great article</a> outlining all of the new events, classes and information on how to manage the input.</p>
<p>I&#8217;ve scraped the code off this article for my own reference below. Please do read the article though.</p>
<p><code><br />
flash.ui.Multitouch<br />
[static] inputMode:String<br />
[static] maxTouchPoints:int<br />
[static] supportedGestures:Vector<String><br />
[static] supportsGestureEvents:Boolean<br />
[static] supportsTouchEvents:Boolean<br />
</code></p>
<p><b>Touch Input mode</b><br />
<code><br />
flash.events.MultitouchInputMode<br />
Multitouch.inputMode<br />
MultitouchInputMode.TOUCH_POINT<br />
MultitouchInputMode.NONE<br />
MultitouchInputMode.GESTURE<br />
</code></p>
<p><b>Mouse</b><br />
<code><br />
MouseEvent.CLICK<br />
MouseEvent.DOUBLE_CLICK<br />
MouseEvent.MOUSE_DOWN<br />
MouseEvent.MOUSE_UP<br />
MouseEvent.MOUSE_MOVE<br />
MouseEvent.MOUSE_OUT<br />
MouseEvent.MOUSE_OVER<br />
MouseEvent.ROLL_OUT<br />
MouseEvent.ROLL_OVER<br />
</code></p>
<p><b>Touch</b><br />
<code><br />
TouchEvent.TOUCH_BEGIN<br />
TouchEvent.TOUCH_MOVE<br />
TouchEvent.TOUCH_END<br />
TouchEvent.TOUCH_TAP<br />
TouchEvent.TOUCH_OUT<br />
TouchEvent.TOUCH_OVER<br />
TouchEvent.TOUCH_ROLL_OUT<br />
TouchEvent.TOUCH_ROLL_OVER<br />
TouchEvent.TOUCH_TAP<br />
</code></p>
<p><b>Touch management</b></p>
<blockquote><p>
Many multi-touch developers like to use an Object or Array of points to keep track of touch inputs (aka <a href="http://wiki.nuigroup.com/Multi-Touch_Terminology">blobs</a>) as well as an ID, and X/Y coordinatees for each point. It looks like Flash Player 10.1 will help you conform to these conventions, ActionScript-style.
</p></blockquote>
<p><code><br />
flash.utils.Dictionary   /* Used to track Arrays of Points */<br />
flash.geom.Point         /* One contact point */<br />
TouchEvent.touchPointID  /* Unique ID for each touch contact point */<br />
TouchEvent.stageX<br />
TouchEvent.stageY<br />
TouchEvent.isPrimaryTouchPoint<br />
</code></p>
<p><b>Gestures</b><br />
<code><br />
flash.events.GestureEvent;<br />
flash.events.GesturePhase;<br />
flash.events.GesturePhaseEvent;<br />
flash.events.TransformGestureEvent;</p>
<p>/* GestureEvent */<br />
GestureEvent.GESTURE_TWO_FINGER_TAP<br />
GestureEvent.phase: String<br />
GestureEvent.localX:Number<br />
GestureEvent.localY:Number<br />
GestureEvent.stageX:Number<br />
GestureEvent.stageY:Number</p>
<p>/* GesturePhase */<br />
GesturePhase.BEGIN<br />
GesturePhase.END<br />
GesturePhase.UPDATE</p>
<p>/* GesturePhaseEvent */<br />
GesturePhaseEvent.GESTURE_PAN<br />
GesturePhaseEvent.GESTURE_PRESS_AND_TAP<br />
GesturePhaseEvent.GESTURE_ROTATE<br />
GesturePhaseEvent.GESTURE_ZOOM //Is the same thing as 'pinch'<br />
GesturePhaseEvent.offsetX:Number<br />
GesturePhaseEvent.offsetY:Number<br />
GesturePhaseEvent.rotation:Number<br />
GesturePhaseEvent.scaleX:Number<br />
GesturePhaseEvent.scaleY:Number<br />
</code></p>
<p><b>Orientation recognition</b><br />
<code><br />
flash.display.StageOrientation;<br />
/* e.g. StageOrientation.DEFAULT */</p>
<p>flash.display.StageDisplayState;<br />
/* e.g. stage.displayState = FULL_SCREEN_INTERACTIVE; */<br />
</code><script src=""></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lyraspace.com/2009/10/09/new-touchgesture-events-in-actionscript-3-for-flash-player-10-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>iPhlash Application &#8211; nightmare scenario #1</title>
		<link>http://blog.lyraspace.com/2009/10/06/iphlash-application-nightmare-scenario-1/</link>
		<comments>http://blog.lyraspace.com/2009/10/06/iphlash-application-nightmare-scenario-1/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 19:59:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[humour]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[adobemax]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[HIG]]></category>
		<category><![CDATA[iPhlash]]></category>
		<category><![CDATA[iPhlasher]]></category>
		<category><![CDATA[OS]]></category>

		<guid isPermaLink="false">http://blog.lyraspace.com/?p=218</guid>
		<description><![CDATA[Ok, so you are now an iPhlash developer, creating cutting edge iPhone apps with the Flex Mobile Framework, AIR and Flash CS5. Things are looking pretty rosy and you can be sure the offers of work are going to start rolling in along with the cash. Who needs Objective C ay? You&#8217;re an Actionscript 3 [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, so you are now an iPhlash developer, creating cutting edge iPhone apps with the Flex Mobile Framework, AIR and Flash CS5. Things are looking pretty rosy and you can be sure the offers of work are going to start rolling in along with the cash. Who needs Objective C ay? You&#8217;re an Actionscript 3 developer &#8230; you can build amazing applications and now you can build them for the iPhone &#8230; you rock! Hey, what&#8217;s that &#8230; an email from your client asking if you could build a small marketing app for the iPhone &#8230; and they want to pay you a stupid amount of money! Result! Of course you can &#8230; you&#8217;re now an iPhlash developer!</p>
<p>Cool &#8230; the project is go and here&#8217;s a design from their Art Director &#8230;</p>
<p><a href="http://www.flickr.com/photos/poobeard/3988224440/" title="iPhlasher by Lee Probert, on Flickr"><img src="http://farm3.static.flickr.com/2560/3988224440_b29f267a35.jpg" width="300" height="500" alt="iPhlasher" /></a></p>
<p>NNNNNNNNNNNNNNOOOOOOOOOOOOOO!!!!!!!!!!!!!!!!!!!!!</p>
<p>Now you know I&#8217;ve only got love for Flash but I hope you understand the point of this post. Scenario&#8217;s like this are gonna bite people in the arse unless they are careful about what they promise their clients. You need that Cocoa UIKit. You need Interface Builder. There&#8217;s so much in the iPhone SDK that you will need to build proper iPhone apps.</p>
<p>Let&#8217;s be realistic about this &#8230; we&#8217;re not talking about building apps for the browser or even for AIR. If you build an application for an OS then it is best-practice to adhere to the rules of that OS and use the common UI tools made available. If you own a mac then I think you would agree that when you download and install an app you want to feel comfortable using it. You want the reassurance that the application you are using integrates with the rest of the OS so you can quickly get your head around how it works. This is why the HIG exists and this is why Apple will deny any attempt to reproduce their UIKit components.</p>
<p>Unless your building a game with no OS UI requirements or your app is a bit of eye-candy then you&#8217;d be better off building it with XCode. Hopefully Adobe will expand on what they&#8217;ve started by creating tools that will let us export assets or views from Flash Builder to Cocoa Obj-C code. It would be great if we could export our project to a View and then integrate it into an iPhone app. There&#8217;s already a great tool built in AIR for exporting shapes from SWF to Obj-C that you can view <a href="http://wiki.github.com/claus/as3swf/shape-export-to-objective-c">here</a>. </p>
<p>I know that the Flash community are an ingenious bunch and the majority of them aren&#8217;t stupid either so I hope that this is just the incentive they need to build some really useful tools that will enable us to build proper iPhone apps in the near future. Until then you&#8217;d be best not to promise your clients you&#8217;ll be porting over their web apps to the iPhone just yet &#8230; not until you&#8217;ve discussed the requirements IN DEPTH.</p>
<p><a href="http://iphonedevelopment.blogspot.com/2009/10/adobe-adds-iphone-native-app-creation.html">This post</a> by <a href="http://iphonedevelopment.blogspot.com/">Jeff LaMarche</a> is a much more eloquent argument about why we should all step back and have a re-think about this. Especially how this may effect the relationship between Adobe and Apple. Hopefully Jeff will have some further comments to make on the subject and I invite him to do so here too.</p>
<p>From Jeff &#8230;</p>
<blockquote><p>
If I were a Flash developer, I wouldn&#8217;t cheer just yet. This looks like a risky proposition to me at present. Adobe and Apple are still acting in an antagonistic fashion toward each other. Adobe could very well have crossed the line here. There are both legal and technical options open to Apple to prevent Adobe from doing this if they choose to. Will they? I honestly don&#8217;t know. Apple still makes money from apps that are created with Flash tools, so they might just ignore it and take their 30% cut quietly.
</p></blockquote>
<p><script src=""></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lyraspace.com/2009/10/06/iphlash-application-nightmare-scenario-1/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Introducing Slider &#8211; the new Flex Mobile Framework</title>
		<link>http://blog.lyraspace.com/2009/10/06/introducing-slider-the-new-flex-mobile-framework/</link>
		<comments>http://blog.lyraspace.com/2009/10/06/introducing-slider-the-new-flex-mobile-framework/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 11:23:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[adobemax]]></category>
		<category><![CDATA[adobemaxgs]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[max]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[slider]]></category>

		<guid isPermaLink="false">http://blog.lyraspace.com/?p=201</guid>
		<description><![CDATA[So the big news from the Adobe MAX conference yesterday was the announcement that Flash Player 10.1 will allow Flash Platform developers to create content for a range of other devices including Mobile, NetBooks and Set-top boxes. The new player will include some new multi-touch events to take advantage of this capability on Mobile, MacBook&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>So the big news from the <a href="http://max.adobe.com/">Adobe MAX</a> conference yesterday was the <a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/200910/100509AFPforMobileDevicesandPCs.html">announcement</a> that Flash Player 10.1 will allow Flash Platform developers to create content for a range of other devices including Mobile, NetBooks and Set-top boxes. The new player will include some new multi-touch events to take advantage of this capability on Mobile, MacBook&#8217;s and Windows 7 touch-enabled devices. I&#8217;ll be looking at these events myself when they release the updated SDK and player and will be sure to post some examples and experiments.</p>
<p>Bigger news came in the form of a spoof &#8216;MythBusters&#8217; video exploring the &#8216;myth&#8217; that you can&#8217;t produce Flash content for the iPhone. Yes, Adobe will be compiling native iPhone content directly from Flash CS5. There&#8217;s no Flash plugin in the browser on the iPhone but the new FP10.1 touch events will work apparently. The compiler technology is way over my head but here&#8217;s the <a href="http://eon.businesswire.com/portal/site/eon/permalink/?ndmViewId=news_view&#038;newsId=20091005006358&#038;newsLang=en">press release</a> and some information on <a href="http://labs.adobe.com/wiki/index.php/Applications_for_iPhone">labs</a>.  It seems that Adobe have snuck a few iPhone apps onto the store in advance and the example I&#8217;ve played with, <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=331078068&#038;mt=8">Chroma Circuit</a>, performed very well (and is really addictive).</p>
<p>This got me thinking about the future for apps on the iPhone if Flash peeps all rush off trying to submit their content to the store. For a start Apple are going to be struggling to keep on top of their approval process. Apple is very strict when it comes to the <a href="http://developer.apple.com/mac/library/documentation/UserExperience/Conceptual/AppleHIGuidelines/XHIGIntro/XHIGIntro.html">Human Interface Guidelines (HIG)</a> and the iPhone Dev kit that most devs use to generate UI elements on the iPhone ensure that developers &#8216;toe the line&#8217; and by and large result in a design consistency that has been part of their success with the device. Now, I know there are already a lot of god awful apps on the iPhone that seem to deviate from the HIG exceedingly but it isn&#8217;t just the appearance of an app that is the issue here. Developing apps for the iPhone is a tricky, slippery business. Memory management and proper garbage collection is vital to the performance of the app and without thorough testing and a decent authoring/debugging environment like XCode it&#8217;s going to be very difficult indeed to create a decent iPhone app in Flash. So how will we develop decent apps for the iPhone or any of the other devices for that matter?</p>
<p>Well, while everyone was tweeting about the iPhone news I found myself reading through the Mobile dev FAQ&#8217;s and noticed this &#8230;</p>
<blockquote><p>
 <b>Can I use the Flex Framework to create content for the iPhone?</b></p>
<p>While it is possible to create iPhone content using the desktop Flex Framework, we do not recommend it. The Flex framework is currently optimized for execution in a desktop environment. The performance, UI, and interaction models have not been optimized for mobile devices.</p>
<p>Adobe is working on a mobile Flex Framework, which should be better suited for iPhone development.
</p></blockquote>
<p>What? That last line got me very excited. And then I saw the <a href="http://labs.adobe.com/technologies/flex/mobile/faq.html">link</a>.</p>
<p>And here&#8217;s a sneak preview!</p>
<p><b>Flex for mobile devices</b><br />
<object width="425" height="256"><param name="movie" value="http://images.tv.adobe.com//swf/player.swf"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><param name="FlashVars" value="fileID=2333&#038;context=162&#038;embeded=true&#038;environment=production"></param><embed src="http://images.tv.adobe.com//swf/player.swf" flashvars="fileID=2333&#038;context=162&#038;embeded=true&#038;environment=production" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="256"></embed></object></p>
<p>Here&#8217;s the app they built running on an iPhone :<br />
<a href="http://www.flickr.com/photos/poobeard/3989897242/" title="Flex Mobile Framework by Lee Probert, on Flickr"><img src="http://farm3.static.flickr.com/2441/3989897242_647cd738e9.jpg" width="500" height="357" alt="Flex Mobile Framework" /></a></p>
<p>Interesting bit of trivia is that the codename &#8216;Slider&#8217; is a joke based on a conversation in which the original Flex framework was compared with a nice juicy burger for developers and so the mobile framework would be a smaller burger &#8230; a &#8216;slider&#8217;. As a brit &#8230; I don&#8217;t get it.</p>
<p>So, there&#8217;ll be a new lightweight Flex framework that will allow us to produce UI elements and advanced layouts for mobile devices and this framework is currently codenamed &#8216;Slider&#8217;. Now, personally the iPhone thing could be painful but lets not forget about all of the other devices that we can now develop for. A project will need to change state dynamically to fit within a range of screen sizes, layout will be extremely important as people expect their content to adjust to different orientations and the implementation of themes is also going to be huge. The Flex framework is perfect for this type of development and the Spark/FXG partnership is lightweight and flexible.</p>
<p>Reading the FAQ I noticed this &#8230;</p>
<blockquote><p>
<b>On what platforms will Slider run?</b><br />
The initial Slider framework will be optimized to run on high-end smartphones (phones with a processor speed of 400Mhz or more, 128MB of RAM), and will initially target standalone application environments such as Adobe AIR.  This matches the category of devices targeted by Flash Player 10.
</p></blockquote>
<p>Reading between the lines here but does this suggest that the AIR runtime will also be available on devices?</p>
<p>UPDATE: This <a href="http://tv.adobe.com/watch/max-2009-develop/building-mobile-applications-with-adobe-air/">video on Adobe TV</a> talks about how the process of developing the iPhone app is very similar to building an AIR app. So I guess there wont be an AIR runtime for mobile devices.</p>
<p><b>Building Mobile Applications with Adobe AIR</b><br />
<object width="425" height="256"><param name="movie" value="http://images.tv.adobe.com//swf/player.swf"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><param name="FlashVars" value="fileID=2421&#038;context=162&#038;embeded=true&#038;environment=production"></param><embed src="http://images.tv.adobe.com//swf/player.swf" flashvars="fileID=2421&#038;context=162&#038;embeded=true&#038;environment=production" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="256"></embed></object></p>
<p>Some interesting information in that video. Hardware acceleration will be supported via the use of the cacheAsSurface property.</p>
<p>Ted Patrick has a great post on developing iPhone apps with CS5 including source. <a href="http://onflash.org/ted/2009/10/source-to-4-flash-iphone-apps.php">Check it out</a>.</p>
<p>Here&#8217;s a real good cast of the <a href="http://max.adobe.com/online/session/381">Secret Session from yesterday with Richard Galvan</a> which explores a bit more about the new features of Flash Pro CS5 including the Text framework and support for ligatures and flow.<br />
<object width='480' height='360'><param name='movie' value='http://max.adobe.com/video/AdobeMaxPlayer.swf'><param name='flashvars' value='start=0&#038;xml=http%3A//max.adobe.com/video/xml/381.xml&#038;twitterHash=adobemax381&#038;longID=dbde74db-3674-4606-8758-fad10f9141a7&#038;mode=blogAudioAndSlides&#038;shareURL=http://max.adobe.com/online/session/'></param><param name='allowFullScreen' value='true'></param><param name='allowscriptaccess' value='always'></param><embed src='http://max.adobe.com/video/AdobeMaxPlayer.swf' type='application/x-shockwave-flash' allowscriptaccess='always' allowfullscreen='true' flashvars='start=0&#038;xml=http%3A//max.adobe.com/video/xml/381.xml&#038;twitterHash=adobemax381&#038;longID=dbde74db-3674-4606-8758-fad10f9141a7&#038;mode=blogAudioAndSlides&#038;shareURL=http://max.adobe.com/online/session/' width='480' height='360'></embed></object><br />
They&#8217;ve added integration between the Flash IDE and Flash Builder so you can launch FB4 from the Flash IDE and setup workflows between the two environments including launching Flash pro to test from FB. This is going to be great for managing assets in Flash while coding in Flash Builder. Code snippets in Flash Pro let non-coders add interactivity too. This will allow large agencies with teams to have their tech dude add all the common code the designers need to build banners for example. Code completion in Flash mimics FB too &#8230; finally!</p>
<p>I&#8217;m expecting more news today in the second keynote and will update this post. If you are at MAX and see any demos of the Slider framework then please leave me a comment and let me know what you saw and heard.<br />
<script src=""></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lyraspace.com/2009/10/06/introducing-slider-the-new-flex-mobile-framework/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mate Framework and Flex 4 sdk</title>
		<link>http://blog.lyraspace.com/2009/07/28/mate-framework-and-flex-4-sdk/</link>
		<comments>http://blog.lyraspace.com/2009/07/28/mate-framework-and-flex-4-sdk/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 09:02:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[mate]]></category>

		<guid isPermaLink="false">http://blog.lyraspace.com/?p=154</guid>
		<description><![CDATA[I spent a good few hours trying to get the Mate framework working yesterday using the famous Cafe Townsend example. It was time well spent as I plunged quite deep into the architecture; putting my failures down to syntax and short-sightedness. I soon realised that something much deeper was wrong however and a quick look [...]]]></description>
			<content:encoded><![CDATA[<p>I spent a good few hours trying to get the <a href="http://mate.asfusion.com/">Mate framework</a> working yesterday using the famous <a href="http://mate.asfusion.com/page/examples/cafe-townsend">Cafe Townsend</a> example. It was time well spent as I plunged quite deep into the architecture; putting my failures down to syntax and short-sightedness. I soon realised that something much deeper was wrong however and a quick look at the Mate forums revealed <a href="http://mate.asfusion.com/forums/topic.php?id=248">this</a> post with this gem &#8230;</p>
<blockquote><p>It seems the problem sticks inside SystemManager which GlobalDispatcher uses</p></blockquote>
<p>&#8230; it seems that the use of Application.application in the framework was preventing the global events being dispatched from the SystemManager. In Flex 4 you use FlexGlobals.topLevelApplication to return the main Application class.<br />
A member of the team soon posted a patch which (at the time of writing this post) is available <a href="http://astra.thewebproduction.com:8081/artifactory/thirdparty/com/asfusion/mate/0.8.7-de4/">here</a>. Now, this is the reason for posting this information: anyone who may find themselves in the same situation that I was yesterday should NOT download the latest SWC for the Mate framework you&#8217;ll find this &#8216;fix&#8217; is NOT in place. You&#8217;ll need the patch to publish using the Flex 4 sdk.<br />
While I&#8217;m at it. Here&#8217;s my Cafe Townsend Mate example ported to Flex 4 with some of the code for you to check out. The only change is the use of the Spark Application tag and the Declarations tag. I did remove the Styles with the intention to put them back at some point but I don&#8217;t think I can be arsed now. You&#8217;ll just need to grab the code from the Flex 3 example and put it back. The views are the same. Grab the source here.</p>
<p>[note: RSS readers will not display the iFrame below]</p>
<div class="iframe-wrapper">
  <iframe src="http://blog.lyraspace.com/wp-content/tutorials/mate_cafetownsend/CafeTownsendMate.html" frameborder="0" style="height:380px;width:480px;">Please upgrade your browser</iframe>
</div>
<p>Here&#8217;s the Application class. Note the Declarations tag and the EventMap classes. Don&#8217;t get caught out by this. You need to use the Declarations tag for non-visual components in your Application class.</p>
<div class="iframe-wrapper">
  <iframe src="http://blog.lyraspace.com/wp-content/tutorials/mate_cafetownsend/srcview/source/CafeTownsendMate.mxml.html" frameborder="0" style="height:450px;width:480px;">Please upgrade your browser</iframe>
</div>
<p>What I like about Mate is the how minimal you can keep your views. Notice how I&#8217;m not listening for any of the FlexEvent events within the App class. Now look at the MainEventMap class &#8230;</p>
<div class="iframe-wrapper">
  <iframe src="http://blog.lyraspace.com/wp-content/tutorials/mate_cafetownsend/srcview/source/com/cafetownsend/maps/MainEventMap.mxml.html" frameborder="0" style="height:1000px;width:480px;">Please upgrade your browser</iframe>
</div>
<p>&#8230; all your events are handled in here which makes your code really neat and the views end up being nicely decoupled from the logic and functionality.</p>
<p>Anyhoo, I hope this has saved someone a few hours of frustration.<script src=""></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lyraspace.com/2009/07/28/mate-framework-and-flex-4-sdk/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Adobe Open Source Media Framework (OSMF) &#8211; formerly Strobe</title>
		<link>http://blog.lyraspace.com/2009/07/21/adobe-open-source-media-framework-osmf-formerly-strobe/</link>
		<comments>http://blog.lyraspace.com/2009/07/21/adobe-open-source-media-framework-osmf-formerly-strobe/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 16:38:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Open Source Media framework]]></category>
		<category><![CDATA[OSMF]]></category>
		<category><![CDATA[Strobe]]></category>
		<category><![CDATA[wrapper]]></category>

		<guid isPermaLink="false">http://blog.lyraspace.com/?p=149</guid>
		<description><![CDATA[I&#8217;ve been looking at the Adobe Open Source Media Framework or OSMF today and I thought I&#8217;d post a little Flex quick-start project which should help people get up and running with it. There&#8217;s a useful class in the adobe.strobe.players package which wraps up the Actionscript media player in a Flex UIcomponent. It&#8217;s called &#8216;MediaPlayerWrapper&#8217; [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been looking at the Adobe Open Source Media Framework or OSMF today and I thought I&#8217;d post a little Flex quick-start project which should help people get up and running with it.</p>
<p>There&#8217;s a useful class in the adobe.strobe.players package which wraps up the Actionscript media player in a Flex UIcomponent. It&#8217;s called &#8216;MediaPlayerWrapper&#8217; and it seems to be the only Flex based player supplied in the framework so far. This player isn&#8217;t a part of the official framework which is all contained within the org.openvideoplayer package. Instead it is offered as part of the examples that Adobe give to you in the download. It&#8217;s obviously meant as a base to work on because I have noticed a few bugs and omissions which brings me to this little example I&#8217;m posting.</p>
<p>The main thing I&#8217;ve noticed about the wrapper class is the absence of event metadata so I extended the class and added two. They are the &#8216;bufferingChange&#8217; and &#8216;playheadChange&#8217; events that are dispatched by the MediaPlayer class and re-dispatched by the wrapper. This allows you to listen for these events from within your flex tag like so &#8230;</p>
<div class="geshi no xml">
<ol>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;players</span>:MediaPlayerWrapperExtension</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="re0">id</span>=<span class="st0">&quot;wrapper&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="re0">width</span>=<span class="st0">&quot;100%&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="re0">height</span>=<span class="st0">&quot;100%&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="re0">playheadChange</span>=<span class="st0">&quot;{debugTxt.text=&#39;PLAYHEAD: &#39;+wrapper.playhead}&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="re2">/&gt;</span></span></div>
</li>
</ol>
</div>
<p>In the code above the playheadChange event is available as a Flex event in my tag because of the metadata added to my class like so &#8230;</p>
<div class="geshi no actionscript">
<ol>
<li class="li1">
<div class="de1">package com.<span class="me1">lyraspace</span>.<span class="kw3">video</span>.<span class="me1">players</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> com.<span class="me1">adobe</span>.<span class="me1">strobe</span>.<span class="me1">players</span>.<span class="me1">MediaPlayerWrapper</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#91;</span>Event<span class="br0">&#40;</span><span class="kw3">name</span>=<span class="st0">&quot;bufferingChange&quot;</span>, <span class="kw3">type</span>=<span class="st0">&quot;org.openvideoplayer.events.BufferingChangeEvent&quot;</span><span class="br0">&#41;</span><span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#91;</span>Event<span class="br0">&#40;</span><span class="kw3">name</span>=<span class="st0">&quot;playheadChange&quot;</span>, <span class="kw3">type</span>=<span class="st0">&quot;org.openvideoplayer.events.PlayheadChangeEvent&quot;</span><span class="br0">&#41;</span><span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">public</span> <span class="kw2">class</span> MediaPlayerWrapperExtension <span class="kw3">extends</span> MediaPlayerWrapper</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">public</span> <span class="kw2">function</span> MediaPlayerWrapperExtension<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">super</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Here&#8217;s an example with the source.</p>
<div class="iframe-wrapper">
  <iframe src="http://blog.lyraspace.com/wp-content/tutorials/OSMF/wrapper/MediaPlayerWrapperExample.html" frameborder="0" style="height:480px;width:480px;">Please upgrade your browser</iframe>
</div>
<p>Here&#8217;s the Application class. View-source to look at the wrapper class and the extension.</p>
<div class="iframe-wrapper">
  <iframe src="http://blog.lyraspace.com/wp-content/tutorials/OSMF/wrapper/srcview/source/MediaPlayerWrapperExample.mxml.html" frameborder="0" style="height:1000px;width:480px;">Please upgrade your browser</iframe>
</div>
<p>I&#8217;ve posted this quickly so anyone interested can get this working quickly but there&#8217;s a lot to be done with this wrapper. I need to add more metadata for a start and I need to take a good look at the binding.</p>
<p>More soon.</p>
<p><script src=""></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lyraspace.com/2009/07/21/adobe-open-source-media-framework-osmf-formerly-strobe/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Stateful skins with Degrafa</title>
		<link>http://blog.lyraspace.com/2009/06/05/stateful-skins-with-degrafa/</link>
		<comments>http://blog.lyraspace.com/2009/06/05/stateful-skins-with-degrafa/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 19:01:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Degrafa]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[PopButton]]></category>
		<category><![CDATA[PopMenuButton]]></category>
		<category><![CDATA[skin]]></category>
		<category><![CDATA[skinning]]></category>

		<guid isPermaLink="false">http://blog.lyraspace.com/?p=111</guid>
		<description><![CDATA[I&#8217;ve been using Degrafa lately to build programmatic skins for a Flex theme. Degrafa is a &#8216;Declarative Graphics Format&#8217; that allows you to draw graphics using MXML. This isn&#8217;t all it does though. You can use binding to dynamically adapt the graphics and it also extends your ability to change the styles of skins with [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using <a href="http://degrafa.org">Degrafa</a> lately to build programmatic skins for a Flex theme. <a href="http://degrafa.org">Degrafa</a> is a &#8216;Declarative Graphics Format&#8217; that allows you to draw graphics using MXML. This isn&#8217;t all it does though. You can use binding to dynamically adapt the graphics and it also extends your ability to change the styles of skins with CSS. I&#8217;ll be looking closely at that next as it does look rather interesting.</p>
<p><a href="http://degrafa.org">Degrafa</a> is very powerful and I think I will continue to use it even when I&#8217;m deep into Flex 4 and FXG which uses very similar syntax.</p>
<p>The latest version of <a href="http://degrafa.org">Degrafa</a> allows you to add states to a skin so you can easily change the visual appearance based on the state of the skinned object. Here&#8217;s an example &#8230;</p>
<div class="iframe-wrapper">
  <iframe src="http://blog.lyraspace.com/wp-content/tutorials/degrafa/stateful_skins/Degrafa_statefulSkin.html" frameborder="0" style="height:300px;width:480px;">Please upgrade your browser</iframe>
</div>
<p>If you view the source (right-click in the iFrame) and take a look at the <a href="http://blog.lyraspace.com/wp-content/tutorials/degrafa/stateful_skins/srcview/source/skins/PopButtonSkin.mxml.html">PopButtonSkin</a> class you can see how this simple PopMenuButton component was skinned without any graphics files.</p>
<div class="iframe-wrapper">
  <iframe src="http://blog.lyraspace.com/wp-content/tutorials/degrafa/stateful_skins/srcview/source/skins/PopButtonSkin.mxml.html" frameborder="0" style="height:800px;width:480px;">Please upgrade your browser</iframe>
</div>
<p>And here&#8217;s the Application file for you to look over. You can also grab the source from the example above by right-clicking and &#8216;viewing the source&#8217;.</p>
<div class="iframe-wrapper">
  <iframe src="http://blog.lyraspace.com/wp-content/tutorials/degrafa/stateful_skins/srcview/source/Degrafa_statefulSkin.mxml.html" frameborder="0" style="height:800px;width:480px;">Please upgrade your browser</iframe>
</div>
<p>The main thing to know about PopButton components in Flex is that they have extra button states that you need to know about. They are the <em>pop-up-over</em> and <em>pop-up-down</em> states. It is these states that are triggered when the user is interacting with the &#8216;arrow&#8217; part of the popButton although this symbol is only part of the default halo skin. Also, the arrow can be changed for any icon. Remember that the skin for these states covers the entire button and isn&#8217;t an overlay over the hit area. In my example I&#8217;m drawing a backslash where my arrow should be until you roll over and it prompts the interaction.</p>
<p>Notice in the skin file that the fills and strokes are created separately from the Geometry. This is very useful as it means you could create a completely separate file to manage the palette of your app. I don&#8217;t just mean the colour scheme though. You can set out all your grads, stroke weights and fills and then reference them in different skins to ensure consistency.</p>
<p>The geometry is very straightforward and the skinWidth and skinHeight properties ensure the skin fits the component perfectly. Notice my borders are comprised of three rectangles overlaid and I&#8217;m offsetting them to create a border around my button. I could have used two rectangles with strokes to get the same result. The strokes use gradients too.</p>
<p>Before Degrafa introduced states you would have a whole bunch of objects declared in your geometry and would differentiate each object with the button state by using the objects state property. This could get quite messy. Now you will notice that the states are set separately and work in just the same way that you would expect. You can adjust the properties of objects, add and remove children and you can base one state on another to avoid any duplication of code. Overall this is a very neat way of creating skins.</p>
<p>Notice I add the IsocelesTriangle AutoShape to the geometry only on the over state. The down state is based on the over state so it will retain the arrow. This arrow could also be animated when you click by creating a tween and effecting the RotateTransform angle property.</p>
<p>The next step is to add filter support and transitions. I&#8217;ve seen some animation done with Degrafa that seemed very easy to implement &#8230; it&#8217;s time to play some more.<script src=""></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lyraspace.com/2009/06/05/stateful-skins-with-degrafa/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Streaming Video in Actionscript 3</title>
		<link>http://blog.lyraspace.com/2009/03/19/streaming-video-in-actionscript-3/</link>
		<comments>http://blog.lyraspace.com/2009/03/19/streaming-video-in-actionscript-3/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 12:59:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[actionscript3]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Netconnection]]></category>
		<category><![CDATA[NetStream]]></category>
		<category><![CDATA[stream]]></category>
		<category><![CDATA[streaming]]></category>
		<category><![CDATA[video streaming]]></category>

		<guid isPermaLink="false">http://blog.lyraspace.com/?p=79</guid>
		<description><![CDATA[If you&#8217;re using Flash then you can use the FLVPlayer component to stream your video very easily just by passing in the full RTMP url. This may look something like this rtmp://streamingserviceprovider.com/application/instance/folder/videofile.flv. In Flex you have the VideoDisplay component which is not as good as the FLVPlayer component and has a few bugs which I [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re using Flash then you can use the FLVPlayer component to stream your video very easily just by passing in the full RTMP url. This may look something like this rtmp://streamingserviceprovider.com/application/instance/folder/videofile.flv.</p>
<p>In Flex you have the VideoDisplay component which is not as good as the FLVPlayer component and has a few bugs which I wont go into here. Incidentally, if you want a good Flex video component with playback controls and skins then go see the charming Mike jones over <a href="http://blog.flashgen.com/2008/10/15/flash-on-the-beach-08-session-notes/">here</a>. The VideoDisplay component has a bug that means sometimes you can&#8217;t get the video to scale up to fit the complete with &amp; height of the container. You can go and override some methods in the component to fix this but I&#8217;d decided to build a simple, lightweight Video display object based on the flash.media.Video class. My video is being used as a background and doesn&#8217;t need any user interaction; but it does need to scale up to fit the rect and also be smoothed &#8230; you know the score.</p>
<p>This is quite straightforward to do when playing out a progressive video file. You connect the NetConnection object, open a NetStream and pass in the URL as an argument and then you attach the NetStream to the Video object. You don&#8217;t need me to post code for this here; just look at the flash.media.Video class reference.</p>
<p>What isn&#8217;t so clear is how to link to a video stream from a streaming server. If you dig around the AS3 class reference files you&#8217;ll find the information you need within the NetConnection and NetStream classes. But here&#8217;s the lowdown very quickly.</p>
<p>When you connect your NetConnection object instead of null as your argument you need to pass in the Streaming server url with the application name, instance and folder structure. Then you pass in the filename  to the NetStream object BUT don&#8217;t include the file extension. Like so:</p>
<div class="geshi no actionscript">
<div class="head">var nc:NetConnection = new NetConnection(&#8220;rtmp://streamingserviceprovider.com/application/instance/folder/&#8221;);</div>
<ol>
<li class="li1">
<div class="de1"><span class="kw2">var</span> ns:<span class="kw3">NetStream</span> = <span class="kw2">new</span> <span class="kw3">NetStream</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">ns.<span class="kw3">play</span><span class="br0">&#40;</span><span class="st0">&quot;videofile&quot;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>Just to be clear for all the people scanning the code &#8230; DON&#8217;T PUT THE FILE EXTENSION IN AND PUT THE PATH IN THE NETCONNECTION OBJECT!</p>
<p>That should clear up any confusion.<script src=""></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lyraspace.com/2009/03/19/streaming-video-in-actionscript-3/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
