<?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.pcthomatos.com</title>
	<atom:link href="http://blog2.pcthomatos.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog2.pcthomatos.com</link>
	<description>An attempt to offer elegant solutions to development problems.</description>
	<lastBuildDate>Thu, 21 Jan 2010 23:33:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>AS3: Controlling Registration Points Programmatically</title>
		<link>http://blog2.pcthomatos.com/?p=357</link>
		<comments>http://blog2.pcthomatos.com/?p=357#comments</comments>
		<pubDate>Sat, 09 Jan 2010 20:37:18 +0000</pubDate>
		<dc:creator>pcthomatos</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.pcthomatos.com/?p=357</guid>
		<description><![CDATA[AS3: Controlling Registration Points Programmatically
The SpriteRegPoint Class is designed to mimic this feature in flash:


For those of you who use Flex or FlashDevelop to do all of your flash development and would like to control registration points similarly to the flash IDE, this is the class for you.

Download the Source File
View the Documentation

These are the [...]]]></description>
			<content:encoded><![CDATA[<h2 style="font-size:20px">AS3: Controlling Registration Points Programmatically</h2>
<p>The <a href="http://www.pcthomatos.com/asdoc/com/pcthomatos/utilities/SpriteRegPoint.html" target="_blank">SpriteRegPoint</a> Class is designed to mimic this feature in flash:</p>
<img src="http://www.pcthomatos.com/SpriteRegPoint/SpriteRegPoint.gif" alt="Registration Point Window" width="408" height="131" /><br/><br/>

For those of you who use Flex or FlashDevelop to do all of your flash development and would like to control registration points similarly to the flash IDE, this is the class for you.
<br/><br/>
<a href="http://www.pcthomatos.com/SpriteRegPoint/SpriteRegPoint.zip">Download the Source File</a><br/>
<a href="http://www.pcthomatos.com/asdoc/com/pcthomatos/utilities/SpriteRegPoint.html">View the Documentation</a>
<br/><br/>
These are the options you can set: <br/>
<br/>
•TL &#8211; Top Left<br/>
•TC &#8211; Top Center<br/>
•TR &#8211; Top Right<br/>
•CL &#8211; Center Left<br/>
•C &#8211; Center<br/>
•CR &#8211; Center Right<br/>
•BL &#8211; Bottom Left<br/>
•BC &#8211; Bottom Center<br/>
•BR &#8211; Bottom Right<br/>
•x/y &#8211; x/y coordinates<br/>
<br/>
Usage: <br/>
<pre class="brush: AS3;">
var squareBox:Sprite = new Sprite(); 
squareBox.graphics.beginFill(0xFF0000); 
squareBox.graphics.drawRect(0,0,100,100); 
var centeredSprite:Sprite = new SpriteRegPoint("C"); 
centeredSprite.addChild(squareBox); 
addChild(centeredSprite); 
centeredSprite.rotation = 45; 
</pre>]]></content:encoded>
			<wfw:commentRss>http://blog2.pcthomatos.com/?feed=rss2&amp;p=357</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ULVideoPlayer: A lightweight, skinnable video player.</title>
		<link>http://blog2.pcthomatos.com/?p=311</link>
		<comments>http://blog2.pcthomatos.com/?p=311#comments</comments>
		<pubDate>Fri, 08 Jan 2010 23:50:57 +0000</pubDate>
		<dc:creator>pcthomatos</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.pcthomatos.com/?p=311</guid>
		<description><![CDATA[ULVideoPlayer: A lightweight, skinnable video player.
ULVideoPlayer consumes UltraLoader ULVideo assets with ease. It is easily skinnable. ULVideoPlayer currently works with progressive download videos only. In the future it will work with streaming videos.If you want to forgo the use of UltraLoader you can manually set up a ULVideo Object and add it to the ULVideoPlayer [...]]]></description>
			<content:encoded><![CDATA[<h2 style="font-size:20px">ULVideoPlayer: A lightweight, skinnable video player.</h2>
<p><a href="http://code.google.com/p/ulvideoplayer/" target="_blank">ULVideoPlayer</a> consumes <a href="http://code.google.com/p/ultraloader/" target="_blank">UltraLoader</a> <a href="http://www.pcthomatos.com/asdoc/com/pcthomatos/ultraloader/types/ULVideo.html" target="_blank">ULVideo</a> assets with ease. It is easily skinnable. <br/><br/>ULVideoPlayer currently works with progressive download videos only. In the future it will work with streaming videos.<br/><br/>If you want to forgo the use of UltraLoader you can manually set up a <br/><a href="http://www.pcthomatos.com/asdoc/com/pcthomatos/ultraloader/types/ULVideo.html" target="_blank">ULVideo</a> Object and add it to the ULVideoPlayer like in the code sample below:</p>
<pre class="brush: AS3;">
var nC:NetConnection = new NetConnection();
nC.connect(null);

var ulVideo:ULVideo = new ULVideo();
ulVideo.src = "video/videofile.flv";

ulVideo.netStream = new NetStream(_.$video.netConnection);
ulVideo.netStream.bufferTime = 7;
ulVideo.netStream.checkPolicyFile = false; // true or false
ulVideo.netStream.addEventListener(IOErrorEvent.IO_ERROR, _.IOError_Listener, false, 0, true);
//var onNetStatus:Function = function (e:NetStatusEvent):void { /*trace("Net Status:" + ' ' + e.info.code + ' ' + e.currentTarget.client.name);*/ }
//ulVideo.netStream.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus, false, 0, true);

ulVideo.netStream.client = new Object();
ulVideo.netStream.client.name = "videoName";
ulVideo.netStream.client.onCuePoint = function(...P):void{};
ulVideo.netStream.client.onMetaData = function(meta:Object):void{_.$video[videoId].metaData = meta;};
ulVideo.netStream.client.onPlayStatus = function(...P):void { };

ulVideo.video = new Video(320, 240);
ulVideo.video.smoothing = true;
ulVideo.video.attachNetStream(ulVideo.netStream);

var ulVideoPlayer:ULVideoPlayer = new ULVideoPlayer(ulVideo);
ulVideoPlayer.tFormat = new TextFormat("Arial, Helvetica, Sans-Serif", 12, 0xFF0000);
ulVideoPlayer.mainColor = 0xFF0000;
ulVideoPlayer.scrubberColor = 0xFF0000;
ulVideoPlayer.volumeBarFull = 0xFF0000;
ulVideoPlayer.updateSettings();

ulVideoPlayer.changeVideo(ulVideoOtherVideoNotSetInExample);
ulVideoPlayer.tFormat = new TextFormat("Arial, Helvetica, Sans-Serif", 12, 0x6666FF);
ulVideoPlayer.mainColor = 0xFF00FF;
ulVideoPlayer.scrubberColor = 0xFF00FF;
ulVideoPlayer.volumeBarFull = 0x00FF00;
ulVideoPlayer.updateSettings();

addChild(ulVideoPlayer);
</pre>
<p><strong>Note for the example below:</strong> Keep in mind accurate seeking with flash video is only as good as the number of keyframes in your video file. Unfortunately the video file in the example below has very few keyframes.
</p>
<p><a href="http://code.google.com/p/ulvideoplayer/" target="_blank">View the ULVideoPlayer Project</a>.</p>
<p><a href="http://www.pcthomatos.com/asdoc/com/pcthomatos/components/videoplayer/ULVideoPlayer.html" target="_blank">View the ULVideoPlayer Documentation</a>.</p>
<p><a href="http://www.pcthomatos.com/asdoc/com/pcthomatos/ultraloader/types/ULVideo.html" target="_blank">View the ULVideo Ojbect Documentation</a>.</p>
<p><a href="http://ulvideoplayer.googlecode.com/files/ulvideoplayerexample.zip">Download Source Files For the Example Below</a>.</p>
<center>
<div id="altContent">UlVideoPlayer Example</div>
<script src="scripts/swfmacmousewheel2.js" type="text/javascript"></script><script type="text/javascript">// <![CDATA[
		var attributes = { id:'videoObject', name:'videoObject' };
                          var flashvars = {};
	             var params = {
			menu: "false",
                                      allowFullscreen: "true",
			scale: "noScale"
		};
		swfobject.embedSWF("swf/Ulvideoplayerexample.swf", "altContent", "552", "414", "9.0.0", "swf/expressInstall.swf", flashvars, params, attributes);
		if(swfmacmousewheel) swfmacmousewheel.registerObject(attributes.id);
// ]]&gt;</script>
</center>]]></content:encoded>
			<wfw:commentRss>http://blog2.pcthomatos.com/?feed=rss2&amp;p=311</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SWFSEOLite: Making your Flash SEO Friendly and Handling the Chore of Asset Preloading.</title>
		<link>http://blog2.pcthomatos.com/?p=292</link>
		<comments>http://blog2.pcthomatos.com/?p=292#comments</comments>
		<pubDate>Wed, 06 Jan 2010 22:26:26 +0000</pubDate>
		<dc:creator>pcthomatos</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.pcthomatos.com/?p=292</guid>
		<description><![CDATA[SWFSEOLite: Making your Flash SEO Friendly and Handling the Chore of Asset Preloading.
SWFSEOLite is a a lightweight version of the SWFSEO framework. It uses UltraLoader to load all asset types.
Use SWFSEOLite if you only need to load in asset types that are SEO friendly (stored on your html page), this includes textfields, htmlfields, strings, xml, [...]]]></description>
			<content:encoded><![CDATA[<h2 style="font-size:20px">SWFSEOLite: Making your Flash SEO Friendly and Handling the Chore of Asset Preloading.</h2>
<p><a href="http://code.google.com/p/swfseolite/" target="_blank">SWFSEOLite</a> is a a lightweight version of the <a href="http://www.pcthomatos.com/swfseo/" target="_blank">SWFSEO framework.</a> It uses <a href="http://code.google.com/p/ultraloader/" target="_blank">UltraLoader</a> to load all asset types.</p>
<p>Use <a href="http://code.google.com/p/swfseolite/" target="_blank">SWFSEOLite</a> if you only need to load in asset types that are SEO friendly (stored on your html page), this includes textfields, htmlfields, strings, xml, images etc.</p>
<p>Use <a href="http://www.pcthomatos.com/swfseo/" target="_blank">SWFSEO</a> if you want to have multiple deep linked &#8220;pages&#8221; (using SWFAddress), navigation controls, and flash fullscreen scrollbars.</p>
<br/>
<p><a href="http://www.pcthomatos.com/swfseoliteexample/" target="_blank">View a working example of the SWFSEOLite</a>.</p>
<p><a href="http://code.google.com/p/swfseolite/" target="_blank">View the SWFSEOLite Project</a>.</p>
<p><a href="http://swfseolite.googlecode.com/files/swfseoliteexample.zip">Download the source files</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://blog2.pcthomatos.com/?feed=rss2&amp;p=292</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3: SWFScroll, Yet Another Scrollbar Library</title>
		<link>http://blog2.pcthomatos.com/?p=223</link>
		<comments>http://blog2.pcthomatos.com/?p=223#comments</comments>
		<pubDate>Sun, 13 Dec 2009 22:28:26 +0000</pubDate>
		<dc:creator>pcthomatos</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.pcthomatos.com/?p=223</guid>
		<description><![CDATA[AS3: SWFScroll, Yet Another Scrollbar Library
Below is an example of SWFScroll, a scrollbar library for as3.
SWFScroll can also be used to mimic browser scrollbars in flash. View this example in a new window, to see how the browser scrollbars operate in a seperate window. 
Download the source files


		scrollbars
		Alternative content
		
		
			

SWFScroll Example:
			
I wanted to create scrollbars that [...]]]></description>
			<content:encoded><![CDATA[<h2 style="font-size:20px">AS3: SWFScroll, Yet Another Scrollbar Library</h2>
<p>Below is an example of SWFScroll, a scrollbar library for as3.</p>
<p>SWFScroll can also be used to <b>mimic browser scrollbars in flash</b>. <br/><a href="http://www.pcthomatos.com/swfscrollexample/" target="_blank">View this example in a new window</a>, to see how the browser scrollbars operate in a seperate window. </p>
<p><a href="http://code.google.com/p/swfscroll/" target="_blank">Download the source files</a></p>
<p><br/></p>
<div id="altContent">
		<h1>scrollbars</h1>
		<p>Alternative content</p>
		<p><a href="http://www.adobe.com/go/getflashplayer"><img 
			src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" 
			alt="Get Adobe Flash player" /></a></p>
		<ul id="scrollbarCopy">
			<li data-type="htmlfield" id="mainText" data-width="700" data-align="LEFT">
<font face="Arial, Helvetica, Sans-serif">
<b>SWFScroll Example:</b><br />
<br />			
I wanted to create scrollbars that behave like real scrollbars with features like:<br />
<ul>
	<li>Automatic resizing for fullscreen flash.</li>
	<li>A grace movement of +-60 pixels.</li>
	<li>A scrubber that is draggable and accurately reflects the canvas size <br/>even on resizing of the window </li>
	<li>Color states to match a real scrollbar (colors can be modified in scrollBarSettingsHelper)</li>
	<li>MouseWheel Capability even on Macs (uses Gabriel Bucknall&#8217;s swfmacmousewheel)</li>
	<li>Page Up / Page Down keys enabled</li>
	<li>All arrow keys enabled (once you click on your scrollable area first).</li>
</ul>	
<br />
<b>There are 2 sets of scroll bars in this flash movie.</b><br />
<br />
The Size of SWFScroll is less than 10K. The remaining 15k is SWFSEOLite. <br />
<br />
For more information see the <u><font color="#0033FF"><a href="http://code.google.com/p/swfscroll/">google code project</a></font></u> or <u><font color="#0033FF"><a href="http://www.pcthomatos.com/asdoc/com/pcthomatos/components/swfscroll/package-detail.html">view the documentation</a></font></u>.<br />
</font>
            </li>
			<li data-type="htmlfield" id="innerFrameText" data-width="300" data-align="LEFT">
<font face="Arial, Helvetica, Sans-serif">			
This one scrollable area.<br />
<br />
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus sed ligula metus. Proin vestibulum orci quis dolor dapibus non volutpat neque porttitor. Praesent suscipit vulputate nunc ac ornare. Aenean quis felis ligula, sed porta elit. Integer auctor consectetur elit aliquam rhoncus. Praesent tincidunt interdum nulla, at rhoncus turpis mollis sed. Pellentesque nunc est, eleifend pellentesque iaculis non, bibendum ut augue. Ut nibh purus, ullamcorper id tempor a, accumsan in mauris. Nulla facilisi. Nam eget nibh quis justo vehicula porta quis ac quam. Maecenas non quam in tortor vestibulum ultricies sit amet eu est. Fusce ac felis ut erat pretium sodales vel a lacus. Donec id metus enim, quis porttitor sapien. 
<br /><br />
Nunc mi odio, convallis et mollis vel, tempus non elit. Nulla placerat, mi non eleifend porttitor, eros nisi pretium eros, et hendrerit sem ante luctus diam. Suspendisse potenti. In rutrum, erat in ultrices dapibus, purus lectus rhoncus magna, ut convallis magna sem id felis. Phasellus eu enim ac leo vestibulum porttitor vel eget orci. Morbi hendrerit sagittis odio, sit amet semper metus aliquam id. Proin adipiscing dapibus sodales. Donec nec lorem est, in eleifend risus. Cras ac urna nulla, sed porta ante. In condimentum enim at justo euismod eleifend. 
<br /><br />
Quisque blandit iaculis lacus, vulputate tempor dui commodo non. Duis tellus massa, congue eu ullamcorper ac, imperdiet et lacus. Aliquam vel urna justo, eu mattis turpis. In placerat, neque malesuada elementum dapibus, massa ante varius ligula, a porttitor risus felis quis tellus. In hac habitasse platea dictumst. Etiam vitae lobortis tortor. Aenean eleifend malesuada sapien, non facilisis magna tempus quis.
</font>
            </li>
		</ul>	
	</div>
<script type="text/javascript">
		var attributes = { id:'scrollbarObject', name:'scrollbarObject' };
		var flashvars = {SWFSEOLiteEntryPage:'index.php?p=233'};
		var params = {
			menu: "false",
			scale: "noScale"
		};
		swfobject.embedSWF("swf/swfscrollexample.swf", "altContent", "100%", "400", "9.0.0", "swf/expressInstall.swf", flashvars, params, attributes);
		if(swfmacmousewheel) swfmacmousewheel.registerObject(attributes.id);

</script>
<p><br/></p>]]></content:encoded>
			<wfw:commentRss>http://blog2.pcthomatos.com/?feed=rss2&amp;p=223</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3: Setting Values to Instance Variables in their Declaration</title>
		<link>http://blog2.pcthomatos.com/?p=146</link>
		<comments>http://blog2.pcthomatos.com/?p=146#comments</comments>
		<pubDate>Fri, 11 Dec 2009 21:31:05 +0000</pubDate>
		<dc:creator>pcthomatos</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.pcthomatos.com/?p=146</guid>
		<description><![CDATA[AS3: Setting Values to Instance Variables in their Declaration

AS3 allows you to set the value to an instance variable in its declaration. This can be a value of any type, a string, an int, an object, even another instantiated class. If an instance variable will definitely be used in every instance, it makes to set [...]]]></description>
			<content:encoded><![CDATA[<h2 style="font-size:20px">AS3: Setting Values to Instance Variables in their Declaration</h2>
<p>
AS3 allows you to set the value to an instance variable in its declaration. This can be a value of any type, a string, an int, an object, even another instantiated class. If an instance variable will definitely be used in every instance, it makes to set it&#8217;s value in the declaration &#8211; as opposed to setting it in the constructor. This makes no difference in memory usage or performance, but it makes things a little easier to read &#8211; and saves you from that extra line of code.
</p>
<blockquote>
In other words, you can do this:
<pre class="brush: AS3;">package{
     public class Foo{
          private var sayHello:SayHello = new SayHello("Hello World");

          public function Foo(){

          }
     }
}</pre>
Instead of doing this:
<pre class="brush: AS3;">package{
     public class Foo{
          private var sayHello:SayHello;

          public function Foo(){
               sayHello = new SayHello("Hello World");
          }
     }
}</pre>
</blockquote>
<p>
<strong>A word of caution</strong>: I have found there is one case where you have to be careful with this type of syntax. And that is when you embed fonts in a textField. You need to make sure you unembed them before you set your instance eligible for garbage collection. Otherwise certain browsers will crash when the instance is destroyed.
</p>
<p>
Therefore, before you set your instance to be eligible for garbage collection, set all the textFields that use embedded fonts to false.
</p>

<blockquote>
To recap, make sure you call a method like <strong>clean()</strong> before you set your <strong>instance of Foo</strong> to be eligible for garbage collection:
<pre class="brush: AS3;highlight:[13,14,15]">package{
     import flash.text.TextField;
     import flash.text.TextFormat;

     public class Foo{
          private var tf:TextField = new TextField();

          public function Foo(textStr:String){
               tf.text = textStr;
               tf.embedFonts = true;
               tf.setTextFormat(new TextFormat("FunkyFont", 23));
          }
          public function clean():void{ // call before setting elligible for gc
               tf.embedFont = false;
          }
     }
}</pre>
The class instantiating <strong>Foo</strong>
<pre class="brush: AS3;">package{
     import flash.display.Sprite;

     public class Bar extends Sprite{
          private var foo:Foo = new Foo("Hello World");

          public function Bar(){
               addChild(foo);

               removeChild(foo);
               foo.clean();
               foo = null;
          }
     }
}</pre>
</blockquote>]]></content:encoded>
			<wfw:commentRss>http://blog2.pcthomatos.com/?feed=rss2&amp;p=146</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Toggle Comment Trick</title>
		<link>http://blog2.pcthomatos.com/?p=118</link>
		<comments>http://blog2.pcthomatos.com/?p=118#comments</comments>
		<pubDate>Wed, 09 Dec 2009 20:30:31 +0000</pubDate>
		<dc:creator>pcthomatos</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.pcthomatos.com/?p=118</guid>
		<description><![CDATA[Toggle Comment Trick
This is probably common knowledge for many of you, and if you have a decent editor it&#8217;s moot. But I figured I&#8217;d share.

If you are developing in a programming language that allows for both single line and multiline comments and you&#8217;d like to more easily comment/uncomment multiline comments, this trick may come in [...]]]></description>
			<content:encoded><![CDATA[<h2 style="font-size:20px">Toggle Comment Trick</h2>
This is probably common knowledge for many of you, and if you have a decent editor it&#8217;s moot. But I figured I&#8217;d share.

If you are developing in a programming language that allows for both single line and multiline comments and you&#8217;d like to more easily comment/uncomment multiline comments, this trick may come in handy.

Below is an as3 example:
<pre class="brush: AS3;highlight:[1,4,6,9]">
///*
var userName:String = "testname";
var userPass:String = "testpass";
//*/

/*
var userName:String = userNameTF.text;
var userPass:String = userPassTF.text;
//*/
</pre>

This way you don&#8217;t have to constantly insert and remove your multiline comment tags. By adding/removing a single line comment delimiter (<span style="color:#008200">//</span>) in front of the initial multiline comment delimiter(<span style="color:#008200">/*</span>) you can comment/uncomment your block of code. 

One can argue that it&#8217;s takes just as many keystrokes to remove the initial multiline delimiter (<span style="color:#008200">/*</span>) as it does adding a single line delimiter (<span style="color:#008200">//</span>). However, having your initial multiline delimiter always present, makes your comment block boundaries consistently visible.]]></content:encoded>
			<wfw:commentRss>http://blog2.pcthomatos.com/?feed=rss2&amp;p=118</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Preloading Flash Assets, Elegantly</title>
		<link>http://blog2.pcthomatos.com/?p=92</link>
		<comments>http://blog2.pcthomatos.com/?p=92#comments</comments>
		<pubDate>Fri, 01 May 2009 15:16:12 +0000</pubDate>
		<dc:creator>pcthomatos</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.pcthomatos.com/?p=92</guid>
		<description><![CDATA[Preloading Flash Assets, Elegantly
UltraLoader is a lightweight library that was spawned during the development of the SWFSEO Framework.UltraLoader features:
Preloads in any type of flash asset, including some special cases like: font swfs and policy files. 
Provides robust sound and video objects. 
Organizes loaded assets into several ordered collections. This allows for easy access and easy [...]]]></description>
			<content:encoded><![CDATA[<h2 style="font-size:20px">Preloading Flash Assets, Elegantly</h2>
UltraLoader is a <a href="http://code.google.com/p/ultraloader/" target="_blank">lightweight library</a> that was spawned during the development of the <a href="http://blog.pcthomatos.com/?p=21" target="_blank">SWFSEO Framework</a>.<br/><br/>UltraLoader features:<ul style="margin:10px 0 0 30px">
<li>Preloads in any type of flash asset, including some special cases like: font swfs and policy files. </li>
<li>Provides robust sound and video objects. </li>
<li>Organizes loaded assets into several ordered collections. This allows for easy access and easy  looping of assets</li>
<li>Data can be loaded in one or multiple batches</li>
</ul><br/>For more details on UltraLoader <a href="http://code.google.com/p/ultraloader/" target="_blank">view the documentation and download the source</a> from Google Code Project.<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog2.pcthomatos.com/?feed=rss2&amp;p=92</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash websites with HTML benefits.</title>
		<link>http://blog2.pcthomatos.com/?p=21</link>
		<comments>http://blog2.pcthomatos.com/?p=21#comments</comments>
		<pubDate>Thu, 30 Apr 2009 22:57:37 +0000</pubDate>
		<dc:creator>pcthomatos</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.pcthomatos.com/?p=21</guid>
		<description><![CDATA[Flash Websites With HTML Benefits
SWFSEO is a flash framework that allows you to build flash websites with the features of HTML websites.HTML features like:
Search engine friendly content
Scrollable pages (see example of a scrollable page)
Multilevel navigation (see example multilevel navigation)
Easy page tracking
The ability to update content without recompiling your flash
SWFAddress functionality (deep-linking, ability to bookmark, back [...]]]></description>
			<content:encoded><![CDATA[<h2 style="font-size:20px">Flash Websites With HTML Benefits</h2>
SWFSEO <a href="http://www.pcthomatos.com/swfseo/"  target="_blank">is a flash framework</a> that allows you to build flash websites with the features of HTML websites.<br/><br/>HTML features like:<ul style="margin:10px 0 0 30px">
<li>Search engine friendly content</li>
<li>Scrollable pages (<a href="http://www.pcthomatos.com/swfseo/example6/page4.html" target="_blank">see example of a scrollable page</a>)</li>
<li>Multilevel navigation (<a href="http://www.pcthomatos.com/swfseo/example6/page1sub1sub1.html" target="_blank">see example multilevel navigation</a>)</li>
<li>Easy page tracking</li>
<li>The ability to update content without recompiling your flash</li>
<li>SWFAddress functionality (deep-linking, ability to bookmark, back button and forward button functionality)</li>
</ul><br/>This project addresses the components that are usually an afterthought during development and often left incomplete. Ironically, these neglected parts are tied to the user experience and website search engine visibility. These are arguably the most crucial elements to a successful web experience.<br/><br/>Once you read all of the documentation, you will find that SWFSEO is incredibly easy to use. It organizes your projects in a consistent manner, while saving you time during the development and  maintenance of your project.<br/><br/>SWFSEO has only one outwardly facing controller class, along with several &#8220;hook&#8221; classes. These simple &#8220;hook&#8221; classes allow your page swfs to communicate with the controller class. <br/><br/><a href="http://blog.pcthomatos.com/?p=92" target="_blank">UltraLoader</a>, a powerful preloading library, is used to load in all kinds of media content in a very manageable fashion. <br/><br/>With SWFSEO, you can add as many or as few pages as you&#8217;d like, without recompiling your SWFSEO controller file.<br/><br/>For more details on the features of SWFSEO <a href="http://www.pcthomatos.com/swfseo/" target="_blank">view the documentation</a> and/or <a href="http://code.google.com/p/swfseo/" target="_blank">download the source</a> from Google Code.
<br/>]]></content:encoded>
			<wfw:commentRss>http://blog2.pcthomatos.com/?feed=rss2&amp;p=21</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
