<?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>Blog.BitTube.com &#187; Flash for PSP</title>
	<atom:link href="http://blog.bittube.com/category/development/flash-for-psp/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.bittube.com</link>
	<description>flash examples and development for the web, PSP Flash Player, Mobile flash lite player. All mixed up with some random thoughts, photos, images and poetic words</description>
	<lastBuildDate>Mon, 01 Feb 2010 13:58:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>RIA + OSP = RAA &#124;&#124; REA &amp;&amp; And how to detect an Open Screen Device</title>
		<link>http://blog.bittube.com/2008/05/06/ria-osp-raa-rea-and-how-to-detect-an-open-screen/</link>
		<comments>http://blog.bittube.com/2008/05/06/ria-osp-raa-rea-and-how-to-detect-an-open-screen/#comments</comments>
		<pubDate>Tue, 06 May 2008 18:45:27 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 1]]></category>
		<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[ActionScript General]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[BitTube Work]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Lite]]></category>
		<category><![CDATA[Flash for PSP]]></category>
		<category><![CDATA[FlashCast]]></category>
		<category><![CDATA[FlashLite 1]]></category>
		<category><![CDATA[FlashLite 2]]></category>
		<category><![CDATA[FlashLite 3]]></category>
		<category><![CDATA[Mobile Development]]></category>
		<category><![CDATA[Mobile Devices]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Convergence]]></category>
		<category><![CDATA[FlashLite]]></category>
		<category><![CDATA[Open Screen Project]]></category>
		<category><![CDATA[OSP]]></category>
		<category><![CDATA[RAA]]></category>
		<category><![CDATA[REA]]></category>
		<category><![CDATA[Rich Anywhere Applications]]></category>
		<category><![CDATA[Rich Everywhere Application]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/?p=277</guid>
		<description><![CDATA[Keeping with the algebraic/code functions as titles from my Last post I thought I would put some thoughts down regarding the news from Adobe earlier this week of their Open Screen Project (OSP). Anyone working in the Web/Internet industry at the moment will be well aware of the Rich Internet/Interactive Application (RIA) moniker. What Adobe [...]]]></description>
			<content:encoded><![CDATA[<p>Keeping with the algebraic/code functions as titles from my Last post I thought I would put some thoughts down regarding the news from Adobe earlier this week of their Open Screen Project (OSP). Anyone working in the Web/Internet industry at the moment will be well aware of the Rich Internet/Interactive Application (RIA) moniker. What Adobe is committing to is much larger though this is about true cross platform convergence. Its about Rich Anywhere Applications (RAA) or Rich Everywhere Applications (REA) if you will. You see what I did there <img src='http://blog.bittube.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  .</p>
<p>Interestingly this is a concept I began to scratched the surface of with my presentation at Flash On the Beach Last Year, and over the last few months has been a subject I have continued to keep close to hand both in my day job and my personal development projects. At the moment the Flash Player Fragmentation offers a considerable challenge to any developer wanting to design and or develop for multiple devices and multiple screens.</p>
<p>Articles like the one posted over at <a href="http://www.adobe.com/devnet/devices/articles/dynamic_layout.html">ADC on adaptive screen layouts</a> offer a great foot up. But before we get to visual display we need to know what player version we are targeting. And to do that, we have to hit the time machine button and roll back all the way to Flash 4.....</p>
<p><span id="more-277"></span></p>
<p>The Following code should be exported as a Flash 4 ActionScript 1 .swf. This will ensure it can run on the broadest client base. The resultant .swf acts a cross platform redirect that should work within both stand alone and browser based flash clients. Once the .swf loads it will identify the player variation and then redirect the viewer to the appropriate content for there player platform by loading a replacement content swf at the main player level.</p>
<pre class="actionscript"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">/**</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">Declare flash platform player strings here. As more devices are discovered this list will grow, the strings are from the getVersion() function</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">*/</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// FlashLite 1.1 player platform string</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">FL1PLATFORM = <span style="color: #ff0000;">&quot;5.2&quot;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// FlashLite 2 or 3 player platform string</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">FL2PLATFORM = <span style="color: #ff0000;">&quot;FL &quot;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// psp Flash Player Platform string</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">PSPPLATFORM = <span style="color: #ff0000;">&quot;NF3&quot;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// Wii Player Platform String</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">WIIPLATFORM = <span style="color: #ff0000;">&quot;WII&quot;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// windows Flash Player Platform string</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">WINPLATFORM = <span style="color: #ff0000;">&quot;WIN&quot;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// mac Flash Player Platform string</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">MACPLATFORM = <span style="color: #ff0000;">&quot;MAC&quot;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">/**</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">Declare files names for flash files of different device configurations</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">NOTE! Include the full path name here</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">*/</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">flashLite1 = <span style="color: #ff0000;">&quot;fl_fl1.swf&quot;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">flashLite2 = <span style="color: #ff0000;">&quot;fl_fl2.swf&quot;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">flashLite3 = <span style="color: #ff0000;">&quot;fl_fl3.swf&quot;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">flash6PSP = <span style="color: #ff0000;">&quot;flash6PSP.swf&quot;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">flash7WII = <span style="color: #ff0000;">&quot;flash7WII.swf&quot;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">flashFull8 = <span style="color: #ff0000;">&quot;FullFlash8.swf&quot;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">flashFull9 = <span style="color: #ff0000;">&quot;FullFlash9.swf&quot;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// get the player version</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">flashVersion = <span style="color: #0066CC;">getVersion</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// display full player information</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>flashVersion<span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// test for existence of player version for very early players</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>flashVersion == <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #66cc66;">&#41;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #808080; font-style: italic;">/*</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">	Player does not support $version so is VERY early Flash PLayer</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">	Decide how you wish to handle this case here</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">	*/</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// crop the player version to store the platform</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">playerPlatform = <span style="color: #0066CC;">substring</span><span style="color: #66cc66;">&#40;</span>flashVersion, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// Assign a player version for testing</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// playerPlatform = PSPPLATFORM;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// display platform information</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;playerPlatform&quot;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>playerPlatform<span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// use flashLite 1.1 file</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>playerPlatform <span style="color: #0066CC;">eq</span> FL1PLATFORM<span style="color: #66cc66;">&#41;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #808080; font-style: italic;">// launch a FlashLite 1.1 version of the file.</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Launch FlashLite 1.1 player version&quot;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #0066CC;">loadMovie</span><span style="color: #66cc66;">&#40;</span>flashLite1, <span style="color: #ff0000;">&quot;_level0&quot;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//+&quot;?stgWidth=&quot;+Stage.width+&quot;&amp;stgHeight=&quot;+Stage.height);</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #b1b100;">else</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>playerPlatform <span style="color: #0066CC;">eq</span> PSPPLATFORM<span style="color: #66cc66;">&#41;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #66cc66;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #808080; font-style: italic;">// launch a PSP or Flash 6 version of the file</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Launch PSP player version&quot;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #0066CC;">loadMovie</span><span style="color: #66cc66;">&#40;</span>flash6PSP, <span style="color: #ff0000;">&quot;_level0&quot;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//+&quot;?stgWidth=&quot;+Stage.width+&quot;&amp;stgHeight=&quot;+Stage.height);</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #66cc66;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>playerPlatform <span style="color: #0066CC;">eq</span> WIIPLATFORM<span style="color: #66cc66;">&#41;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #66cc66;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #808080; font-style: italic;">// launch a PSP or Flash 7 version of the file</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Launch WII player version&quot;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #0066CC;">loadMovie</span><span style="color: #66cc66;">&#40;</span>flash7WII, <span style="color: #ff0000;">&quot;_level0&quot;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//+&quot;?stgWidth=&quot;+Stage.width+&quot;&amp;stgHeight=&quot;+Stage.height);</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #66cc66;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>playerPlatform <span style="color: #0066CC;">eq</span> FL2PLATFORM<span style="color: #66cc66;">&#41;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #66cc66;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #808080; font-style: italic;">// grab the player version number for flash lite</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		playerVersion = <span style="color: #0066CC;">substring</span><span style="color: #66cc66;">&#40;</span>flashVersion, <span style="color: #cc66cc;">4</span>, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #808080; font-style: italic;">// display version information</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;playerVersion&quot;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>playerVersion<span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>playerVersion == <span style="color: #ff0000;">&quot;7&quot;</span><span style="color: #66cc66;">&#41;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #66cc66;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			<span style="color: #808080; font-style: italic;">// launch a FlashLite 2 version of the file.</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Launch FlashLite 2 player version&quot;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			<span style="color: #0066CC;">loadMovie</span><span style="color: #66cc66;">&#40;</span>flashLite2, <span style="color: #ff0000;">&quot;_level0&quot;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//+&quot;?stgWidth=&quot;+Stage.width+&quot;&amp;stgHeight=&quot;+Stage.height);</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #66cc66;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>playerVersion <span style="color: #0066CC;">eq</span> <span style="color: #ff0000;">&quot;8&quot;</span><span style="color: #66cc66;">&#41;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #66cc66;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			<span style="color: #808080; font-style: italic;">// launch a FlashLite version of the file.</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Launch FlashLite 3 player version&quot;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			<span style="color: #0066CC;">loadMovie</span><span style="color: #66cc66;">&#40;</span>flashLite3, <span style="color: #ff0000;">&quot;_level0&quot;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//+&quot;?stgWidth=&quot;+Stage.width+&quot;&amp;stgHeight=&quot;+Stage.height);</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #66cc66;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #66cc66;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>playerPlatform <span style="color: #0066CC;">eq</span> WINPLATFORM<span style="color: #66cc66;">&#41;</span> || <span style="color: #66cc66;">&#40;</span>playerPlatform <span style="color: #0066CC;">eq</span> MACPLATFORM<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #66cc66;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #808080; font-style: italic;">// grab the player version number for desktop player</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		playerVersion = <span style="color: #0066CC;">substring</span><span style="color: #66cc66;">&#40;</span>flashVersion, <span style="color: #cc66cc;">5</span>, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #808080; font-style: italic;">// display version information</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;playerVersion&quot;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>playerVersion<span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>playerVersion == <span style="color: #cc66cc;">8</span> <span style="color: #66cc66;">&#41;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #66cc66;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			<span style="color: #808080; font-style: italic;">// launch a desktop version 8 of the file.</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Launch desktop player version&quot;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			<span style="color: #0066CC;">loadMovie</span><span style="color: #66cc66;">&#40;</span>flashFull8, <span style="color: #ff0000;">&quot;_level0&quot;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//+&quot;?stgWidth=&quot;+Stage.width+&quot;&amp;stgHeight=&quot;+Stage.height);</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #66cc66;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>playerVersion == <span style="color: #cc66cc;">9</span> <span style="color: #66cc66;">&#41;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #66cc66;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			<span style="color: #808080; font-style: italic;">// launch a desktop version 9 of the file.</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Launch desktop player version&quot;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			<span style="color: #0066CC;">loadMovie</span><span style="color: #66cc66;">&#40;</span>flashFull9, <span style="color: #ff0000;">&quot;_level0&quot;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//+&quot;?stgWidth=&quot;+Stage.width+&quot;&amp;stgHeight=&quot;+Stage.height);</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #66cc66;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #66cc66;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">stop</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li></ol></pre>
<p>The below zip includes the full source and example 'redirection' movies. If you have any other Client version strings that can be added please let me know and I will try and keep the script updated. For example I would love to know what the Sony Ericcson Java client version reports.</p>
<p><a href='http://blog.bittube.com/wp-content/uploads/2008/05/identifyingclient.zip'>Identiying Flash Client Versions</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2008/05/06/ria-osp-raa-rea-and-how-to-detect-an-open-screen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Balthaser patent .180 reexamination</title>
		<link>http://blog.bittube.com/2006/08/18/balthaser-patent-180-reexamination/</link>
		<comments>http://blog.bittube.com/2006/08/18/balthaser-patent-180-reexamination/#comments</comments>
		<pubDate>Fri, 18 Aug 2006 13:29:16 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[BitTube Work]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Flash 7]]></category>
		<category><![CDATA[Flash 8]]></category>
		<category><![CDATA[Flash 9]]></category>
		<category><![CDATA[Flash Lite]]></category>
		<category><![CDATA[Flash for PSP]]></category>
		<category><![CDATA[Flex 2]]></category>
		<category><![CDATA[PortableApps]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/2006/08/18/balthaser-patent-180-reexamination/</guid>
		<description><![CDATA[As Mike over at Flashgen.com and also Aral Balkan reports it seems someone is looking to contest the ridiculous Balthaser RIA patent that was reported a while ago by a number of Flash developers. I have also been contacted by Oliver Lorenz with regard to providing more information and certainly urge anyone that wants to [...]]]></description>
			<content:encoded><![CDATA[<p>As Mike over at <a href="http://blog.flashgen.com/2006/08/17/the-balthaser-ria-patent-revisited/trackback/">Flashgen.com</a> and also <a href="http://aralbalkan.com/695">Aral Balkan</a> reports it seems someone is looking to contest the ridiculous <a href="http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&r=1&f=G&l=50&s1=7,000,180.PN.&OS=PN/7,000,180&RS=PN/7,000,180">Balthaser RIA patent</a> that was reported a while ago by a number of Flash developers. I have also been contacted by Oliver Lorenz with regard to providing more information and certainly urge anyone that wants to beable to continue RIA development without the potential of infringing on this patent.</p>
<p>The issue I have with the patent is its broad and sweeping coverage of very common interface and application GUI design systems. As an example reading one portion of the "Summary of The Invention".</p>
<blockquote><p>When editing a component, the user may modify a number of features associated with a component including, but not limited to, the volume of an acoustic component, the link between a menu entry and an associated component, the font, font size, color, or effect of a text field, or the layout, size, transparency, rotation, color, position, or level of any graphical rich-media component. The user may modify these components by means of a slider bar or a textual input field. In addition, the user may modify the volume of a sound component by means of up and down volume buttons. The user may undo modifications made to a component's parameters. The user may also modify the position of a graphical rich-media component by a graphical input field, by clicking and dragging said component, or by text fields. When the user modifies the position of a graphical rich-media component by means of clicking and dragging said component, said component may align itself to a grid point or a guide line. The user may also modify the style and the Uniform Resource Locator (URL) of a component linked to a menu entry. </p></blockquote>
<p>Unless I am mistaken the recently posted link to <a href="http://netvibes.com/">Netvibes</a> would actually infringe on this part of the patent. In that the user can select 'panes' or 'graphical rich-media components' of the netvibes application and alter there position within the application by clicking and dragging them to a new position.</p>
<p>In this example, because there is no specific technology linked to the patent claim, any RIA in any technology, Flash, Ajax, Appolo, XUL Runner, HaXe, Sparkle, add any other future technology here..... These systems would all be in break of the patent claim.</p>
<p>And this is just <strong>ONE</strong> of the <strong>EIGHTY THREE</strong> different claims in this patent.</p>
<p>Very worrying I think any developer would agree. Everyone involved in Internet application development, in my opinion, should take a serious look at this patent. Think about ANY work they have done or seen in past. The work they are doing today. Then consider the possible implications of future networked development. If you know of anything that has been posted, exhibited or shown publicly that can bring this patent down, it is in every ones interest to make it known to strengthen the Magix reexamination.</p>
<p>And remember we are not just talking about flash applications or work here. If you remember or are aware of ANY online application, in any technology, be it DHTML, Director, Java or anything else. If it used any, all or even one of these systems to allow user interation then it may well be enough to show that Mr Neil Balthaser did not invent these systems, and certainly has not right to lay claim to doing so as he has in his patent application.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2006/08/18/balthaser-patent-180-reexamination/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>10 years of flash, my how things have changed.</title>
		<link>http://blog.bittube.com/2006/07/18/10-years-of-flash-my-how-things-have-changed/</link>
		<comments>http://blog.bittube.com/2006/07/18/10-years-of-flash-my-how-things-have-changed/#comments</comments>
		<pubDate>Tue, 18 Jul 2006 11:20:21 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[BitTube Work]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Flash 7]]></category>
		<category><![CDATA[Flash 8]]></category>
		<category><![CDATA[Flash 9]]></category>
		<category><![CDATA[Flash Lite]]></category>
		<category><![CDATA[Flash for PSP]]></category>
		<category><![CDATA[Flex 2]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/2006/07/18/10-years-of-flash-my-how-things-have-changed/</guid>
		<description><![CDATA[It all started at university. Microsoft or MSN Australia I think it was, that was the first 'flash' movie I saw. And it changed everything I had seen on the web until then. Of course unlike everything else on the web at that time there was no way to see how they had done it. [...]]]></description>
			<content:encoded><![CDATA[<p>It all started at university. Microsoft or MSN Australia I think it was, that was the first 'flash' movie I saw. And it changed everything I had seen on the web until then. Of course unlike everything else on the web at that time there was no way to see how they had done it. Or at least you would think <img src='http://blog.bittube.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  . A few moments in a hex editor to remove those pesky 10th and 11th bytes, if memory serves, that was the 'copy protection' and we were off and de-compiling, perhaps the first flash de-compiler was actually <a href="http://www.ultraedit.com/">UltraEdit</a>? <img src='http://blog.bittube.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>As you will have seen Mike Jones (<a href="http://blog.flashgen.com/2006/07/18/what-do-you-do-after-10-years-as-a-flash-developer/trackback/">FlashGen.com</a>) and I are meeting to take notes, share war stories and generally reminisce the 'Good <a href="http://www.oldskoolflash.com">OldSkool</a> Days'. To find out what files we still have, and even which URLs are still <a href="http://www.bbc.co.uk/education/rocks/flash/indexfull.html">live</a> (Flash 3 (alpha) circa 1997/8 btw <a href="http://weblogs.macromedia.com/jd/archives/2006/07/got_historic_sw.cfm#trackbacks">JD</a> produced by Spooky & the Bandit - you may remember them :p)</p>
<p>Keep your eyes peal for more news as events unfold....</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2006/07/18/10-years-of-flash-my-how-things-have-changed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Further Flash Development for PSP</title>
		<link>http://blog.bittube.com/2006/06/02/further-flash-development-for-psp/</link>
		<comments>http://blog.bittube.com/2006/06/02/further-flash-development-for-psp/#comments</comments>
		<pubDate>Fri, 02 Jun 2006 13:17:46 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Flash Lite]]></category>
		<category><![CDATA[Flash for PSP]]></category>
		<category><![CDATA[Mobile Devices]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/?p=107</guid>
		<description><![CDATA[So over the long weekend I spent some more time plugging away on the PSP version of my portfolio site. And despite my best efforts I have stumbled on an issue that continues to upset the PSP version of the flash playerï¿½s limited memory.
First a little background to the site. The first version of the [...]]]></description>
			<content:encoded><![CDATA[<p>So over the long weekend I spent some more time plugging away on the <a href="http://www.amazon.com/gp/redirect.html?link_code=ur2&tag=bittubeblog-20&camp=1789&creative=9325&location=http%3A%2F%2Fwww.amazon.co.uk%2Fexec%2Fobidos%2FASIN%2FB000CBLPIS%2Fqid%3D1151406126%2Fsr%3D8-2%2Fref%3Dpd_ka_2">PSP</a> version of my portfolio site. And despite my best efforts I have stumbled on an issue that continues to upset the PSP version of the flash playerï¿½s limited memory.</p>
<p>First a little background to the site. The <a href="http://www.bittube.com">first version</a> of the site was a journey into a completely code generated flash movie. That is to say, every possible aspect would be generated using ActionScript 2. The rational being to learn some more about the Draw API and also get clarify the ideas of OOP and MVC that i had heard so much about all over the web, but had yet to apply to flash properly. That first development has also offered a great focus for development in terms of learning <a href="http://development.bittube.com">Flash 8</a> and more recently both Flash 9 or Action Script 3 and now this latest version for the <a href="http://www.bittube.com/index_f6.html">PSP version</a> of the flash player.</p>
<p><span id="more-107"></span></p>
<p>So with the exception of the loaded Bitmap Images and the XML obviously, the rest of the production is all code. In addition this whole experiment has given me some great learning experiences in Eclipse, mtasc, and ant and the whole OpenSource Flash Development.</p>
<p>In my <a href="http://blog.bittube.com/?p=99">previous post</a> on flash development for PSP I highlighted the need to be very careful with the amount of animation and data being thrown around in the flash player and the need to monitor specifically the memory usage. This is something I have been keeping in mind as I built up the code for the PSP version of my development <a href="http://www.bittube.com/index_f6.html">here</a>:</p>
<p>First I have the base BittubeClass that contains the mtasc main entry point and an application level control class. This handles loading XML, Images and also the creation of Interface Classes. Then I have the various interface elements split into four classes, Loader, NavBar, NavItem, and ContentArea. </p>
<p>Between these classes I am also using some of the mx core classes, or versions of them. These include.</p>
<p>mx.events.EventDispatcher;<br />
mx.transitions.Tween;<br />
mx.transitions.easing.Regular;<br />
mx.xpath.XPathAPI; (modified to work in mtasc)<br />
mx.utils.Delegate; (modified to work in mtasc)<br />
MovieClipLoader (based on MovieClipLoader6)</p>
<p>The base output from mtasc of the project is a swf that is about 14k in size. Which I am pretty pleased with. I did wonder if generating all the visual assets being created via code was as efficient as using the flash IDE to create the assets. So with this question in mind I produced the following test code:</p>
<p>[as]//generate and display 4 sqaures<br />
var drawSolidRectangle = function(mc_target:MovieClip, str_clipName:String, int_depth:Number, int_w:Number, int_h:Number, int_fillC:Number, int_lineC:Number, int_lineW:Number):MovieClip<br />
{<br />
		var mc_retClip:MovieClip = mc_target.createEmptyMovieClip(str_clipName, int_depth);<br />
		if(int_lineW != undefined && int_lineC != undefined)mc_retClip.lineStyle(int_lineW, int_lineC);<br />
		mc_retClip.beginFill(int_fillC);<br />
		_drwRct(mc_retClip, 0, 0, int_w, int_h);</p>
<p>		mc_retClip.endFill();</p>
<p>		return mc_retClip;<br />
}<br />
var _drwRct = function(mc_clip:MovieClip, int_x1:Number, int_y1:Number, int_x2:Number, int_y2:Number):Void<br />
{<br />
	mc_clip.moveTo (int_x1, int_y1);<br />
	mc_clip.lineTo (int_x2, int_y1);<br />
	mc_clip.lineTo (int_x2, int_y2);<br />
	mc_clip.lineTo (int_x1, int_y2);<br />
	mc_clip.lineTo (int_x1, int_y1);<br />
}<br />
drawSolidRectangle(_root, "square0_mc", 0, 100, 100, 0xff0000);<br />
drawSolidRectangle(_root, "square1_mc", 1, 100, 100, 0xff0000);<br />
drawSolidRectangle(_root, "square2_mc", 2, 100, 100, 0xff0000);<br />
drawSolidRectangle(_root, "square3_mc", 3, 100, 100, 0xff0000);[/as]</p>
<p>This results in a file that is 972Bytes in size.</p>
<p>However by simply having a square symbol in the flash library, and placing it on the stage 4 times, and then providing the same instance names as are used in the code above, the swf output is a file of 183Bytes in size. So a smaller initial file in comparison to the code generated assets.</p>
<p>Both movies were exported as Flash 6, using ActionScript2. All other settings were identical.</p>
<p>Further on from this I monitored the memory usage of both movies in task manager. The code generated movie actually appeared to use slightly less memory than the IDE generated movie (6,964K as opposed to the IDE created movie which used 6,988K). So in this particular test Code generated assets actually made a lower impact in memory usage, something, I confess, suprised me.</p>
<p>Returning to the larger development I donï¿½t know if the findings above scale into a more complex project, I would assume that as the code generation continues there would be a point where it will become more efficient to reuse existing IDE based assets than storing dynamically generated assets in memory. I have yet to find time to run an experiment in this way. </p>
<p>Through testing my existing file on the in the PSP flash player I discovered however that my movie still eventually toppled the memory barrier. The initial load of my movie is quite modest. The SWF is 14K compressed The 2 images I load are about 15K in total. The XML Document for the navigation is 285 bytes, the XML documents for the 3 areas are 81K in total. This all gives a total file space requirement of around 115K rounded up to the nearest 5K. This is well within the memory constraints of the 1.5Mb available on the PSP. Yet eventually after clicking through the movie a few times I see the "Out Of Memory" message. </p>
<p>I have checked the movie on the flash 8 player on my windows box. The initial Load of the movie reports 8,576K of memory usage, although as previously explained part of this is the actual stand alone player, not the movie it loads. Once I start navigating the movie, each interaction with the navigation adds between 4-12K to the memory usage. This seems to occur BEFORE anything else happens, i.e. it is a direct result any of the onPress, onRollover or onRollOut events being dispatched, and the generated clip that constitutes the NavItem that is being interacted with having its colour changed. In addition that memory never seems to be released?  </p>
<p>Of course this is only the Windows Player, and of course it is a different version. But as I continue to work on this experiment I can safely say this form of memory leak is certainly not an isolated case. I have witnessed my 100K flash movie continue to consume many megabytes of memory once i began to load the XML data. Yet at no point does the memory get released. If there is anything close to this level of leakage within the PSP version of the player I fear that any serious development may well be impossible at the moment on this device.</p>
<p>My next development track will be to explore returning to more <a href="http://www.oldskoolflash.com">OldSkoolFlash</a> development and construction methods, relying less on the dynamic scripting I tend to use today. Bring back, the invisible button, jump movie, and any number of other flash techniques either I developed or help others develop almost 10 years ago.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2006/06/02/further-flash-development-for-psp/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Flash Development PSP and Mobile Devices?</title>
		<link>http://blog.bittube.com/2006/05/25/flash-development-psp-and-mobile-devices/</link>
		<comments>http://blog.bittube.com/2006/05/25/flash-development-psp-and-mobile-devices/#comments</comments>
		<pubDate>Thu, 25 May 2006 22:17:50 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Flash Lite]]></category>
		<category><![CDATA[Flash for PSP]]></category>
		<category><![CDATA[Mobile Devices]]></category>
		<category><![CDATA[Mobile Phones]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/?p=99</guid>
		<description><![CDATA[After my initial 'light' look into deploying flash to the new play station portable flash player I have continued to research tips and tricks that may hold some value for development in this area.

In addition to the technical limitations regarding the platform and the 'bulk' or the file size of any presentation that is deployed [...]]]></description>
			<content:encoded><![CDATA[<p>After my <a href="http://blog.bittube.com/?p=98">initial</a> 'light' look into deploying flash to the new <a href="http://www.amazon.com/gp/redirect.html?link_code=ur2&tag=bittubeblog-20&camp=1789&creative=9325&location=http%3A%2F%2Fwww.amazon.co.uk%2Fexec%2Fobidos%2FASIN%2FB000CBLPIS%2Fqid%3D1151406126%2Fsr%3D8-2%2Fref%3Dpd_ka_2">play station portable</a> flash player I have continued to research tips and tricks that may hold some value for development in this area.</p>
<p><span id="more-99"></span></p>
<p>In addition to the technical limitations regarding the platform and the 'bulk' or the file size of any presentation that is deployed to it. It has become apparent that a good deal of thought should be held over to the 'flow', or the way users will navigate any work that you intend to deploy to the  PSP flash player platform.</p>
<p>The more I investigated flash development for the PSP, the more it occurred to me that these are not new challenges. 'Back in the day' when working on Flash 3 development the equipment that I was deploying to was also rather less powerful than is available now. </p>
<p>Many flash developers will be aware of the <a href="http://www.useit.com/alertbox/20001029.html" target="_blank">dark days</a>  that Flash 3/4 heralded as developers neglected both the limitations end users had in both bandwidth and also the horsepower of the machines viewing the web back then. It was incredible how quickly and inappropriately (some) people (my self included) adopted the new Alpha tween capabilities, despite the fact that they would often cripple the target machines.</p>
<p>More recently we have seen the flash player ported to a myriad of other devices, from <a href="http://www.flashcoder.net/blog/?p=71">Set Top Boxes</a>, to <a href="http://www.richardleggett.co.uk/blog/index.php">mobile phones</a> and even fridges, many of which still suffer from these limitations on processor power that we take for granted when developing our nice new 'Web 2.0' all singing all dancing uber apps. </p>
<p>With all this in mind I have started to dig through the interweb to get my head round the development challenges that are held in this dark arena of mobile or multi modal flash development. If nothing else it would be a nice way of getting a tax break on a new fridge as a development tool <img src='http://blog.bittube.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .</p>
<p>What I have discovered in the limited testing I have put together developing flash for the PSP is fairly simple stuff. </p>
<p>Frame rates for the flash movie I am using as a base for my testing on the PSP vary hugely. The testing movie I have been working with is exported at 31fps. As part of my testing i have added an FPS component to show whatï¿½s roughly going on as the movie plays out. On a PC this reads on average 20-30 most of the times, with it dropping slightly as some of the elements fade in. However when this tween operation is played out on the PSP the fps plummet to around 2 fps. In the flash movie I am working on the tweens are code driven by the Adobe tween libraries; however after reading some documentation it may well be that a timeline based or even key framed tweens would be more effective when deploying flash to a PSP.</p>
<p>Text Display for the development Flash content on the PSP is wonderful. In order to keep the file size down I have chosen not to include any font embedding or font outlines. On a PC viewed through a monitor the text does suffer from the 'jaggies' that we have all come to know when using Non Aliased fonts. Readability is maintained by ensuring all text is positioned on non-decimal x & y positions, but it is still evident. The same Flash movie displayed on the PSP seems have some level of Anti-Aliasing applied. So not only do we get the benefit of the smaller file size by not embedding the fonts, but also thanks to the innate anti-aliasing, there is no jaggyness either.</p>
<p>XML Load times seem pretty reasonable so far. I am loading a specifically tailored XML document for my flash delivery to PSP.This is a smaller more concise structure than the XML I Load into the PC delivery. I am also still making use of the mx.xpath.XPathAPI class to handle all my XML data. Although I have slightly modified the core class to work with mtasc (commented out //var currAttr:String; within getPath()). There have been no issues with either the XML parse speed or with PSP compatibility.</p>
<p>I am sure there will be more to come on this as I continue, but for now here are a list of some of the sites I have found useful in my (limited) development of flash for the PSP</p>
<p>Marco Casario, Animation on Mobile devices best practice summary <a href="http://casario.blogs.com/mmworld/2006/05/animation_best_.html">here</a></p>
<p>Adobe Dev Center Mobile Best Practice <a href="http://www.adobe.com/devnet/devices/articles/flashlite_training_excerpt_02.html">here</a></p>
<p>PSP Specific Development Info <a href="http://broadcast.artificialcolors.com/index.php?title=flash_on_psp_more_info&more=1&c=1&tb=1&pb=1">here</a></p>
<p>Web Design for PSP <a href="http://www.brothercake.com/site/resources/reference/psp/">here</a></p>
<p>My Flash development for PSP (slow) progress <a href="http://www.bittube.com/index_f6.html">here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2006/05/25/flash-development-psp-and-mobile-devices/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Flash Development on PSP</title>
		<link>http://blog.bittube.com/2006/05/04/flash-development-on-psp/</link>
		<comments>http://blog.bittube.com/2006/05/04/flash-development-on-psp/#comments</comments>
		<pubDate>Thu, 04 May 2006 14:43:48 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Flash Lite]]></category>
		<category><![CDATA[Flash for PSP]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/?p=98</guid>
		<description><![CDATA[After updating my PSP to the new 2.7 firmware I started to put together some work to use the new Flash Player for the PSP I thought I would post some of my findings to date. As I continue to develop more PSP centric flash content I will continue to post more information as I [...]]]></description>
			<content:encoded><![CDATA[<p>After updating my PSP to the new 2.7 firmware I started to put together some work to use the new Flash Player for the PSP I thought I would post some of my findings to date. As I continue to develop more PSP centric flash content I will continue to post more information as I discover it.</p>
<p><span id="more-98"></span></p>
<p>So far I have only produced <a href="http://www.bittube.com/index_f6.html">a single movie</a> suitable, or rather, targeted for the PSP version of the flash player. It has been developed using ActionScript 2 and mtasc to compile the swf. Where possible I have tried to use the Macromedia Class Framework, although in some cases this hasn’t been possible due to issues compiling in mtasc. The two most obvious class issues I have come across have been the with the MovieClipLoader class, and the Delegate class. MovieClipLoader seems not to compile to flash 6/mx compatible swf's and Delegate was causing mtasc to throw errors. As a result of this I have substituted the MovieClipLoader with the open source <a href="http://osflash.org/moviecliploader6">MovieCLipLoader6 class</a> from <a href="http://osflash.org">osflash</a> and Delegate has been replace with <a href="http://dynamicflash.com/classes/Delegate.as">Delegate</a> from <a href="http://dynamicflash.com/">Steve Webster</a>.</p>
<p>In addition I have found the Macromedia Tween classes cause mtasc to throw warnings due to the use of #include statements. But this does not seem to affect compilation.</p>
<p>The PSP display is in a wide screen format, which is of course is a different width height ratio to most standard monitors. With this in mind some consideration needs to be giving to the layout onscreen. Movies should be compatible with the PSP's screen resolution pf 480 pixels by 272 pixels. In my development I opted to produce a movie that would dynamically resize based on the size of the Stage.width and Stage.height properties. This allows me to produce content to both the PSP flash player, standard monitor resolutions and also as an added bonus the movie should make best use of the growing number of wide screen format monitors available.</p>
<p>The PSP only has limited browser caching, from what I can gather the browser cannot have more than 2048 kB (<a href="http://www.drugster.com/psp/psp-ebook-tutorial_drugstercom.htm">This page has reference to that figure</a>) of data held with in the 3 'tabs' although <a href="http://weblogs.macromedia.com/jd/archives/2006/04/viewing_flash_o.cfm">JD suggests</a> on his page that it is less than that.</p>
<blockquote><p>There's about 1.5 megabytes of RAM available for viewing content on this device</p></blockquote>
<p>Whatever the actual figure is, it’s nowhere near the amount of memory that we have become use to in modern computing. With these memory considerations in mind I wanted to provide 'smaller' content for the 'PSP Flash' than the 'non PSP flash' presentation. As mentioned in my <a href="http://blog.bittube.com/?p=97">earlier post</a> this would be done using the System.capabilities.version property of the player.</p>
<p>The PSP flash player returns the following version information;</p>
<p>Player version = NF3 6,0,72,27</p>
<p>Based on this information not only have I been able to load a lower quality and smaller image if a user is using a flash enabled PSP but also the movie only loads a single image rather than 2 separate images (the image is in fact the same image loaded twice, but the principle still holds).</p>
<p>Another important factor is the size of the flash movie 'in memory' on the PSP flash player. After compiling my action script classes into an swf with mtasc I was left with a SWF that was reported as 4.96k in size. However this movie is compressed, now I believe this does not truly represent the actual size of the movie in the PSP browser memory. In order to find this out you should check the size of the file uncompressed. In the flash IDE this is simply a matter of un-checking the 'compress movie' box in the publishing settings. I couldn't find a way to do a similar operation with mtasc, so instead made use of flasm using the -x option to decompress the SWF. The result was a movie that was closer to 13k in size.</p>
<p>This gave me a guide to the actual size of the movie, but it still doesn’t really represent the 'running cost' of the movie. Obviously as the movie runs, movie clips, variables and new objects will be created and loaded. These will all add to the overall memory 'cost' of the flash movie in memory.</p>
<p>To get an idea of this 'memory cost over time' I simply opened the movie in the flash player on my PC, opened task manager and looked at the memory usage for the flash player (on a windows machine the stand alone flash player is listed as 'SAFlashPlayer.exe').</p>
<p>Task manager reported memory usage of 13,672k. However i figured some of that was the actual running cost of the player application, not just my movie. Running just the Flash 8 player with no content Task manager reported 7,004k so my movie once loaded appears to take about 6k of memory in running cost (13 – 7). I would assume once on the PSP this running cost is in addition to the swf file size, the file sizes of the loaded image, and also the loaded XML document.</p>
<p>Now at this point I should point out these memory calculations are all hypothetical. It would be nice to get some formal documentation for development on the new PSP Flash player, and also information regarding the management of memory or profiling of memory cost of a given swf.</p>
<p>As I go forward with this project the main assumption I intend to make is that with the PSP flash player being based on flash player 6 the memory management and garbage collection will be as poor as that player, and unlikely to be up to the level of the new flash player 8. As a result I will need to do that garbage collection manually to ensure users don’t see the 'Out of memory' message. In addition all content will have a 'Lite' version specifically for the PSP flash player, for the same reason.</p>
<p>Usefull PSP Flash Development Links</p>
<p><a href="http://www.flashdevices.net/2006/04/sony-psp-flash-player-6-supported.html">PSP Flash Player info</a><br />
<a href="http://weblogs.macromedia.com/jd/archives/2006/04/viewing_flash_o.cfm">JD's Viewing Flash on PSP</a><br />
<a href="http://testing.onlytherightanswers.com/modules.php?name=News&file=article&sid=29">PSP browser usage information</a></p>
<p>Tools Used in this development</p>
<p>Flasm - <a href="http://flasm.sourceforge.net/">http://flasm.sourceforge.net/</a><br />
mtasc - <a href="www.mtasc.org/">www.mtasc.org/</a></p>
<p>To test flash locally on your PSP</p>
<ol>
<li>Create a folder on the root of yout MemoryStick.</li>
<li>Put your development files into the new folder.</li>
<li>Open the browser on your PSP</li>
<li>Hit Triangle and navigate to the address entry and enter URL like the following<br />
			file:/YourFolderName/YourDevFile.swf<br />
			file:/YourFolderName/YourDevFile.html
	</li>
</ol>
<p>('file:/' can be found on the http:// button at the bottom of the list)</p>
<p>**In local testing I have experienced unexpected results in my loading class although this may be an isolated event in my development.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2006/05/04/flash-development-on-psp/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PSP Flash Player Info</title>
		<link>http://blog.bittube.com/2006/04/30/psp-flash-player-info/</link>
		<comments>http://blog.bittube.com/2006/04/30/psp-flash-player-info/#comments</comments>
		<pubDate>Sun, 30 Apr 2006 17:09:48 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Flash Lite]]></category>
		<category><![CDATA[Flash for PSP]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/?p=97</guid>
		<description><![CDATA[This week the latest Play Station Portable (PSP) firmware update was released for Japanese and US PSP owners, included in the update was an official version of the Flash Player. Being one of the many UK residents that simply could not wait to get my hands on the PSP. I happen to own a Japanese [...]]]></description>
			<content:encoded><![CDATA[<p>This week the latest <a href="http://www.amazon.com/gp/redirect.html?link_code=ur2&tag=bittubeblog-20&camp=1789&creative=9325&location=http%3A%2F%2Fwww.amazon.co.uk%2Fexec%2Fobidos%2FASIN%2FB000CBLPIS%2Fqid%3D1151406126%2Fsr%3D8-2%2Fref%3Dpd_ka_2">Play Station Portable</a> (PSP) firmware update was released for <a href="http://www.jp.playstation.com/psp/update/ud_01.html" target="_blank">Japanese</a> and <a href="http://www.us.playstation.com/psp.aspx?id=SoftwareUpdate" target="_blank">US</a> PSP owners, included in the update was an official version of the Flash Player. Being one of the many UK residents that simply could not wait to get my hands on the PSP. I happen to own a Japanese unit that I had imported; as a result I felt it my duty to install the new firmware.</p>
<p>Over the weekend while researching some bits and pieces I put together a quick <a href="http://www.bittube.com/index_f6.html" target="_blank">Flash File</a> that tests the player on the PSP and also displays the values provided by the <a href="http://livedocs.macromedia.com/flash/mx2004/main_7_2/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Flash_MX_2004&file=00001742.html" target="_blank">System.capabilities.playerType</a> and <a href="http://livedocs.macromedia.com/flash/mx2004/main_7_2/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Flash_MX_2004&file=00001748.html" target="_blank">System.capabilities.version</a> properties.</p>
<p>For reference and so you donï¿½t have to go and find the <a href="http://www.bittube.com/index_f6.html" target="_blank">flash file</a>. The Values are as follow:</p>
<p>player type =<br />
player version = NF3 6,0,72,27</p>
<p>I assume the player type is undefined. Given that this property is a only available in Flash Player 7, but I thought it worth checking for completeness.</p>
<p>Some useless information about this movie its the first time for me producing an entire flash movie without the aid of the flash IDE. Thatï¿½s right the whole dawg gone flash 6 file was produced in a <a href="http://notepad-plus.sourceforge.net/uk/about.php" target="_blank">text editor</a> and compiled using <a href="http://www.mtasc.org/" target="_blank">MTASC</a>, drop shadows and all....</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2006/04/30/psp-flash-player-info/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>
