<?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; FlashLite 1</title>
	<atom:link href="http://blog.bittube.com/category/development/flashlite-1/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>Catalogue Of 30+ Flash Lite Development Tips</title>
		<link>http://blog.bittube.com/2009/02/24/catalogue-of-30-flash-lite-development-tips/</link>
		<comments>http://blog.bittube.com/2009/02/24/catalogue-of-30-flash-lite-development-tips/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 17:15:36 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 1]]></category>
		<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[BitTube Work]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Flash Lite]]></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[Flash]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/?p=465</guid>
		<description><![CDATA[Rien Verbrugghe has done a great job of cataloging a huge number of Flash Lite development, testing and packaging tips from a number of conference sessions and also the various Flash Lite development blogs. If you want a handy quick reference of Flash Lite development tricks and common gotchas this is worth book marking or [...]]]></description>
			<content:encoded><![CDATA[<p>Rien Verbrugghe has done a great job of cataloging a huge number of Flash Lite development, testing and packaging tips from a number of conference sessions and also the various Flash Lite development blogs. If you want a handy quick reference of Flash Lite development tricks and common gotchas this is worth book marking or printing out.</p>
<p><a href="http://blog.rive.be/2009/02/24/30-tips-tricks-in-flash-lite-development/trackback/">blog.rive.be</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2009/02/24/catalogue-of-30-flash-lite-development-tips/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Flash Lite Components Bonanza!</title>
		<link>http://blog.bittube.com/2008/07/21/free-flash-lite-components-bonanza/</link>
		<comments>http://blog.bittube.com/2008/07/21/free-flash-lite-components-bonanza/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 10:03:15 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 1]]></category>
		<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[Downloads]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Lite]]></category>
		<category><![CDATA[FlashLite 1]]></category>
		<category><![CDATA[FlashLite 2]]></category>
		<category><![CDATA[Mobile Development]]></category>
		<category><![CDATA[Nokia]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Components]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/?p=283</guid>
		<description><![CDATA[I you are a Flash developer producing mobile content for Flash Lite then this week end you really hit pay dirt. First Nokia announced a set of Components for Flash Lite 2. Next Adobe also release a set of Components, for use with Flash Lite 1 and also Flash Lite 2, courtesy of Mark Doherty. [...]]]></description>
			<content:encoded><![CDATA[<p>I you are a Flash developer producing mobile content for Flash Lite then this week end you really hit pay dirt. First <a href="(http://www.forum.nokia.com/info/sw.nokia.com/id/d2336af2-0953-40a6-8dae-b80d368dead1/Adobe_Flash_Lite_2_x_Components_for_Mobile_Development.html)">Nokia announced a set of Components for Flash Lite 2</a>. Next <a href="http://flashmobileblog.com/?p=112">Adobe also release a set of Components</a>, for use with Flash Lite 1 and also Flash Lite 2, courtesy of <a href="http://flashmobileblog.com">Mark Doherty</a>. Finally <a href="http://www.scottjanousek.com/blog/2008/07/19/flash-lite-11-and-20-components/">Scott Janousek</a> resurrected the google code links for <a href="http://code.google.com/p/shurikencomponents/">Shuriken, a set of open source Flash Lite2 components</a> from last year.</p>
<p>So with all these 'new' flash lite components available what can you expect from each component set?</p>
<p><strong>Nokia Flash Lite 2 Components</strong><br />
Nokia have provided their Flash Lite 2 Component set as an MXP file for simple installation into Flash CS3, the components are easily accessible from the components panel once the MXP has been installed. Included in the zip file you download is a full readme.txt explaining how to install the MXP file through Adobe Extension Manager. The components also include full usage instructions in the form of flash help files and usage examples. Flash Lite Components that are included in the distribution are:</p>
<ul>
<li>Signal Level display, including network generation.</li>
<li>Battery level display.</li>
<li>Dynamic List Component.</li>
</ul>
<p>The Signal and Battery indicator components react to softkey placement/screen orientation. All three of the components have easily accessible skin components in the library, and also allow limited visual control from the properties panel. Mark Doherty noted that the components appear to be quite memory hungry. The Signal and Battery Indicators seem to use in the region of 600k according to Adobe Device Central, the Dynamic List Example reports around 800k although the actual memory usage of the list without a demo data set is closer to 700k.</p>
<p><a href="(http://www.forum.nokia.com/info/sw.nokia.com/id/d2336af2-0953-40a6-8dae-b80d368dead1/Adobe_Flash_Lite_2_x_Components_for_Mobile_Development.html)">Download the Nokia Flash Lite 2 Components</a></p>
<p><strong>Adobe Flash Lite 1 & 2 Components and UI Examples</strong><br />
Over at <a href="http://flashmobileblog.com">flashmobileblog </a>Mark Doherty has released some UI components as well. These are provided for both Flash Lite 1 and Flash Lite 2 projects. There is limited documentations for the examples, the Flash Lite 2 examples look like they should be easy to integrate as long as you intend to use them 'as is' in this case they would  simply require the addition of key listeners to control them. If you needed the components to be used in a more dynamic fashion, there would probably be some work to do. Included in the Flash Lite 2 component examples are:</p>
<ul>
<li><strong>List</strong>, this offers similar functionality to the Dynamic list in the Nokia Component set.</li>
<li><strong>Slider</strong>, This offers a horizontally scrolling icon menu.</li>
<li><strong>Gapper</strong>, This is a vertical variation of the slider.</li>
<li><strong>TileGrid</strong>, Shows a gridded icon menu with scrolling screen control.</li>
<li><strong>NavModel</strong>, this demonstrates a full application screen control system, also included are working Signal and Battery indicators and a list components.</li>
</ul>
<p>The examples in this file are certainly easy on the memory, all of them use less than 500k, this is particularly impressive of the Nav Model example given the amount of interactivity and feedback that is demonstrated.</p>
<p>As with any Flash Lite 1 work, making use of the earlier versions will be a little more fiddly than the Flash Lite 2 counter parts. But the code in each of the examples is clearly identified and if you know your way around ActionScript 1 you should find incorporating the 'components' easy enough. Included in the examples are the following Flash Lite 1.1 components.</p>
<ul>
<li><strong>Carousel</strong>, A full screen horizontal slider.</li>
<li><strong>Displays</strong>, demonstrates the various device stats you can access from Flash Lite 1, also included are battery and signal indicators.</li>
<li><strong>IconMenu</strong>, offers a FlashLite 1 version of the Slider component in the Flash Lite 2 set, this is similar to the functionality produced in the <a href="http://blogs.forum.nokia.com/blog/giorgio-natilis-forum-nokia-blog/flash/2008/04/21/flash-lite-1.1-scrolling-menu">tutorial here</a>.</li>
<li><strong>Menu</strong>, actually seems to be a Flash Lite 2 example, an alternative dynamic list example.</li>
<li><strong>Story</strong>, This is an example of scrolling text in flash Lite 1, similar to the <a href="http://blog.bittube.com/2008/02/27/creating-a-scrolling-text-component-in-adobe-flashlite-11/">scrolling text component I have released.</a></li>
</ul>
<p>Agin the Flash Lite 11 components are very efficient when it comes to memory usage. None used more than 400k when published, and most were below 300k. The trade of with both these example sets from Adobe seem to be the slight increase in the amount of work you would need to do to integrate them. The other thing to note, is that these examples do offer examples of far more compelling UI  methods than simple lists.</p>
<p><a href="http://flashmobileblog.com/?p=112">Download the Adobe Flash Lite 1 & 2 Components and UI Examples</a></p>
<p><strong>Shuriken Open Source Flash Lite 2 Components</strong><br />
The last set of Flash Lite components are those that
<li><a href="http://www.scottjanousek.com/blog/2008/07/19/flash-lite-11-and-20-components/">Scott mentioned</a>, the <a href="http://code.google.com/p/shurikencomponents/">Shuriken Components</a>. I stumbled upon these components some time ago, I am not sure if the project is still live or has fallen dormant. The project offers a fairly comprehensive attempt at providing a full component framework to Flash Lite 2 developers. Included in the distribution zip are source class files, and example .fla's for each component in the library.</p>
<ul>
<li>Button</li>
<li>Calendar</li>
<li>CheckBox</li>
<li>ComboBox</li>
<li>DateEditor</li>
<li>LinkButton</li>
<li>List</li>
<li>Loader</li>
<li>NumericStepper</li>
<li>RadioButton</li>
<li>RadioButtonGroup</li>
<li>ScrollableList</li>
<li>SimpleButton</li>
<li>TextArea</li>
</ul>
<p>While the examples are good they do seem to be quite heavy in terms of memory usage, and they are not without issues. The scrolling list example for instance takes around 700k to display, but more concerning is that this memory usage raises during operation, implying the component has a memory leak somewhere. The complexity of this initiative while making development easier, may be its problem. Complex class structures in Flash Lite tend to give rise to cross references and memory leaks quite quickly.</p>
<p><a href="http://code.google.com/p/shurikencomponents/">Download the Shuriken Open Source Flash Lite 2 Components</a></p>
<p>So there we have it 3 sets of components, all certainly have there advantages and disadvantages. The Nokia Flash Lite components are great for Plug and Play development, I would say the Adobe UI examples are great for producing engaging canned demos as they stand, but with a bit of work could be converted for very memory efficient project use, and the shuriken component frame work may be a little heavy at the moment, but keep a watch on them, they could certainly offer a great, familiar framework for Flash Lite development, when they can solve the memory issues.</p>
<p>Also worth a note is that <a href="http://flashmobileblog.com/?p=112">Mark Doherty has put a shout out</a> at the end of his post regarding a shelved component framework that he could release from Adobe if interest is great enough. Mark has asked the FlashLite comunity to provide some support if it were released, to document and update the project, but this could offer a great opertunity to unify the current state of disperate component solutions emerging.</p>
<p>Credit where its due:</p>
<ul>
<li><a href="(http://www.forum.nokia.com/info/sw.nokia.com/id/d2336af2-0953-40a6-8dae-b80d368dead1/Adobe_Flash_Lite_2_x_Components_for_Mobile_Development.html)">Download the Nokia Flash Lite 2 Components</a></li>
<li><a href="http://flashmobileblog.com/?p=112">Download the Adobe Flash Lite 1 & 2 Components and UI Examples</a></li>
<li><a href="http://code.google.com/p/shurikencomponents/">Download the Shuriken Open Source Flash Lite 2 Components</a></li>
<li><a href="http://flashmobileblog.com">Mark Doherty</a></li>
<li><a href="http://www.scottjanousek.com/blog/2008/07/19/flash-lite-11-and-20-components/">Scott Janousek</a></li>
</ul>
</li>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2008/07/21/free-flash-lite-components-bonanza/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NEC Demos Adobe Flash Lite Intellectual Property</title>
		<link>http://blog.bittube.com/2008/05/16/nec-demos-adobe-flash-lite-intellectual-property/</link>
		<comments>http://blog.bittube.com/2008/05/16/nec-demos-adobe-flash-lite-intellectual-property/#comments</comments>
		<pubDate>Fri, 16 May 2008 16:49:13 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Flash Lite]]></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[Mobile Phones]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Mobile Web Development]]></category>
		<category><![CDATA[Open Screen Project]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/?p=281</guid>
		<description><![CDATA[Following the announcement from Adobe of the open screen project, news comes from the Embedded Systems Expo that NEC is showing what sounds like it might be an alternative to Adobe's Flash Lite Player.
Its a little hard to make complete sense of the post from EETimes.com. But some interesting quotes from the short, slightly cryptic [...]]]></description>
			<content:encoded><![CDATA[<p>Following the announcement from Adobe of the <a href="http://www.adobe.com/openscreenproject/">open screen project</a>, news comes from the Embedded Systems Expo that NEC is showing what sounds like it might be an alternative to Adobe's Flash Lite Player.</p>
<p>Its a little hard to make complete sense of the post from <a href="http://www.eetimes.com">EETimes.com</a>. But some interesting quotes from the short, slightly cryptic article:</p>
<blockquote><p>By using our new IP, one can design a portable device capable of processing Adobe Flash Lite several times faster, when compared with using a processor.</p></blockquote>
<p>Also in the announcement is a hint of better video quality as well.</p>
<blockquote><p>After reducing the number of gates required for an IC and further tuning the video quality output by Adobe Flash Lite, NEC will start offering its IP in August this year.</p></blockquote>
<p>One thing that does seem to be missing is an explanation of which Flash Lite version they are supporting, although the mention of video implies this is based around the FlashLite 3 player.</p>
<p>You can read the full (breif) <a href="http://www.eetimes.com/news/latest/showArticle.jhtml?articleID=207800566">announcement of NEC's new Flash Lite IP</a> over at <a href="http://www.eetimes.com">EETimes.com</a>.</p>
<p>One further interesting thing is that I could find no mention of NEC being involved with the <a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/200804/050108AdobeOSP.html">Open Screen Project from its press release</a>.</p>
<p>Credit where its due: <a href="http://www.eetimes.com">EETimes.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2008/05/16/nec-demos-adobe-flash-lite-intellectual-property/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<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>Creating a scrolling text component in Adobe FlashLite 1.1</title>
		<link>http://blog.bittube.com/2008/02/27/creating-a-scrolling-text-component-in-adobe-flashlite-11/</link>
		<comments>http://blog.bittube.com/2008/02/27/creating-a-scrolling-text-component-in-adobe-flashlite-11/#comments</comments>
		<pubDate>Wed, 27 Feb 2008 01:36:21 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 1]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[FlashCast]]></category>
		<category><![CDATA[FlashLite 1]]></category>
		<category><![CDATA[Mobile Development]]></category>
		<category><![CDATA[Mobile Devices]]></category>
		<category><![CDATA[Mobile Phones]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash Cast 1.2]]></category>
		<category><![CDATA[Flash Lite 1.1]]></category>
		<category><![CDATA[FlashLite]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/2008/02/27/creating-a-scrolling-text-component-in-adobe-flashlite-11/</guid>
		<description><![CDATA[Recently I have been heavily involved in an on going FlashLite 1.1 based project. Some thing I know my development peers have been extremely jealous of as they bang their heads against the hellish development processes of Flex, Air, ActionScript 3 and Flash 9, not!
One of the most enjoyable features of FlashLite 1.1 is its [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I have been heavily involved in an on going FlashLite 1.1 based project. Some thing I know my <a href="http://blog.flashgen.com">development</a> <a href="http://www.flashcoder.net/blog/">peers</a> have been extremely jealous of as they bang their heads against the hellish development processes of Flex, Air, ActionScript 3 and Flash 9, not!</p>
<p>One of the most enjoyable features of FlashLite 1.1 is its (lack of) ability to measure the height, width or any metric of text once it is displayed on the screen of your shiny new Nokia N95. This makes efficient text scrolling a particular joy to produce. To this end I have produced a simple example of a fairly flexible scrolling text component for FlashLite 1.1.</p>
<p>Below is a comprehensive (hopefully) tutorial describing how to create such a component.</p>
<p><span id="more-239"></span></p>
<p><strong>Creating the component project</strong><br />
The first thing to do is to create a new FlashLite file, in this tutorial I have based the development on a QVGA mobile phone, such as the N6110 or N95. To do this simply set the stage size to a width of 240 pixels and the height to 320 pixels. I haven't altered the default frame rate. In the flash publish settings "File > Publish Settings" set the Flash version to FlashLite 1.1, this will automatically set the ActionScript version to 1.0 (is there a 1.anything else?) after that we are good to go!</p>
<p><strong>Creating the scrolling text field</strong></p>
<ol>
<li>Create a new symbol in your Library and name it "TextArea".</li>
<li>On the stage of this symbol create a dynamic text field with a width of about 220 pixels and a height of 280 pixels.</li>
<li>With the text field selected put "text" in the Var field in the properties inspector. We will use this later to assign text to the field, remember no instance names on text fields in FlashLite 1.1.</li>
<li>Next create a new symbol in your Library and Name it "ScrollingTextArea".</li>
<li>On the stage of this symbol drag an instance of your "TextArea" symbol and position it to position X:0 and Y:0 and give it an instance name of "textArea_mc", for clarity you should name the layer this instance sits on "TextArea" or you might prefer "textArea_mc".</li>
<li>Add a new layer to your "ScrollingTextArea" symbol and name it "ActionScript". On this layer in frame 1 add the ActionScript command <code>stop();</code>.</li>
<li>Create a new layer folder and name it "CallFunctions". </li>
<li>Inside the "CallFunctions" folder create a new layer and call it "init", on this new layer create a blank key frame on frame 2 and give it the frame label "init".</li>
<li>On the new "init" frame add the following code that will be used later to initialise our scrolling text field.
<p><code><br />
// store maxScroll Locally<br />
maxScroll = textArea_mc:text.maxscroll;<br />
// if max scroll is greater than 1 we know we need the text to scroll<br />
if(maxScroll > 1)<br />
{<br />
	// store the current scroll position loccally<br />
	currentScroll = 1;<br />
	// set scrollPercent to 0.<br />
	scrollPercent = 0;<br />
	//set the scroll bar height to the height of the text field<br />
	scrollBar_mc.trackHeight = textArea_mc._height;<br />
	//set the scroll thumb height<br />
	scrollBar_mc.thumbHeight = 30;<br />
	// init the scroll bar<br />
	call("scrollBar_mc/:Init");<br />
	// show the scroll bar<br />
	scrollBar_mc._visible = true;<br />
}<br />
// otherwise hide the scroll bar, its not needed.<br />
else<br />
{<br />
	scrollBar_mc._visible = false;<br />
}<br />
</code></p>
<p>At this stage most of the values in this code block will not function, but they will be required in a later step.</li>
<li>Inside the "CallFunctions" folder create a new layer and call it "setText", on this new layer create a blank key frame on frame 3 and give it the frame label "setText".</li>
<li>On the new "setText" frame add the following code that is used to populate our text field component.
<p><code><br />
// set the text value to the text field<br />
textArea_mc:text = text;<br />
// call init to reset scroll parameters<br />
call("init");<br />
</code></p>
</li>
<li>Inside the "CallFunctions" folder create a new layer and call it "scrollUp", on this new layer create a blank key frame on frame 4 and give it the frame label "scrollUp".</li>
<li>On the new "scrollUp" frame add the following code that is used to scroll the text in our component up the screen.
<p><code><br />
// increase the text scroll<br />
textArea_mc:text.scroll++;<br />
// store the current scroll position locally<br />
currentScroll = textArea_mc:text.scroll;<br />
// if the current scroll position is the same as maxScroll scrollPercent is 100<br />
if(currentScroll == maxScroll)<br />
{<br />
	scrollPercent = 100;<br />
}<br />
// other wise calculate the percentage scroll position<br />
else<br />
{<br />
	scrollPercent = Math.ceil(((currentScroll-1)/maxScroll) *100);<br />
}<br />
// set the scroller scroll percentage<br />
scrollBar_mc.scrollPercent = scrollPercent;<br />
// call the scrollBar setScrollPercent function<br />
call("scrollBar_mc/:setScrollPercent");<br />
</code></p>
</li>
<li>Inside the "CallFunctions" folder create a new layer and call it "scrollDown", on this new layer create a blank key frame on frame 5 and give it the frame label "scrollDown".</li>
<li>On the new "scrollDown" frame add the following code that is used to scroll the text in our component up the screen.
<p><code><br />
// decrease the text scroll<br />
textArea_mc:text.scroll--;<br />
// store the current scroll position locally<br />
currentScroll = textArea_mc:text.scroll;<br />
// if the current scroll position is at 1 then there is no more scrolling to be done, so scrollPercent is 0<br />
if(currentScroll == 1)<br />
{<br />
	scrollPercent = 0;<br />
}<br />
// other wise calculate the percentage scroll position<br />
else<br />
{<br />
	scrollPercent = Math.ceil(((currentScroll-1)/maxScroll) *100);<br />
}<br />
// set the scroller scroll percentage<br />
scrollBar_mc.scrollPercent = scrollPercent;<br />
// call the scrollBar setScrollPercent function<br />
call("scrollBar_mc/:setScrollPercent");<br />
</code></p>
</li>
<li>Finally add code to frame 1 of the actionscript layer so it looks like this:
<p><code><br />
// by default hide the scrollbar<br />
scrollBar_mc._visible = false;<br />
// call the text field init function<br />
call("Init");<br />
stop();<br />
</code>
</li>
</ol>
<p>Thats all there is for the development of the text field, and also for the scrolling functionality. You will notice that in our text field "scrollUp" and "scrollDown" call frames we reference a scroll bar clip, we will now create that scrollbar.</p>
<p><strong>Create a simple FlashLite 1.1 scroll bar component</strong></p>
<ol>
<li>In your library create a new symbol and call it "square".</li>
<li>On the stage of your new "square" symbol draw a square with no stroke give it a width and height of 50 pixels, place the graphic at X:0 and Y:0.</li>
<li>In your library create a new symbol and call it "scrollbar".</li>
<li>Label the layer in your new "ScrollBar" symbol "scrollTrack". Bring an instance of the "square" symbol on to this layer and position it at X:0 and Y:0 change the symbol instance's with to 10 pixels and its height to 100 pixels. Also give the instance an instance name of "scrollTrack_mc" and apply a colour tint of your choice.</li>
<li>Create a new layer above the "scrollTrack" layer name this new layer "ScrollThumb" and add another instance of your "square" symbol to it.</li>
<li>This time set the instance name to "scrollThumb_mc". Position it at X:1 and Y:1. Set the new "scrollThumb_mc" width to 8 pixels and its height to 50 pixels. Again apply a colour tint, making sure it is different to the one you applied to the "scrollTrack_mc" instance.</li>
<li>Add a new layer and name it "ActionScript". In frame 1 of this new layer add the following code:
<p><code><br />
// call the scroll bar init function<br />
call("init");<br />
stop();<br />
</code>
	</li>
<li>Create a new layer folder and name it "CallFunctions". </li>
<li>Inside the "CallFunctions" folder create a new layer and call it "init", on this new layer create a blank key frame on frame 2 and give it the frame label "init".</li>
<li>On the new "init" frame add the following code that will be used later to initialise our scrolling scroll bar.
<p><code><br />
// apply padding to the scroll thumb<br />
scrollPadding = 1;<br />
// call the set scroll height function<br />
call("setScrollHeight");<br />
</code>
</li>
<li>Inside the "CallFunctions" folder create a new layer and call it "setScrollHeight", on this new layer create a blank key frame on frame 3 and give it the frame label "setScrollHeight".</li>
<li>On the new "setScrollHeight" frame add the following code.
<p><code><br />
// resize the scroll track<br />
scrollTrack_mc._height = trackHeight;<br />
// resize the scroll thumb<br />
scrollThumb_mc._height = thumbHeight;<br />
// set the tscroll thumb position to the padding value<br />
scrollThumb_mc._y = scrollPadding;<br />
// store the max scroll position<br />
maxScroll = (trackHeight - thumbHeight);<br />
</code>
</li>
<li>Inside the "CallFunctions" folder create a new layer and call it "setScrollPercent", on this new layer create a blank key frame on frame 3 and give it the frame label "setScrollPercent".</li>
<li>On the new "setScrollPercent" frame add the following code.<br />
<code><br />
// set the scroll position based on a percentage value using math. <img src='http://blog.bittube.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
scrollThumb_mc._y = Math.max(((maxScroll*(scrollPercent/100))-scrollPadding), scrollPadding);<br />
</code>
</li>
</ol>
<p>This completes the development of the simple scrollbar component, all you need to do is to add it to the "ScrollingTextArea" clip we created earlier.</p>
<ol>
<li>Return to editing the "ScrollingTextArea" symbol in the library. Add a new layer above the "TextArea" layer and name it "ScrollBar".</li>
<li>Drag an instance of the SrollBar symbol out onto the new layer. Position the new instance at X:225 and Y:0.</li>
<li>Give the new ScrollBar instance an instance name of "scrollBar_mc".</li>
</ol>
<p>This completes the development of the scrolling text field component. All that remains is to show how it can be used within a project. To do this we need to add the scrolling text field to the stage of the main time line, add some ActionScript to populate the text field component, and then add a key press handler.</p>
<p><strong>Completing the project</strong></p>
<ol>
<li>Re-name the layer "Layer 1" on the main movie time line to "textArea".</li>
<li>Drag an instance of our "ScrollingTextArea" clip onto the new "textArea" layer. Position the new instance at X:0 and Y:19. Give the new instance an instance name of "scrollingText_mc".</li>
<li>Create a new Layer above the "textArea" layer and name the new layer "ActionScript". On frame 1 of this layer add the following code:
<p><code><br />
// dummy text to populate our text field<br />
textVar0 = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Fusce non urna. Ut leo metus, euismod non, semper et, ultrices at, nisl. Fusce non orci vitae dui blandit sagittis. Vestibulum laoreet feugiat leo. Suspendisse malesuada. Maecenas ultricies fermentum mi. Proin nulla. Mauris at dolor a nisl cursus congue. Maecenas id justo tincidunt augue molestie commodo. Donec nec metus eu tellus cursus mollis. Cras justo. Nunc sapien arcu, luctus id, porta sit amet, ultrices non, metus. Donec cursus. Aenean eleifend facilisis odio. Sed suscipit, odio eu fringilla ornare, eros metus eleifend quam, eget facilisis nulla turpis at tellus. Ut et massa a est faucibus fringilla. Nam nisl magna, condimentum non, lobortis et, porta non, ipsum. Aliquam ultricies augue sed urna. Sed ligula magna, vehicula at, scelerisque id, luctus eget, tortor. Donec aliquet purus ut neque.\n\nCras porttitor facilisis sem. Praesent cursus nulla euismod lorem. Donec vitae nunc. Quisque nec quam. Integer nonummy nisl vel mauris. Aliq\n\nam sed felis eu risus scelerisque scelerisque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed tortor nisl, sodales et, eleifend sed, porta eget, urna. Sed adipiscing dolor sit amet dolor. Vestibulum fermentum lorem quis nulla. Donec id ligula. Suspendisse potenti. Aenean ac quam quis sapien sollicitudin dapibus. Cras vitae neque nec ante pharetra hendrerit.\n\nDonec ante lectus, gravida non, nonummy et, pulvinar ut, lectus. Ut sem nisi, dapibus non, scelerisque at, convallis sit amet, dolor. Cras vitae velit et lectus rhoncus ullamcorper. Sed sodales adipiscing tortor. Curabitur non dui ut ligula laoreet mattis. Ut vitae lacus quis enim placerat tristique. Donec ornare mauris eget sem faucibus lacinia. Vestibulum hendrerit diam et neque. Vestibulum imperdiet. Maecenas tincidunt felis vitae lectus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam suscipit hendrerit felis. Mauris convallis elit vel justo. Nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam vel mi. Phasellus ultrices porta felis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Ut sed metus vel erat ultricies egestas. Pellentesque et ligula.";<br />
// alternate dummy text to try, this should hide the scroll bar<br />
textVar1 = "Test Text";<br />
// set the text var we want assigned to our text field<br />
scrollingText_mc.text = textVar0;<br />
// call teh set text function on our scrolling text field<br />
call("/scrollingText_mc/:setText");<br />
stop();<br />
</code>
</li>
</ol>
<p>This provides some dummy text with which to populate the text field component that has been developed, it then assigns one of the text variables to the components "text" value, and calls the "setText" function in the call frame of the scrolling text field component.</p>
<p>At this point you could export and test the movie, you should see the field is populated, and the scroll bar is correctly scaled and displayed to indicate that the text will scroll. Finally we create the controls to make the textscroll.</p>
<ol>
<li>Create a new button in your library and call it "keycatcher".</li>
<li>In the "up" frame of this button I have put simple text label with the string "KeyCatcher" so I can identify the symbol on stage.</li>
<li>Return to the main timeline and create a new layer above the "textArea" layer, name this new layer "KeyCatcher".</li>
<li>Drag an instance of the "keycatcher" button onto the stage on this new layer. Position it off stage at X:-110.0 and Y:0.</li>
<li>With the "keycatcher" button still selected add the following key handling code to the button:
<p><code><br />
// assign our down key press handler<br />
on (keyPress "<down>")<br />
{<br />
	// only cal the scroll function if the test is not at its maximum scroll<br />
	if(scrollingText_mc.currentScroll < scrollingText_mc.maxScroll)<br />
	{<br />
		call("scrollingText_mc/:scrollUp");<br />
	}<br />
}<br />
// assign our up key press handler<br />
on (keyPress "<Up>")<br />
{<br />
	// only cal the scroll function if the test is not at its minimum scroll<br />
	if(scrollingText_mc.currentScroll > 1)<br />
	{<br />
		call("scrollingText_mc/:scrollDown");<br />
	}<br />
}<br />
</down></code>
</li>
</ol>
<p>All that should remain is to save, export and test you new component in Device Central.</p>
<p><a href='http://blog.bittube.com/wp-content/uploads/2008/02/scrollingtext_20080227.zip' title='scrolling text component for Adobe FlashLite 1.1'>Download the source files of the scrolling text component for Adobe FlashLite 1.1</a></p>
<p><strong>NOTE:</strong> If you have used embedded fonts in your text area and are seeing no text appearing, try using device fonts (non embedded) instead. Apparently there is a know isue with Flash CS3 exporting embedded fonts in FlashLite 1.1 swf files that are viewed in Device Central. More information is discussed briefly <a href="http://www.adobe.com/cfusion/webforums/forum/messageview.cfm?forumid=68&catid=615&threadid=1334208&enterthread=y">on the Adobe Device Central forums</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2008/02/27/creating-a-scrolling-text-component-in-adobe-flashlite-11/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Using Compact Data Formats in FlashLite 1.1</title>
		<link>http://blog.bittube.com/2008/02/05/using-compact-data-formats-in-flashlite-11/</link>
		<comments>http://blog.bittube.com/2008/02/05/using-compact-data-formats-in-flashlite-11/#comments</comments>
		<pubDate>Tue, 05 Feb 2008 08:00:03 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 1]]></category>
		<category><![CDATA[BitTube Thoughts]]></category>
		<category><![CDATA[Flash Lite]]></category>
		<category><![CDATA[FlashLite 1]]></category>
		<category><![CDATA[Free Stuff]]></category>
		<category><![CDATA[Mobile Development]]></category>
		<category><![CDATA[Mobile Devices]]></category>
		<category><![CDATA[Mobile Phones]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[FlashLite]]></category>
		<category><![CDATA[Live]]></category>
		<category><![CDATA[London]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Nokia]]></category>
		<category><![CDATA[Status]]></category>
		<category><![CDATA[Tube]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/2008/02/05/using-compact-data-formats-in-flashlite-11/</guid>
		<description><![CDATA[Recently I have been involved in some FlashLite 1.1 development that requires a certain level of online data interaction. With memory being at a premium on Mobile devices I have been spending many a spare moment looking at efficient data transfer methods.
Stepping back into FlashLite 1.1 (flash 4/5) scripting has been a nostalgic experience. The [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I have been involved in some FlashLite 1.1 development that requires a certain level of online data interaction. With memory being at a premium on Mobile devices I have been spending many a spare moment looking at efficient data transfer methods.</p>
<p>Stepping back into FlashLite 1.1 (flash 4/5) scripting has been a nostalgic experience. The halcyon days of ActionScript 0/1 were where I broke my teeth, so to speak, on flash. It has been an eye opener also to return to using Perl as well in order to format data efficiently for consumption in my simple FlashLite 1.1 applications.</p>
<p>In these days of XML, SOAP, SQL, and huge component frameworks, it has been nice to go back the the "demo days" of flash and try and eak every byte out of my data format. Remember of course, no XML or SWX support in FlashLite 1.1.</p>
<p>So what have i been playing with? How about a Live London Tube Status FlashLite 1.1 application?</p>
<p><span id="more-235"></span></p>
<p>The Data format?<br />
<code><br />
lnID0=0&lnID1=0&lnID2=0&lnID3=0&lnID4=6&<br />
lnID5=0&lnID6=0&lnID7=1&lnID8=0&lnID9=0&<br />
lnID10=0&lnID11=0&itemLoaded=true<br />
</code></p>
<p>The lack of native structured data in FlashLite 1.1 means you have to think differently about what you are conveying, where best to store it, and how to access it. The example format above allows me to form references between pseudo-arrays in the FlashLite file that store much bulkier text labels, those strings can then be used multiple times in the application.</p>
<p>First I have a pseudo-array with my representation of the London Tube Lines.<br />
<code><br />
lineNames0 = "Bkrloo";<br />
lineNames1 = "Cntrl";<br />
lineNames2 = "Crcle";<br />
lineNames3 = "Dstrct";<br />
lineNames4 = "Est Lndn";<br />
lineNames5 = "Hmrsmth & Cty";<br />
lineNames6 = "Jblee";<br />
lineNames7 = "Mtropltn";<br />
lineNames8 = "Nrthrn";<br />
lineNames9 = "Pcdilly";<br />
lineNames10 = "Vctria";<br />
lineNames11 = "Wtrloo & Cty";<br />
</code></p>
<p>Also I store my interpretation of the common tube status' in a similar pseudo-array.<br />
<code><br />
lineStatus0 = "Normal Service";<br />
lineStatus1 = "Short Delays";<br />
lineStatus2 = "Long Delays";<br />
lineStatus3 = "Suspended";<br />
lineStatus4 = "Part Suspended";<br />
lineStatus5 = "Part Closed";<br />
lineStatus6 = "Planned Closure";<br />
</code></p>
<p>Then once the data has loaded, note the last name value pair (itemLoaded=true) it allows my load script to spot when all the data is in the application. I perform a little loop operation to link my labels to line id's and then use the value of the loaded variable to set the frame of a "status" movie clip.</p>
<p><code><br />
itemTotal = 0;<br />
i = 0;<br />
/*<br />
loop through the loaded data, we know that there are not more than 11 Tube lines in London, at the moment.<br />
*/<br />
while(i < 12)<br />
{<br />
	serviceLine = "/serviceBoard/serviceLine";<br />
	lnStatus = eval("/channelData_mc/:lnID" add i);<br />
	lnLabel = serviceLine add i add "/:_serviceItemLabel";<br />
	stLabel = serviceLine add i add "/:_serviceStatusLabel";<br />
	lnItem = serviceLine add i add "/serviceItemLine";<br />
	stItem = serviceLine add i add "/serviceItemStatus";<br />
	set((lnItem add "/:lnNum"), i+1);<br />
	set((stItem add "/:lnNum"), (lnStatus+1));<br />
	eval(serviceLine add i add "/:_serviceItemLabel") = eval("/channelData_mc/:lineNames" add i);<br />
	eval(serviceLine add i add "/:_serviceStatusLabel") = eval("/channelData_mc/:lineStatus" add lnStatus);<br />
	tellTarget(lnItem)<br />
	{<br />
        gotoAndStop(lnNum);<br />
	}<br />
	tellTarget(stItem)<br />
	{<br />
        gotoAndStop(lnNum);<br />
	}<br />
	++i;<br />
}<br />
</code></p>
<p>The Result?</p>
<p><a href="http://blog.bittube.com/london-tube-status-flashlite-application/" title="Download the Live London Tube Status FlashLite Mobile Application">Download the Live London Tube Status FlashLite 1.1 Application for Mobile Devices</a>.</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2008/02/05/using-compact-data-formats-in-flashlite-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
