<?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; ActionScript 2</title>
	<atom:link href="http://blog.bittube.com/category/development/actionscript-2/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>Memory Management in Flash Lite and ActionScript 2 using ASUnit</title>
		<link>http://blog.bittube.com/2008/12/22/memory-management-in-flash-lite-using-asunit/</link>
		<comments>http://blog.bittube.com/2008/12/22/memory-management-in-flash-lite-using-asunit/#comments</comments>
		<pubDate>Mon, 22 Dec 2008 13:21:06 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[BitTube Work]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Lite]]></category>
		<category><![CDATA[FlashLite 3]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/?p=450</guid>
		<description><![CDATA[In my new position the team I have joined and me are carying out some in depth testing of an Action Script 2 code base for Flash Lite 3 using, among other things, ASUnit based unit and acceptance tests. The early stage of development means it is too soon to leverage the new automated testing [...]]]></description>
			<content:encoded><![CDATA[<p>In my new position the team I have joined and me are carying out some in depth testing of an Action Script 2 code base for Flash Lite 3 using, among other things, <a href="http://www.asunit.com/">ASUnit</a> based unit and acceptance tests. The early stage of development means it is too soon to leverage the new <a href="http://is.gd/d6ex">automated testing features of Adobe Device Central CS4</a>. One of the most important aspects of our testing has been to check memory use over the lifetime of the applications we are developing. We are interested in tracking any memory leaks in our code and also any memory space fragmentation as the Flash Lite player creates or destroys objects and classes.</p>
<p>This memory information is viewable from Adobe Device Central in the Memory Panel, where device central provides a graph showing memory usage over time, separating <a href="http://is.gd/d6ff">Static Heap and Dynamic Heap</a> consumption of the player as your Flash Lite application runs. </p>
<p><img src="http://blog.bittube.com/wp-content/uploads/2008/12/memorypanel.png" alt="MemoryPanel.png" border="0" width="270" height="168" /></p>
<p>Testing for memory use, loss and leaks is currently not present as standard in ASUnit for ActionScript 2. In order to include this form of testing at a basic level we have employed a trick I picked up at Max San Francisco this year (If you are the person that explained the trick, please leave a comment so I can credit you). The technique makes use of the FlashLite SharedObject as a way of measuring the file size of objects and classes before and after you think you have destroyed them in your code.</p>
<p>The premiss is a simple one. In your test as part of the test setup create a local SharedObject create an empty data property and save the SharedObject to disk, then call the SharedObject.getSize() method and store the size of your empty SharedObject. The code should look something like this.</p>
<p><code>// size variation threshold for the SharedObject<br />private static var SIZEVARIANCE:Number = 5;<br />private var iS:SharedObject;<br />private var iSSize:Number;<br />// standard ASUnit test setup<br />private function setUp():Void<br />{<br />instance = new TestableClassObject();<br />iS = SharedObject.getLocal("iS");<br />iS.clear();<br />iS.data.iS = undefined;<br />iS.flush();<br />iSSize = iS.getSize();<br />}</code></p>
<p>Some things to keep in mind are the following. The length of the SharedObject name and the length of the data property name will have an impact on the result of SharedObject.getSize(). In the above example I have limited both these values to 2 characters ('iS'). All that remains is to link the value obtained from this setup function into a standard ASUnit test which looks something like this:</p>
<p><code>public function testDestroy():Void<br />{<br />instance.destroy();<br />iS.data.iS = instance;<br />assertTrue("testDestroy : test that the TestableClassObject 'instance' is destroyed successfully by checking size variation (" + SIZEVARIANCE + ") in SharedObject", ((iS.getSize() - iSSize) < SIZEVARIANCE));<br/>}</code></p>
<p>In this test I am simply calling the target class instance's destroy method, which should manage the removal of any stored references, arrays and object present in the class. I then save the locally stored instance back to the existing shared object, re-call SharedObject.getSize() and compare the size difference to the value of our initial empty SharedObject (iSSize) from the test setup method.</p>
<p>If the file size of the SharedObject is greater than the SIZEVARIANCE threshold then the test will fail. If that is the case then you have the ability to inspect the shared object using a SharedObject viewer (I use the free <a href="http://solve.sourceforge.net/">Solve</a> by <a href="http://www.darronschall.com/">Darron Schall</a>). In the viewer you will be able to see what items are not being properly removed from your class instance oronject. A common issue I have seen is the failure to destroy arrays that are prpperties of my classes for example. Some time over the holiday break I will put together a full example for download.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2008/12/22/memory-management-in-flash-lite-using-asunit/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using MTASC to compile Flash Lite (FSCommand2) on OSX</title>
		<link>http://blog.bittube.com/2008/11/17/using-mtasc-to-compile-flash-lite-fscommand2-on-osx/</link>
		<comments>http://blog.bittube.com/2008/11/17/using-mtasc-to-compile-flash-lite-fscommand2-on-osx/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 18:01:39 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[BitTube Thoughts]]></category>
		<category><![CDATA[BitTube Work]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[FlashLite 2]]></category>
		<category><![CDATA[FlashLite 3]]></category>
		<category><![CDATA[Flash Lite]]></category>
		<category><![CDATA[Mobile Development]]></category>
		<category><![CDATA[Mobile Web Development]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/?p=432</guid>
		<description><![CDATA[
For some time I have used Eclipse, FDT and MTASC as my preferred weapon of choice when doing AS2 development, I switch to Flex Builder for AS3 , Flex or AIR. One spanner in these works when using Mac OSX had been when producing mobile content for FlashLite 2+. Flash Lite 2 and FLash Lite [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mtasc.org/"><img src="http://blog.bittube.com/wp-content/uploads/2008/11/mtasc_logo.gif" alt="" title="mtasc_logo" width="195" height="101" class="alignleft size-full wp-image-433" /></a><br />
For some time I have used Eclipse, FDT and MTASC as my preferred weapon of choice when doing AS2 development, I switch to Flex Builder for AS3 , Flex or AIR. One spanner in these works when using Mac OSX had been when producing mobile content for FlashLite 2+. Flash Lite 2 and FLash Lite 3 can both use ActionScript 2 and so as MTASC should be able to compile FLash Lite content. However on OS X MTASC still appears to have an issue compiling the FSCommand2() function, this was fixed in teh 1.13 version of the win32 version of the compiler but It seems the OS X version does not include the same fix for FSCommand2(). The FSCommand2() function used in Flash Lite development to control things like the SoftKeys or forcing an application to display at full screen on mobiles or devices.</p>
<p>Last week I took the time to find a way to work around this issue in order to get back to my development tool chain when developing Flash Lite content. For those users that are more experienced with this form of development the only answer seems to be to create a symbol in the library of your fla associate any classes that make use of the FSCommand2 to the new symbol. Make sure the Clip is exported in some fashion, either by physically placing it on the stage, or setting it to export for ActionScript. Next export a stub SWF from the fla. In eclipse, or when using MTASC you will need to use the '-keep' switch on the command line when you run MTASC to compile your Flash Lite content, this will also make sure the Flash Lite swf header will remain in tact as well. This forces MTASC to keep any assets that are already in the target output swf.</p>
<p>It is also worth mentioning that in your application code you will not be able to refer to the class that contains functionality using the FSCommand2. So applications like FDT will think there is an error as you will be unable to define the 'type' of your class. A second note is that MTASC will flag that there is a movie clip associated with a class, but that is has not been compiled.</p>
<p><code><br />
 Warning : The MovieClip KeyController needs the class { Class path containing FSCommand2() function } which was not compiled :<br />
Please force compilation of this class by adding it to the commandline.<br />
</code></p>
<p>I have not been able to completely remove the FLA or the Flash IDE completely from my tool chain, but in all honesty I think there are alot of use cases in Flash Lite development that still require a level of timeline usage, so I happy with this compromise.</p>
<p>I have created an example package of files that you can <a href="http://blog.bittube.com/wp-content/uploads/2008/11/mtasc_compile.zip">download from here</a> or in <a href="http://blog.bittube.com/downloads/">the download area</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2008/11/17/using-mtasc-to-compile-flash-lite-fscommand2-on-osx/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fantastic Networking and Learning opportunities at Adobe Max</title>
		<link>http://blog.bittube.com/2008/10/31/fantastic-networking-and-learning-opportunities-at-adobe-max/</link>
		<comments>http://blog.bittube.com/2008/10/31/fantastic-networking-and-learning-opportunities-at-adobe-max/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 15:47:30 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Flash Lite]]></category>
		<category><![CDATA[FlashCast]]></category>
		<category><![CDATA[MA]]></category>
		<category><![CDATA[Mobile Development]]></category>
		<category><![CDATA[Flash Cast]]></category>
		<category><![CDATA[MAX]]></category>
		<category><![CDATA[Mobile Devices]]></category>
		<category><![CDATA[San Fransico]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/?p=415</guid>
		<description><![CDATA[With Adobe Max San Francisco now only 2 weeks away its important to make sure you have organized your schedule, if you haven't already. This year Adobe hosting 2 events which aim to bring developers together with some of the industry leaders in the mobile market place. So if you are a developer interested in [...]]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_419" class="wp-caption alignleft" style="width: 182px"><img src="http://blog.bittube.com/wp-content/uploads/2008/10/aobe_max08_thumb.png" alt="adobe max08 thumbnail" title="adobe max08 thumbnail" width="172" height="138" class="size-full wp-image-419" /><p class="wp-caption-text">   </p></div> With Adobe Max San Francisco now only 2 weeks away its important to make sure you have organized your schedule, if you haven't already. This year Adobe hosting 2 events which aim to bring developers together with some of the industry leaders in the mobile market place. So if you are a developer interested in mobile or you already have content or existing applications that you think might work as a mobile application or service, Adobe Max should offer some great opportunities to get information from the experts.</p>
<p><strong>Mobile Summit<br />
November 16, 2008 at the Marriott from 1pm-6pm</strong><br />
Join Adobe and our partners — Nokia, Qualcomm®, Verizon, Sony Ericsson, GetJar, Thumbplay®, and Zed — to learn about new opportunities for mobile developers this year. Get a sneak peak at what you will see and hear at MAX before anyone else does! Hear from Adobe partners and key industry players as they present the newest mobile solutions, technologies, and distribution opportunities for mobile developers.  To learn more and RSVP for this event go to: <a href="http://www.eventsadobe.com/mobilesummitmax08/invite.html">http://www.eventsadobe.com/mobilesummitmax08/invite.html</a></p>
<p><strong>Mobile Fast Pitch Networking Party<br />
November 19, 2008 at the Thirsty Bear from 6:16pm-9:30pm</strong><br />
Adobe is hosting a special Mobile Networking Party to allow developers to showcase their mobile applications using our Adobe® Flash® mobile technologies. If you already have a web-based application and are thinking of going mobile, you can also present your idea and get feedback from our industry leaders. Join us to support fellow developers or to present your ideas.  For more RSVP and presentation information for this event go to: <a href="http://www.eventsadobe.com/mobilenetworkingparty/invite.html ">http://www.eventsadobe.com/mobilenetworkingparty/invite.html<br />
</a></p>
<p>In addition to these 2 events there are also a number of great sessions on at the conference tailored to Mobile:</p>
<ul>
<li>Open Screen Project: Delivering Rich Internet Experiences Across Devices</li>
<li>Creating Mobile Applications: A Real-World Example</li>
<li>Mobile Workflows with Creative Suite® 4 and Adobe Device Central CS4</li>
<li>Flash Lite 3: Learn How to Package and Distribute Mobile Content</li>
<li>Spotlight on Finetune and Teknision™: Building a Multiscreen Application</li>
<li>Create Unique Browsing Experiences on Nokia Phones</li>
<li>How to Build a Mobile Business</li>
<li>Developing the Ultimate Flash Cast™ Channels</li>
<li>Project Capuchin – Bridging Adobe Flash Lite and Java ME™</li>
</ul>
<p>Remember the most popular MAX sessions fill very early, so be sure to register today to secure seats in your preferred sessions. You’ll be surprised by what real live Adobe Flash Lite applications exist today.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2008/10/31/fantastic-networking-and-learning-opportunities-at-adobe-max/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>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>FlashLite Helper Classes for Download. Pt 2. NetworkBroadcaster</title>
		<link>http://blog.bittube.com/2007/10/22/flashlite-helper-classes-for-download-pt-2-networkbroadcaster/</link>
		<comments>http://blog.bittube.com/2007/10/22/flashlite-helper-classes-for-download-pt-2-networkbroadcaster/#comments</comments>
		<pubDate>Mon, 22 Oct 2007 15:35:23 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[BitTube Work]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Downloads]]></category>
		<category><![CDATA[Flash 7]]></category>
		<category><![CDATA[Flash Lite]]></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[ActionScript]]></category>
		<category><![CDATA[Battery]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[FlashLite]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/2007/10/22/flashlite-helper-classes-for-download-pt-2-networkbroadcaster/</guid>
		<description><![CDATA[Following on from the simple BatteryBroadcaster class posted last week I have put together a second helper class for FlashLite, again built in ActionScript 2, so it should work for any FlashLite 2 or FlashLite 3 project. The NetworkBroadcaster class centralises all network and signal related events, and broadcasts any changes to listeners on 2 [...]]]></description>
			<content:encoded><![CDATA[<p>Following on from the simple BatteryBroadcaster class <a href="http://blog.bittube.com/2007/10/18/flashlite-2-helper-classes-for-download-pt-1-batterybroadcaster/">posted last week</a> I have put together a second helper class for FlashLite, again built in ActionScript 2, so it should work for any FlashLite 2 or FlashLite 3 project. The NetworkBroadcaster class centralises all network and signal related events, and broadcasts any changes to listeners on 2 separate intervals. One for general signal levels, the other for "other" network status events, for example changes in network generation support.<br />
<span id="more-219"></span><br />
The idea here is that signal levels probably change more frequently than some of the other network properties, so we may not need to check them so frequently. In theory this should reduce processing in our application, and as a result save our users some precious battery time. I say in theory, I haven't tested is this makes any noticeable difference.<br />
<br />
The NetworkBroadcaster class, like the BatteryBroadcaster class, uses some custom "Event" classes, SignalEvent and NetworkEvent, these both extend from the same custom core Event class as was used in the BatteryBroadcaster class. Once again I am using the EventDispatcher class to broadcast the Network and signal changes. This should mean that there is a limited file size over head in your application if you are:</p>
<ol>
<li>Already using the <code>mx.events.EventDispatcher</code> class in your FlashLite application</li>
<li>Planning on or maybe already are, using my <code>com.bittube.core.BatteryBroadcaster</code> class in your FlashLite application. (incidentally if you are I am honored, and would also like to know <img src='http://blog.bittube.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  )</li>
</ol>
<p>
You can download the NetworkBroadcaster classes from the link below.<br />
<br />
<a href="http://blog.bittube.com/assets/downloads/NetworkBroadcaster.zip">Download the NetworkBroadcaster.zip</a><br />
<br />
It is also posted in the <a href="http://blog.bittube.com/downloads/">Downloads</a> area if you loose this post.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2007/10/22/flashlite-helper-classes-for-download-pt-2-networkbroadcaster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FlashLite 2 Helper Classes for Download. Pt 1. BatteryBroadcaster</title>
		<link>http://blog.bittube.com/2007/10/18/flashlite-2-helper-classes-for-download-pt-1-batterybroadcaster/</link>
		<comments>http://blog.bittube.com/2007/10/18/flashlite-2-helper-classes-for-download-pt-1-batterybroadcaster/#comments</comments>
		<pubDate>Thu, 18 Oct 2007 21:46:45 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Downloads]]></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[ActionScript]]></category>
		<category><![CDATA[Battery]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[FlashLite]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/2007/10/18/flashlite-2-helper-classes-for-download-pt-1-batterybroadcaster/</guid>
		<description><![CDATA[I have been sorting through some of my old code, commenting up some bits and generally refreshing the grey matter on some of the things I have been working on. I thought I would put some of the helper classes I use out into the wild. First up is a simple class that I used [...]]]></description>
			<content:encoded><![CDATA[<p>I have been sorting through some of my old code, commenting up some bits and generally refreshing the grey matter on some of the things I have been working on. I thought I would put some of the helper classes I use out into the wild. First up is a simple class that I used for monitoring battery status of mobile phones or other mobile devices in FlashLite 2, or FlashLite 3, I would think (not tested yet) .</p>
<p><img src='http://blog.bittube.com/wp-content/uploads/2007/10/batterybroadcaster.jpg' alt='Flash Lite Battery Broadcaster' /></p>
<p><span id="more-214"></span></p>
<p>The Class is actually part of a larger set of components and classes I have. I will try and prepare some of the others for release as well, for now this was the easiest to tease out and make presentable. It uses a custom "Event" class and the EventDispatcher class to form an "oopy" object that broadcasts changes in your mobile phone battery status to any listener objects.</p>
<p>You can download the BatteryBroadcaster classes from the link below. </p>
<p><a href="http://blog.bittube.com/assets/downloads/BatteryBroadcaster.zip">Download the BatteryBroadcaster.zip</a></p>
<p>It is also posted in the <a href="http://blog.bittube.com/downloads/">Downloads</a> area if you loose this post.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2007/10/18/flashlite-2-helper-classes-for-download-pt-1-batterybroadcaster/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FlashLite 3 Player available for Nokia N95</title>
		<link>http://blog.bittube.com/2007/10/04/flashlite-3-player-available-for-nokia-n95/</link>
		<comments>http://blog.bittube.com/2007/10/04/flashlite-3-player-available-for-nokia-n95/#comments</comments>
		<pubDate>Thu, 04 Oct 2007 16:23:38 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[FlashLite 3]]></category>
		<category><![CDATA[Mobile Phones]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Devices]]></category>
		<category><![CDATA[FlashLite]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[N95]]></category>
		<category><![CDATA[Nokia]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/2007/10/04/flashlite-3-player-available-for-nokia-n95/</guid>
		<description><![CDATA[If you are interested in testing your new FlashLite 3 content on device, as all good developers should be, the there is an interim build of FlashLite 3 availible that has been certified only for Nokia N95. 
You must submit your IMEI number by Noon Eastern Time on the 16th of October. Details of the [...]]]></description>
			<content:encoded><![CDATA[<p>If you are interested in testing your new FlashLite 3 content on device, as all good developers should be, the there is an interim build of FlashLite 3 availible that has been certified only for Nokia N95. </p>
<p>You must submit your IMEI number by Noon Eastern Time on the 16th of October. Details of the email and how to get your IMEI Number can be found at the following location.</p>
<p><a href="http://www.adobe.com/products/flashlite/developer_edition/"><br />
FlashLite 3 Developer Edition for Nokia N95</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2007/10/04/flashlite-3-player-available-for-nokia-n95/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Detecting Screen Rotation in Nokia N95 Browser</title>
		<link>http://blog.bittube.com/2007/09/18/detecting-screen-rotation-in-nokia-n95-browser/</link>
		<comments>http://blog.bittube.com/2007/09/18/detecting-screen-rotation-in-nokia-n95-browser/#comments</comments>
		<pubDate>Tue, 18 Sep 2007 20:30:41 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Flash 7]]></category>
		<category><![CDATA[FlashLite 2]]></category>
		<category><![CDATA[Mobile Development]]></category>
		<category><![CDATA[Mobile Devices]]></category>
		<category><![CDATA[Mobile Phones]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/2007/09/18/detecting-screen-rotation-in-nokia-n95-browser/</guid>
		<description><![CDATA[Continuing my work with Web Development for Mobile Phones and other Devices I updated my very simple early FlashLite 2 tests that I showed on in screen shots on my N95. 
In those posts I discussed the problem of detecting screen rotation detection on the Nokia N95. I could not get the FlashLite player to [...]]]></description>
			<content:encoded><![CDATA[<p>Continuing my work with Web Development for Mobile Phones and other Devices I updated my very simple <a href="http://blog.bittube.com/2007/04/19/flashlite2-development-for-the-nokia-n95-browser/">early FlashLite 2 tests</a> that I showed on in <a href="http://blog.bittube.com/2007/04/20/nokia-n95-flashlite-2-browser-support-screen-shots/">screen shots on my N95</a>. </p>
<p>In those posts I discussed the problem of detecting screen rotation detection on the Nokia N95. I could not get the FlashLite player to register a change in Stage size when switching from portrait to landscape viewing modes. I have since added a little JavaScript function that I thought might be able to detect this change in lieu of the FlashPlayer not working.</p>
<p>Unfortunately all methods I have attempted so far to register a change in orientation have failed. The browser does not seem to support the onResize event which I assumed would provide the answer. This limitation appears similar to information I have found from iPhone web developers that have encountered similar issues.</p>
<p><a href="http://blogs.smugmug.com/don/2007/07/13/smugmug-on-our-iphones/">SmugBlog</a> Makes Reference to it on there site. There is also a couple of links to a Framework that provides a work around of sorts using an interval.</p>
<p><a href="http://www.joehewitt.com">joehewitt</a>, the developer responsible for the facebook I belive, has published the <a href="http://www.joehewitt.com/iui/">iUI</a>  as a <a href="http://code.google.com/p/iui/">google code project</a>.</p>
<p>In addition to the resize problem it seems that the FlashLite 2 player within the browser does not offer support for the FlashVars parameter of the Embed and Object tags, it also does not appear to support appending variables on the SWF path name. These limitations would not allow values to be passed into the SWF file at run time.</p>
<p>A final test I performed was to export my test movie not as FlashLite content, but rather as Flash Player 6 and Flash Player 7 content with ActionScript 2 support. The thinking behind this was that this would offer me some lowest common denominator for publishing mobile flash content on a broad range of devices. Sony's PSP of course uses the Flash Player 6 as its platform while Nintendo's Wii uses the Flash Player 7. Both versions of the file ran within the FlashLite 2 Player. Although no the IDE did complain about using FlashLite specific FSCommand2 functions. In addition there was some issues with the image loader in the Flash Player 6 version of the swf when loaded by the FlashLite 2 player, the image was rotated through -90 degrees for some reason.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2007/09/18/detecting-screen-rotation-in-nokia-n95-browser/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Nokia N95 FlashLite 2 Browser Support Screen Shots</title>
		<link>http://blog.bittube.com/2007/04/20/nokia-n95-flashlite-2-browser-support-screen-shots/</link>
		<comments>http://blog.bittube.com/2007/04/20/nokia-n95-flashlite-2-browser-support-screen-shots/#comments</comments>
		<pubDate>Fri, 20 Apr 2007 11:46:43 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[BitTube Work]]></category>
		<category><![CDATA[Flash Lite]]></category>
		<category><![CDATA[FlashLite 2]]></category>
		<category><![CDATA[Mobile Devices]]></category>
		<category><![CDATA[Mobile Phones]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/2007/04/20/nokia-n95-flashlite-2-browser-support-screen-shots/</guid>
		<description><![CDATA[Following my initial post last night detailing some of the player information of the FlashLite 2 support in the N95 web browser, and also one of the issues. I thought I would take a quick look at the files from last night with fresh eyes over lunch. I have included a couple of screen shots [...]]]></description>
			<content:encoded><![CDATA[<p>Following my initial <a href="http://blog.bittube.com/2007/04/19/flashlite2-development-for-the-nokia-n95-browser/">post last night</a> detailing some of the player information of the FlashLite 2 support in the N95 web browser, and also one of the issues. I thought I would take a quick look at the files from last night with fresh eyes over lunch. I have included a couple of screen shots to show the rotate issue more clearly. The page that is in these screen shots is at the following location.<br />
<a href="http://www.bittube.com/flashlite/index.html"><br />
http://www.bittube.com/flashlite/index.html</a></p>
<p>In the file I am simply reporting to screen the Player version, the stage width and height, and then also loadin an image thumbnail from my <a href="http://blog.bittube.com/v/animals/?g2_GALLERYSID=10be8fc298720081876a062d717ddcbc">new gallery of animal themed photography</a></p>
<p>The bottom 2 fields are reporting the FlashLite players <code>fscommand2("GetFreePlayerMemory")</code> and <code> fscommand2("GetTotalPlayerMemory")</code></p>
<p>In the first screen the FlashLite movie from this URL loads has loaded in the Vertical page format at a resolution of 240x320 (wxh).</p>
<p><a href='http://blog.bittube.com/wp-content/uploads/2007/04/flashlitevertical.jpg' title='Nokia N95 FlashLite 2 Vertical Browser Support'><img src='http://blog.bittube.com/wp-content/uploads/2007/04/flashlitevertical.thumbnail.jpg' alt='Nokia N95 FlashLite 2 Browser Support' /></a></p>
<p>In the second screen shot below the browser has been rotated into its horizontal format. This operation does not seem to cause the <code>Stage.onResize</code> event to fire, and the flash movie still reports a resolution of 240x320 (wxh).</p>
<p><a href='http://blog.bittube.com/wp-content/uploads/2007/04/flashlitehorizontal.jpg' title='Nokia N95 FlashLite 2 Horizontal Browser Support'><img src='http://blog.bittube.com/wp-content/uploads/2007/04/flashlitehorizontal.thumbnail.jpg' alt='Nokia N95 FlashLite 2 Horizontal Browser Support' /></a></p>
<p>A side effect of this rotation of the flash movie is that it seems to get scaled down in order to view it in the new format. This means the text becomes unreadable. Very frustrating.</p>
<p>The N95 does support JavaScript in its browser, next step i suppose is to see if that can be used to detect the change in format.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2007/04/20/nokia-n95-flashlite-2-browser-support-screen-shots/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>FlashLite2 Development for the Nokia N95 Browser</title>
		<link>http://blog.bittube.com/2007/04/19/flashlite2-development-for-the-nokia-n95-browser/</link>
		<comments>http://blog.bittube.com/2007/04/19/flashlite2-development-for-the-nokia-n95-browser/#comments</comments>
		<pubDate>Thu, 19 Apr 2007 21:14:02 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[Flash Lite]]></category>
		<category><![CDATA[FlashLite 2]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/2007/04/19/flashlite2-development-for-the-nokia-n95-browser/</guid>
		<description><![CDATA[I took delivery of a new Nokia 95 a few days ago, and I must confess I am very, very happy. One thing that attracted me to the device was the IN BROWSER FlashLite 2 support, this offers a way to build web experiences into the browser that owners of the new Nokia smartphone will [...]]]></description>
			<content:encoded><![CDATA[<p>I took delivery of a new Nokia 95 a few days ago, and I must confess I am very, very happy. One thing that attracted me to the device was the IN BROWSER FlashLite 2 support, this offers a way to build web experiences into the browser that owners of the new Nokia smartphone will be see. Of course this Assumes that the developers of the content stick to the u<a href="http://www.adobe.com/devnet/devices/articles/flashlite_training_excerpt_02.html">sual limitations</a> of developing for FlashLite, and other limited performance devices.</p>
<p>So I have spent a little time getting to the usual nitty gritty that us flash developers require in order to produce to the Nokia N95. I.E.</p>
<p>The FlashLite Player on the N95 reports the following from the <code>System.capabilities.version</code> command.</p>
<p><code>FL 7,1,90,0</code></p>
<p>When using html that sets the swf files width and height to 100% I get the following information from the N95 browser.</p>
<p><code>Stage.width == 240</code><br />
<code>Stage.height == 320</code></p>
<p>Here comes the but......</p>
<p>When I make use of the rotate screen functionality that the N95 offers to view the SWF in landscape format, and measure the width and height. I get the following.</p>
<p><code>Stage.width == 240</code><br />
<code>Stage.height == 320</code></p>
<p>I extended my movie to make use of the <code>Stage.onResize</code> event. But at no point could I see that event fire through my event handler. As a result I have not been able to see the expected result in landscape format of</p>
<p><code>Stage.width == 320</code><br />
<code>Stage.height == 240</code></p>
<p>Maybe I have made a simple mistake.</p>
<p>The N95 does seem to be a very capable device. The battery is pretty short lived, but the functionality it offers is great. From a development point of view I will be looking to see what I can do in the Browser and out, It would be wonderful if the Browser offers FlashLite 3 once that is available, maybe a later firmware patch. We shall see.</p>
<p>my first example is (very basic) available to view at this location.<a href="http://www.bittube.com/flashlite/index.html"> bittube.com/flashlitehome/index.html</a></p>
<p>I will package the source, what there is and post it later on.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2007/04/19/flashlite2-development-for-the-nokia-n95-browser/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Useful Flash Lite Development Tool</title>
		<link>http://blog.bittube.com/2007/03/23/useful-flash-lite-development-tool/</link>
		<comments>http://blog.bittube.com/2007/03/23/useful-flash-lite-development-tool/#comments</comments>
		<pubDate>Fri, 23 Mar 2007 17:25:29 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[Flash 8]]></category>
		<category><![CDATA[Flash Lite]]></category>
		<category><![CDATA[Mobile Devices]]></category>
		<category><![CDATA[Mobile Phones]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/2007/03/23/useful-flash-lite-development-tool/</guid>
		<description><![CDATA[For those of you that are developing Flash Lite applications and games you will be well aware of the issues of Memory leaks in the Flash lite player. One area where this can occur is in the creation of "crossed references". These result in objects that are effectively locked as far as Garbage Collection is [...]]]></description>
			<content:encoded><![CDATA[<p>For those of you that are developing Flash Lite applications and games you will be well aware of the issues of Memory leaks in the Flash lite player. One area where this can occur is in the creation of "crossed references". These result in objects that are effectively locked as far as Garbage Collection is concerned, and so result in memory 'leaking' over time.</p>
<p><span id="more-164"></span></p>
<p>A crossed reference occurs in situations such as this.</p>
<p>[as]<br />
var myFirstObject:Object = new Object();<br />
var mySecondObject:Object = new Object();</p>
<p>myFirstObject.reference = mySecondObject;<br />
mySecondObject.reference = myFirstObject;</p>
<p>myFirstObject = null;<br />
mySecondObject = null;</p>
<p>delete myFirstObject;<br />
delete mySecondObject;<br />
[/as]</p>
<p>In each case the objects above have a property that references an object, and the reference is cyclical in nature. As far as the Garbage Collection routine in the player is concerned each object will always have a usage count of 1 regardless of the delete statements as a result of the reference in the other object. The result is that neither object will be cleared from memory, hence the leak. If such a situation were to arise in a looping operation the loss of memory is compounded.</p>
<p>[as]<br />
var i:Number = 0;<br />
var iTotal:Number = 5;</p>
<p>whie(i < iTotal)<br />
{<br />
	var myFirstObject:Object = new Object();<br />
	var mySecondObject:Object = new Object();</p>
<p>	myFirstObject.reference = mySecondObject;<br />
	mySecondObject.reference = myFirstObject;</p>
<p>	myFirstObject = null;<br />
	mySecondObject = null;</p>
<p>	delete myFirstObject;<br />
	delete mySecondObject;<br />
	++i;<br />
}<br />
[/as]</p>
<p>Now the above example is a very simplistic example, and is very plain to avoid. With more complex applications however, these situations can arise over many classes and may not be any where near as blatant. This little flash extension offers a great interface for highlighting those crossed references in small applications vital for Flash Lite developers to find and remove.</p>
<p><a href="http://blog.madarco.net/object-explorer">object-explorer</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2007/03/23/useful-flash-lite-development-tool/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Open Source ActionScript, an end to the flash plug-in?</title>
		<link>http://blog.bittube.com/2006/12/04/open-source-actionscript-an-end-to-the-plug-in/</link>
		<comments>http://blog.bittube.com/2006/12/04/open-source-actionscript-an-end-to-the-plug-in/#comments</comments>
		<pubDate>Mon, 04 Dec 2006 14:19:10 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Flash 8]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/2006/12/04/open-source-actionscript-an-end-to-the-plug-in/</guid>
		<description><![CDATA[Today on Adobe.com I noticed the news that Adobe have released the source code for the ActionScript Virtual Machine to Mozilla Foundation.
The release, which is dated 7th November 2006 can be found here and provides more information. From the release it sound like the code is to be included into future releases of the fire [...]]]></description>
			<content:encoded><![CDATA[<p>Today on <a href="http://www.adobe.com/">Adobe.com</a> I noticed the news that Adobe have released the source code for the ActionScript Virtual Machine to Mozilla Foundation.</p>
<p>The release, which is dated 7th November 2006 can be found <a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/200611/110706Mozilla.html">here</a> and provides more information. From the release it sound like the code is to be included into future releases of the fire fox browser.</p>
<p>Does this mean an end to the Flash Plug-in for future Mozilla based Browsers? How will this impact XUL runner and its capabilities in comparison to Adobes much talked about Apollo? </p>
<p><a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/200611/110706Mozilla.html">Adobe and Mozilla Foundation to Open Source Flash Player Scripting Engine</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2006/12/04/open-source-actionscript-an-end-to-the-plug-in/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>LoadQueueManager Update.</title>
		<link>http://blog.bittube.com/2006/10/27/loadqueuemanager-update/</link>
		<comments>http://blog.bittube.com/2006/10/27/loadqueuemanager-update/#comments</comments>
		<pubDate>Fri, 27 Oct 2006 04:09:02 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Downloads]]></category>
		<category><![CDATA[Flash 8]]></category>
		<category><![CDATA[LoadQueueManager]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/2006/10/27/loadqueuemanager-update/</guid>
		<description><![CDATA[I had intended to post information about this before going on holiday but it got missed before leaving. Thanks to Jester for reminding me, I finally checked the comments  
Long post short its here.

I began reworking the LoadQueueManager before leaving, its an early rebuild, but what i tested was far more stable than the [...]]]></description>
			<content:encoded><![CDATA[<p>I had intended to post information about this before going on <a href="http://travel.bittube.com/blog/">holiday</a> but it got missed before leaving. Thanks to Jester for reminding me, I finally checked the comments <img src='http://blog.bittube.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Long post short its <a href="http://blog.bittube.com/wp-content/uploads/2008/09/loadqueuemanager.zip">here</a>.</p>
<p><span id="more-147"></span></p>
<p>I began reworking the LoadQueueManager before leaving, its an early rebuild, but what i tested was far more stable than the last revisions. Also I have included some of the features that people had asked of me (total queue progress, and also separate listeners for each item in the queue are two items that stick out).</p>
<p>It is a more complex set of files, and only part complete, but rather than leave people waiting, have at it. I wont be doing any other work on it for some time due to excessive <a href="http://travel.bittube.com/blog/">holiday commitments</a> (hey a man has to surf <img src='http://blog.bittube.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ) but feel free to leave comments, and send updates if you do any.</p>
<p><a href="http://blog.bittube.com/2006/10/27/loadqueuemanager-update/loadqueuemanager/p">LoadQueueManager.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2006/10/27/loadqueuemanager-update/feed/</wfw:commentRss>
		<slash:comments>5</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>Landrover Go Beyond, Phase 2 Launched</title>
		<link>http://blog.bittube.com/2006/08/04/landrover-go-beyond-phase-2-launched/</link>
		<comments>http://blog.bittube.com/2006/08/04/landrover-go-beyond-phase-2-launched/#comments</comments>
		<pubDate>Fri, 04 Aug 2006 10:09:51 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[BitTube Work]]></category>
		<category><![CDATA[Flash 8]]></category>
		<category><![CDATA[Localization]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/2006/08/04/landrover-go-beyond-phase-2-launched/</guid>
		<description><![CDATA[Wunderman Interactive have just launched the second phase to the Land Rover Go Beyond site. The site offers user generated input to the content base and utilises a lot of Flash 8 features, with the back end being controlled through Flash Remoting. The challenges on such a flexible project are immense, it was a pleasure [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.wundermaninteractive.com">Wunderman Interactive</a> have just launched the second phase to the <a href="http://www.landrover.com/gobeyond/">Land Rover Go Beyond site</a>. The site offers user generated input to the content base and utilises a lot of Flash 8 features, with the back end being controlled through Flash Remoting. The challenges on such a flexible project are immense, it was a pleasure to be involved. Congratulations to everyone who touched the project. I imagine there have been a number of late nights in Camden recently <img src='http://blog.bittube.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2006/08/04/landrover-go-beyond-phase-2-launched/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash Localization &#8211; Managing Text &amp; Fonts pt.1</title>
		<link>http://blog.bittube.com/2006/08/03/flash-localization-managing-text-fonts-pt1/</link>
		<comments>http://blog.bittube.com/2006/08/03/flash-localization-managing-text-fonts-pt1/#comments</comments>
		<pubDate>Thu, 03 Aug 2006 09:43:12 +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 8]]></category>
		<category><![CDATA[LFPUG]]></category>
		<category><![CDATA[Localization]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/2006/08/03/flash-localization-managing-text-fonts-pt1/</guid>
		<description><![CDATA[I have had a number of emails, messenger texts, and commentâ€™s on my blog, asking for further information from my presentation notes on localizing flash. Localizing flash has such a wide scope of information, when I prepared my presentation I did take the â€˜data blastâ€™ approach of delivery. 
I had a good idea the area(s) [...]]]></description>
			<content:encoded><![CDATA[<p>I have had a number of emails, messenger texts, and commentâ€™s on my blog, asking for further information from my <a id="p133" href="http://blog.bittube.com/wp-content/uploads/2006/08/Flash%20Card.doc">presentation notes</a> on localizing flash. Localizing flash has such a wide scope of information, when I prepared my presentation I did take the â€˜data blastâ€™ approach of delivery. </p>
<p>I had a good idea the area(s) that people might like more in depth information, but I also wanted to take into account some broader work flow and process issues that I feel really need to be discussed. In this post I would like to present some more detailed information regarding one of the slides I used at the <a href="http://www.lfpug.com/">LFPUG</a> <a href="http://www.lfpug.com/presentations/2006_07_27_williamson/">presentation</a> that, as expected, has generated a lot of feed back.</p>
<p><strong>Managing Text & Fonts</strong></p>
<p><span id="more-131"></span></p>
<p>During the presentation I had split this key area of localizing flash content into two sub-headings, each sub-heading had a number of points I wanted to cover.</p>
<p>Part 1 - Fonts</p>
<ul>
<li>Understanding character sets, character maps & glyphs tables.</li>
<li>Using embedded fonts and or non-embedded fonts.</li>
<li>Flash 8 and advanced anti-aliasing.</li>
<li>File size implications of fonts in flash.</li>
</ul>
<p>Part 2 - Construction & Style</p>
<ul>
<li>Using font symbols.</li>
<li>Using dynamic text fields.</li>
<li>Shared fonts, font libraries and font symbols.</li>
<li>The TextFormatObject & CSS.</li>
</ul>
<p><strong>Understanding Character sets, character mapping and glyph tables</strong></p>
<p>Before getting into the nitty gritty of the practical side of how you go about managing the text based content in a localized flash project, I want to cover off the underlying concepts and processes that support it. Hopefully my terminology will be correct enough for the purpose of this article, feel free to leave comments correcting me where appropriate.</p>
<p>When trying to localize text based content in flash you will need to understand a little regarding Unicode, and how the fonts and applications you are using support it. So what is Unicode.</p>
<blockquote><p>Unicode provides a unique number for every character, no matter what the platform, no matter what the program, no matter what the language</p></blockquote>
<p>In addition to this Unicode characters are grouped into character sets. Within flash these can be found in the embed fonts options of the text field properties inspector.</p>
<p><a id="p132" rel="attachment" class="imagelink" href="http://blog.bittube.com/2006/08/03/flash-localization-managing-text-fonts-pt1/the-embed-fonts-palette-in-flash/" title="The Embed Fonts Palette in Flash"><img id="image132" src="http://blog.bittube.com/wp-content/uploads/2006/08/embedfonts.gif" alt="The Embed Fonts Palette in Flash" /></a></p>
<p>As flash developers we should be able publish content to pretty much any language on the planet. "we should be able". What often upsets this localization utopia is that many, many times we will find that the fonts provided, or requested within a project don't completely support Unicode. If this is the case it will result in a number of display issues within your flash production, including missing characters, or often a "?" or a square symbol, being displayed instead. Another, slightly less common problem can be a poorly constructed font that has characters incorrectly mapped. This would result, for example, in the glyph for "A" being returned and displayed as "B". </p>
<p>In actual fact there are few font faces that do fully support the whole Unicode table, and generally they are the standard system font faces for "sans", "serif", and "monospace" display, (Arial, Times, Courier on Windows). In part this is because to implement a complete Unicode font would be a time consuming and costly, production. There are around 65,000 (I think?) individual Unicode character codes to support, meaning over 65,000 characters to produce and test for some poor font maker.</p>
<p>With this in mind it is always worth checking the level of Unicode support that the fonts you are being asked to use support, you will save yourself a lot of tears as your project progresses.</p>
<p>Having assessed the support that your fonts offer for Unicode you need to find an acceptable level of Font Embedding. I have found this to be very similar in approach to deciding the compression that is applied to an image for the web. There is always going to be a trade off between the number of fonts you embed, and the final file size of a project. For example as a test, and to refresh my memory, I did an export of a flash movie that simply had a Dynamic text Field supporting Arial MS Unicode and embedding all character sets. The resultant SWF was 9.7MB uncompressed (7.8MB compressed). </p>
<p>The reason for large file size is that when flash embeds fonts for use in the player they are essentially converted to vector shapes that are embedded in your movie. When you get to some of the more exotic languages (Asian and Right to Left Languages for example) the individual glyphs are very elaborate, these results in some complex vectors, and thus larger file sizes. In addition the shear number of characters is HUGE, a number of languages have many more individual characters than us Europeans, the basic Korean character set has 3454 glyphs!</p>
<p>As of flash 8 the use of embedded fonts becomes less of an issue, with respect to visually acceptable text rendering. Making use of the advanced anti-aliasing options we are able to yield far better readability than is possible even with embedded font glyphs. However there are still some issues related to these options when trying to animate and scale text that is displayed using them. So depending on the design and visual treatment you are dealing with you will need to keep this in mind.</p>
<p>In my next post I will look at how to manage fonts within your files, it will roughly follow the structure of the 'part 2' heading above apply some of the <a href="http://blog.bittube.com/2006/07/28/notes-on-loaclizing-flash/">code examples from my brief previous post</a>.</p>
<p>References from this Article<br />
<a href="http://www.unicode.org/">Unicode.org, an invaluable source of information regarding UTF and Unicode</a><br />
<a href="http://www.atm.ox.ac.uk/user/iwi/charmap.html ">Online Unicode look up table</a><br />
<a href="http://blog.bittube.com/2006/03/31/90/">Information on Flash 8 text rendering issue in Saffron</a><br />
<a href="http://blog.bittube.com/2006/04/01/flash-8-fonttext-scaling-bug-cont/">Further information on Flash 8 text rendering issue in Saffron</a><br />
<a id="p133" href="http://blog.bittube.com/wp-content/uploads/2006/08/Flash%20Card.doc">LFPUG Presentation Running Notes</a></p>
<p>Links in this Article<br />
<a href="http://www.lfpug.com/">London Flash Platform User Group</a><br />
<a href="http://www.lfpug.com/presentations/2006_07_27_williamson/">The presentation slides I used. More details are in the running notes above.</a><br />
<a href="http://blog.bittube.com/2006/07/28/notes-on-loaclizing-flash/">Code Snippets for localizing flash</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2006/08/03/flash-localization-managing-text-fonts-pt1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Notes On Localizing Flash</title>
		<link>http://blog.bittube.com/2006/07/28/notes-on-loaclizing-flash/</link>
		<comments>http://blog.bittube.com/2006/07/28/notes-on-loaclizing-flash/#comments</comments>
		<pubDate>Fri, 28 Jul 2006 15:34:24 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[BitTube Work]]></category>
		<category><![CDATA[Flash 8]]></category>
		<category><![CDATA[Localization]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/2006/07/28/notes-on-loaclizing-flash/</guid>
		<description><![CDATA[So itâ€™s the day after my presentation on Flash Localization. I was quite happy with how things panned out, given I had been a presentation virgin prior to last night. The presentation didn't hurt nearly as much as I was afraid of. At least it didn't hurt me  .
Thanks to AKQA for the venue, [...]]]></description>
			<content:encoded><![CDATA[<p>So itâ€™s the day after my presentation on <a href="http://www.lfpug.com/">Flash Localization</a>. I was quite happy with how things panned out, given I had been a presentation virgin prior to last night. The presentation didn't hurt nearly as much as I was afraid of. At least it didn't hurt me <img src='http://blog.bittube.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .</p>
<p>Thanks to <a href="http://www.akqa.com/">AKQA</a> for the venue, support, beer and pizza, very nice it was to. Thanks also to <a href="http://www.tink.ws/blog/">Tink</a> for the opportunity to break my cherry, so to speak. And finally thanks to every one that came along to listen to me gibbering on. It must be said this is a subject I have come to build a love-hate relationship with over the many years I have spent in the field. I love the challenge of working to localise the content. I hate the fact that Flash makes even some of the most mundane solutions or Ideas a HUGE Challenge. It would seem I am not alone in this.</p>
<p>In addition to nattering on myself, I also received some useful information as well, which was great. So thanks for correcting my terminology of Polish as a Cyrillic based Language. Apparently it's an Extended European language, which would account for me having issues with that one. <img src='http://blog.bittube.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Something I didn't do last night was to show any code. This was due to operating on a Mac (thanks again <a href="http://www.tink.ws/blog/">Tink</a>) and not being confident enough in my app switching on the alien technology. Below are some snippets I made reference to.</p>
<p><span id="more-130"></span></p>
<p>Using <code>System.capabilities.playerType</code> to allow altered path references dependent on whether you are testing through a browser.<br />
[AS]<br />
/*<br />
str_xml variable is a string appended to the SWF file name in the HTML<br />
this is used to dictate which XML language version the flash movie<br />
will load and display. If no XML variable is detected then the movie will<br />
default to the UK English version (en-GD) this allows for easy testing in the<br />
flash IDE<br />
*/<br />
var str_defaultLang:String = "en-GB";<br />
// use the playerType to asertain whether the movie is playing in the browser or not and alter the Pathing acordingly<br />
var str_siteRoot: = (System.capabilities.playerType == "External") ? "../" : "";<br />
var str_xml:String = (str_xml == undefined) ? str_defaultLang : str_xml;<br />
var str_xmlSource:String = str_siteRoot + "xml/structure" + str_xml + ".xml";<br />
[/AS]<br />
A simple (nasty) prototype to string that offers find and replace functionality. This is then shown searching for pesky windows carriage return and line feed symbols and replacing them with single <code>newline</code> statement. I hope the URL encoded values are correct; I have actually done this from memory. Please let me know it this not the case.</p>
<p>[AS]<br />
/*String object prototype adds find and replace functionality*/<br />
/*<br />
usage : str_myString.replace(str_stringToFind, str_stringToReplace);<br />
str_stringToFind: string you wish to find in 'str_myString'<br />
str_stringToReplace: string you wish to replace str_stringToFind with in 'str_myString'<br />
returns: str_myString with all occurances of str_stringToFind replaced with str_stringToReplace<br />
*/<br />
String.prototype.replace = function(str_f:String, str_r:String):String<br />
{<br />
  return (this.split(str_f).join(str_r));<br />
}<br />
var myString:String<br />
myString = escape(myString)<br />
myString = myString.replace("%0A%0D", newline);<br />
myString = unescape(myString);<br />
[/AS]</p>
<p>Finally a snippet showing how to store Country/Language code combinations in order to switch fonts to Arial MS Unicode in those more troublesome language character sets.</p>
<p>[AS]<br />
/* Array to list non supported county/language codes */<br />
var arr_nonSuportedCC:Array = new Array("gr-GR", "ru-RU", "tr-TR", "cr-CR", "kr-KR", "pl-PL", "si-SI", "cs-CZ", "da-DK", "el-GR", "sv-FI", "hu-HU");<br />
/*<br />
setFontFace loops trough an array of Values that represent Country/language codes for the<br />
current content, if the current document country code is in this list then return true to<br />
say use a default font face that supports the countries glyphs more fully.<br />
e.g Arial Unicode MS for russian/greek/cyrilic languages<br />
*/<br />
var setFontFace = function(str_CC:String, arr_CountryList:Array):Boolean<br />
{<br />
	var bln_retval:Boolean = false;<br />
	var i:Number = 0;<br />
	var iTotal:Number = arr_CountryList.length;<br />
	var str_curCC:String;<br />
	str_CC = str_CC.toLowerCase()<br />
	while(i < iTotal)<br />
	{<br />
		str_curCC = arr_CountryList[i].toLowerCase();<br />
		if (str_CC == str_curCC)<br />
		{<br />
			bln_retval = true;<br />
			i = iTotal;<br />
		}<br />
		++i;<br />
	}<br />
	return bln_retval;<br />
}<br />
/* switch to determin if the font glyphs are supported*/<br />
var bln_useArial:Boolean = setFontFace(str_xml, arr_nonSuportedCC);<br />
var str_defaultDisplayFont:String<br />
str_defaultDisplayFont = bln_useArial ? "Arial Unicode MS" : "HelveticaNeueLT Pro 43 LtEx";<br />
// Text Formating object that will use the 'default' or 'switched' font<br />
__tf_navigationDefault = new TextFormat()<br />
__tf_navigationDefault.font = str_defaultDisplayFont<br />
__tf_navigationDefault.size = 14;<br />
__tf_navigationDefault.color = 0x102C4A;<br />
[/AS]</p>
<p>This last Snippet could also be extended to switch Font Size based on Asian Language or country codes as well. In addition I have used a similar script to check for 'preferred' fonts based on </code><code>TextField.getFontList()</code>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2006/07/28/notes-on-loaclizing-flash/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>URGENT!! Signatures Needed for flash 10yr release!</title>
		<link>http://blog.bittube.com/2006/07/25/urgent-signatures-needed-for-flash-10yr-realease/</link>
		<comments>http://blog.bittube.com/2006/07/25/urgent-signatures-needed-for-flash-10yr-realease/#comments</comments>
		<pubDate>Tue, 25 Jul 2006 20:23:49 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[BitTube Work]]></category>
		<category><![CDATA[Flash 8]]></category>
		<category><![CDATA[Flash 9]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/2006/07/25/urgent-signatures-needed-for-flash-10yr-realease/</guid>
		<description><![CDATA[As myself and Mike (flashgen.com) have mentioned previously we were heavily involved in Flash 'way back in the day'. During the time we were cutting our teeth in flash's infancy we were involved in some (IOHO) pretty slick projects. Now if you want those to be seen EVER again we need to get some release [...]]]></description>
			<content:encoded><![CDATA[<p>As myself and Mike (<a href="http://blog.flashgen.com">flashgen.com</a>) have mentioned previously we were heavily involved in Flash 'way back in the day'. During the time we were cutting our teeth in flash's infancy we were involved in some (IOHO) pretty slick projects. Now if you want those to be seen <strong>EVER</strong> again we need to get some release forms signed from 2 very specific companies in the UK. </p>
<p>If you can help us, or you know some one who might be able too PLEASE leave a comment. Let me know if you want it made public or not and I will abide your wishes. What is important is that myself or Mike (<a href="http://blog.flashgen.com">flashgen.com</a>) can contact you some how to follow it up.</p>
<p>If you lead to the project going like I will personally buy you a BIG beers or six, and give you a great big hug (kisses optional).</p>
<p>The companies and or departments required are.</p>
<p>BBC Education Department -- need to be able to sign release for Medicine Through Time Website. (circa 1998, Flash 3).<br />
British Telecoms Education Department -- need to be able to sign release for BT Time Trek Game. (circa 1998, Flash 3).</p>
<p>Remember this may be the only opportunity to see these historical examples of what us <a href="http://www.oldskoolflash.com">oldskool</a>ers 'bled our eyes on'.</p>
<p>Please spread the word if you are able.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2006/07/25/urgent-signatures-needed-for-flash-10yr-realease/feed/</wfw:commentRss>
		<slash:comments>1</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>ActionScript 3 &amp; Flash 9 Compatibility Info</title>
		<link>http://blog.bittube.com/2006/07/05/actionscript-3-flash-9-compatibility-info/</link>
		<comments>http://blog.bittube.com/2006/07/05/actionscript-3-flash-9-compatibility-info/#comments</comments>
		<pubDate>Wed, 05 Jul 2006 11:42:08 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[Flash 7]]></category>
		<category><![CDATA[Flash 8]]></category>
		<category><![CDATA[Flash 9]]></category>
		<category><![CDATA[Flex 2]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/2006/07/05/actionscript-3-flash-9-compatibility-info/</guid>
		<description><![CDATA[Previously I have mentioned concerns with regard to compatibility of Flash Player 9, ActionScript 3, Flex 2, and the recently released Flash 9 Preview. After digging around last night for information on how to get cracking on some Action Script 3 development I found this information on LiveDocs regarding the compatibility of the various flash [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.bittube.com/2006/04/22/flash-player-9-blaze-announcments/trackback/">Previously</a> I have mentioned concerns with regard to compatibility of Flash Player 9, ActionScript 3, Flex 2, and the recently released Flash 9 Preview. After digging around last night for information on how to get cracking on some Action Script 3 development I found this information on LiveDocs regarding the compatibility of the various flash SWF formats and ActionScript versions.</p>
<blockquote>
<ul>
<li>A single SWF file cannot combine ActionScript 1.0 or 2.0 code with ActionScript 3.0 code.</li>
<li>ActionScript 3.0 code can load a SWF file written in ActionScript 1.0 or 2.0, but it cannot access the SWF file's variables and functions.</li>
<li>SWF files written in ActionScript 1.0 or 2.0 cannot load SWF files written in ActionScript 3.0. This means that SWF files authored in Flash 8 or Flex Builder 1.5 or earlier versions cannot load ActionScript 3.0 SWF files.
<p>      The only exception to this rule is that an ActionScript 2.0 SWF file can replace itself with an ActionScript 3.0 SWF file, as long as the ActionScript 2.0 SWF file hasn't previously loaded anything into any of its levels. An ActionScript 2.0 SWF file can do this through a call to loadMovieNum(), passing a value of 0 to the level parameter.</li>
<li>In general, SWF files written in ActionScript 1.0 or 2.0 must be migrated if they are to work together with SWF files written in ActionScript 3.0. For example, say you created a media player using ActionScript 2.0. The media player loads various content that was also created using ActionScript 2.0. You cannot create new content in ActionScript 3.0 and load it in the media player. You must migrate the video player to ActionScript 3.0.
<p>      If, however, you create a media player in ActionScript 3.0, that media player can perform simple loads of your ActionScript 2.0 content.</li>
</ul>
</blockquote>
<p>The full information can be found here:</p>
<p><a href="http://livedocs.macromedia.com/flex/2/docs/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00001801.html#120451">Programming ActionScript 3.0  > Overview of ActionScript Programming > Introduction to ActionScript 3.0 > Compatibility with previous versions</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2006/07/05/actionscript-3-flash-9-compatibility-info/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Dark Art of the XPathAPI</title>
		<link>http://blog.bittube.com/2006/06/21/the-dark-art-of-the-xpathapi/</link>
		<comments>http://blog.bittube.com/2006/06/21/the-dark-art-of-the-xpathapi/#comments</comments>
		<pubDate>Wed, 21 Jun 2006 16:03:10 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[BitTube Work]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Flash 7]]></category>
		<category><![CDATA[Flash 8]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/2006/06/21/the-dark-art-of-the-xpathapi/</guid>
		<description><![CDATA[I've personally been using the XPathApi in flash for a little while. I don't remember how I came across it initially, but I do know that I use it in almost every project I have worked on lately. However it has been bought to my attention by a colleague that not everyone has fallen across [...]]]></description>
			<content:encoded><![CDATA[<p>I've personally been using the XPathApi in flash for a little while. I don't remember how I came across it initially, but I do know that I use it in almost every project I have worked on lately. However it has been bought to my attention by a colleague that not everyone has fallen across this most handy of classes. Below is information and links to help you get the most out of the XPathApi class in flash.</p>
<p><span id="more-114"></span></p>
<p>I am sure everyone is aware of the XML Object in flash and the ability to load and manage structured XML data in a flash movie. One of the challenges is how to access all that lovely data in a quick and easy method. </p>
<p>On numerous occasions on site I have seen an almost infinite number of XML parsers that will take in an XML document or Object and through recursive functions or the like rip the various XML nodeValues and attributes into native flash Objects, Arrays and Variables. </p>
<p>These would then be used through out the movie as any other data set. There is of course nothing wrong with this system, and at times in the past I too have gone about development in this manner, apart from the fact that it is ultimately a waste of time.</p>
<p>In flash we are provided with the ability to access the data held in an XML Document and or Object natively, Everyone will likely be aware of the Node.firstChild.nodeValue access notation. This allows us to preserve the structure of an XML Document while still having access to the data it holds. The downside of course is that the Syntax can become long and unwieldy if you are processing a complex XML structure.</p>
<p>A second option for dealing with XML in Flash has been provided as of Flash MX 2004 Professional edition. With the DataBinding components in Flash MX 2004 Pro was provided the mx.xpath package of classes. Adobe have also included this package in Flash 8. In addition the classes within the xpath package are compatible with Flash 6 MX so they operate well on the PSP Flash player as well.</p>
<p>The XPath implementation provided is not a complete XPath Implementation. But it does provide a susinct method for accessing XML Nodes by name, and or attribute values in a simple syntax.</p>
<p>Below is a simple snippet to highlight use of the XPathApi in Flash.</p>
<p>[as]<br />
/* example XML Structure used in this snippet.<br />
< ?xml version="1.0" encoding="UTF-8"?><br />
<bittubesite><br />
 <navbar><br />
  <navitem><br />
   <label>< ![CDATA[work]]&gt;</label><br />
  </navitem><br />
  <navitem><br />
   <label>< ![CDATA[cv]]&gt;</label><br />
  </navitem><br />
  <navitem><br />
   <label>< ![CDATA[contact]]&gt;</label><br />
  </navitem><br />
 </navbar><br />
</bittubesite><br />
*/<br />
//import the xpath api class<br />
import mx.xpath.XPathAPI;<br />
// create a new XML Object that will load the XML Data<br />
var myXMLDocument:XML = new XML();<br />
myXMLDocument.ignoreWhite = true;<br />
// create an onLoad Event Handler for the XML Object<br />
myXMLDocument.onLoad = function(bln_success:Boolean)<br />
{<br />
 if(bln_success)<br />
 {<br />
  //the string xpath value<br />
  var xPath_str:String = "bittubesite/navbar/navitem"<br />
  // the selectNodeList method of XPathAPI returns an array of XML Node Objects<br />
  var navLabels_arr:Array = XPathAPI.selectNodeList(_projectInfo.firstChild, xPath_str);</p>
<p>  // trace the values stored in the array generated by selectNodeList<br />
  trace("navLabels_arr" + navLabels_arr);<br />
  /* outputs<br />
  ===================<br />
  <label>work</label><br />
  <label>cv</label><br />
  <label>contact</label><br />
  */<br />
 }<br />
 else<br />
 {<br />
  trace("XML Load Error!!");<br />
 }<br />
}<br />
// load the xml document<br />
myXMLDocument.load("myXMLURL");<br />
[/as]</p>
<p>Unfortunately there is a lack of official documentation to the mx.xpath package in the flash documentation, which is a little frustrating. </p>
<p>There is a more complete implementation of the W3C XPath specification that has been produced by <a href="http://www.xfactorstudio.com/">xfactorstudio</a>. This is available in both ActionScript 1 and ActionScript 2 versions. </p>
<p>There are a number of other articles that have been written that offer more detail of the capabilities of provided by the built in mx.xpath package I have linked to them at the end of this post along with some other xpath resources for those that want to find out more.</p>
<p><a href="http://www.xfactorstudio.com/">xpathStudio</a>  -- Alternative and more complete XPath implementation<br />
<a href="http://chattyfig.figleaf.com/pipermail/flashcoders/2005-April/135838.html">mx.xpath.XPathAPI vs xpathStudio</a><br />
<a href="http://www.peachpit.com/articles/article.asp?p=169633&rl=1">using XPathAPI by by peach pit</a><br />
<a href="http://tutorials.lastashero.com/2005/10/using_the_xpath_api_in_flash.html">using XPathAPI by last actionscript hero</a><br />
<a href="http://weblogs.macromedia.com/dehaan/archives/2005/01/using_xpath_wit.cfm">using XPathAPI by Jen deHaan</a><br />
<a href="http://www.w3.org/TR/xpath">W3C XPath Specification</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2006/06/21/the-dark-art-of-the-xpathapi/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Loading Images as &#8216;Best&#8217; in Flash 8</title>
		<link>http://blog.bittube.com/2006/06/08/loading-images-as-best-in-flash-8/</link>
		<comments>http://blog.bittube.com/2006/06/08/loading-images-as-best-in-flash-8/#comments</comments>
		<pubDate>Thu, 08 Jun 2006 09:09:16 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Flash 8]]></category>

		<guid isPermaLink="false">http://blog.bittube.com/?p=111</guid>
		<description><![CDATA[I noted on this post at Mixmedia that others are having trouble loading Images with the 'best' quality in flash 8. For those unsure what this means, the 'best' quality setting provides anti aliasing to pretty much all objects in a flash movie, all the time regardless of frame rate loss. This includes Bitmaps. So [...]]]></description>
			<content:encoded><![CDATA[<p>I noted on this post at <a href="http://team.mixmedia.com/index.php?title=canot_set_image_quality_to_best_in_flash_8&more=1&c=1&tb=1&pb=1#comments">Mixmedia</a> that others are having trouble loading Images with the 'best' quality in flash 8. For those unsure what this means, the 'best' quality setting provides anti aliasing to pretty much all objects in a flash movie, all the time regardless of frame rate loss. This includes Bitmaps. So when you scale or rotate a Bitmap you donï¿½t get nasty jaggies on them. </p>
<p>A full explanation of the different quality settings in flash can be found <a href="http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00001791.html">here</a></p>
<p>Some time ago as Flash 8 was released <a href="http://www.kaourantin.net">Tinic Uro</a> posted an explanation of the lack of support for bitmap anti aliasing in flash 8 and also a workaround for it.</p>
<p>The post is on his archives <a href="http://www.kaourantin.net/archive/2005_12_01_flashgraphics_archive.html">here</a></p>
<p>I have included this workaround in the <a href="http://development.bittube.com/photogallery.php">Flash 8 gallery</a> I posted, and have incorporated it into an Image loader class I am using in a project currently the only note of caution I would have is that this work around really boosts the CPU usage of a movie if you are moving around lots of images.</p>
<p>As a side note the 'best' quality setting was almost lost during the flash 3 alphas as it was thought to be identical in effect as the 'high' quality.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bittube.com/2006/06/08/loading-images-as-best-in-flash-8/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>
	</channel>
</rss>
