<?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>vivace.interactive</title>
	<atom:link href="http://www.blog.vivace.co.nz/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.blog.vivace.co.nz</link>
	<description>Introspective babblings of a serial flasher...</description>
	<lastBuildDate>Sun, 31 Jan 2010 10:53:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<meta xmlns="http://www.w3.org/1999/xhtml" name="robots" content="noindex,follow" />
		<item>
		<title>Easy Tiger&#8230; (or snow leopard, dont eat my friend Adobe Flash)</title>
		<link>http://www.blog.vivace.co.nz/?p=202</link>
		<comments>http://www.blog.vivace.co.nz/?p=202#comments</comments>
		<pubDate>Sun, 31 Jan 2010 10:46:57 +0000</pubDate>
		<dc:creator>vinnie.vivace</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.blog.vivace.co.nz/?p=202</guid>
		<description><![CDATA[woooah. greetings my old friend wordpress (that slapper Twitter seems to have distracted me!!). Im sitting here listening to massive fireworks going off in the background on the eve of Aucklands Anniversary day, whilst watching Federer V Murray in The Australian Open mens final. I am just back from a long weekend on the east [...]]]></description>
			<content:encoded><![CDATA[<p>woooah. greetings my old friend wordpress (that slapper Twitter seems to have distracted me!!). Im sitting here listening to massive fireworks going off in the background on the eve of Aucklands Anniversary day, whilst watching Federer V Murray in The Australian Open mens final. I am just back from a long weekend on the east coast where the weather was stunning, the company surperb and the pace gentle. In between points, I am catching up on all the commentary/opinion, noise/nonsense generated from the release of Apples latest piece of hardware the iPad.</p>
<p>So, the name kinda sucks, it doesnt have a webcam??, could have been a touch bigger, lacks a number of very useful input/output ports&#8230; oh yeah, and still doesnt support the super power of the internet, my good friend the Adobe flash player. So will I be purchasing one? Hell yeah.</p>
<p>Regardless of the above weaknesses for me this device offers the following attractions:</p>
<ol>
<li>ability to engage in online communications (email, messaging, social media) via a premium hardware device with a great user interface.</li>
<li>likely to be a superior option for reading online/electronic material, i.e. e-books, RSS feeds, online news sources etc.</li>
<li>Fantastic learning/distraction device for young children (ok for anyone), via games, educational software etc.</li>
<li>Did i mention games?</li>
<li>so yeah, the above points pretty much cover every evening of my life these days (other than when I&#8217;m at the beach)&#8230;. don&#8217;t be judging me fools.</li>
</ol>
<p>I have been developing web based content exclusively using the flash platform for nearly 10 years now. Its my passion and a lucrative career. Its also about the only thing I am half-way decent at (or at least prepared to admit publically) so I am pretty keen for its continued success. In that time theres always been a percentage of people talking shit about the demise of flash, all I could do was yawn. Theses days however Im less inclined to yawn. As a recent convert to mac hardware (OSX can kiss my arse) I am starting to raise an eyebrow, and cock my ear in the direction of the naysayers.</p>
<p>Thats not to say I think the flash platform is in anyway near death, but i think its reign as superpower of the browser based internet is over. I would suggest this is due to a combination of vastly improved HTML/CSS etc functionality, increasing support/demand/awareness of open standards, increased uptake of Apple hardware where Flash plugins continue to perform badly, and to a lesser degree the introduction of competitive technologies such as silverlight and Unity3D.</p>
<p>Love or hate the Apple, to deny its increasing influence on all things interweb is to deny your opposable thumbs. My question is this, if Apple could no longer accuse the flash plugin of shit performance and massive CPU/battery drain, could they continue to deny my all powerful friend? Conversely, if Apple are full of shit, and its their hardware, their OS that is rubbish and simply cannot handle flash, cannot thee prove it?</p>
<p>Ok, I will confess, a number of Vodka redbulls have passed, as has much tennis whilst penning this, so by all means destroy me&#8230;</p>
<p>chur</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.vivace.co.nz/?feed=rss2&amp;p=202</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Can&#8217;t Open Add Printer (Win 7 Professional 64-Bit &#8211; Bootcamp)</title>
		<link>http://www.blog.vivace.co.nz/?p=199</link>
		<comments>http://www.blog.vivace.co.nz/?p=199#comments</comments>
		<pubDate>Wed, 02 Dec 2009 20:56:57 +0000</pubDate>
		<dc:creator>vinnie.vivace</dc:creator>
				<category><![CDATA[Bootcamp]]></category>

		<guid isPermaLink="false">http://www.blog.vivace.co.nz/?p=199</guid>
		<description><![CDATA[Ahh yes. Sometimes i wonder why i still bother, but more from the adventures of running Windows on Mac hardware. Recently installed Windows 7 64bit, runs sweeeet. Then loaded up my Windows 7 partition from inside OSX via VMWare Fusion, also sweet. However after booting back into Windows 7 all printers where missing, print spooler [...]]]></description>
			<content:encoded><![CDATA[<p>Ahh yes. Sometimes i wonder why i still bother, but more from the adventures of running Windows on Mac hardware.<br />
Recently installed Windows 7 64bit, runs sweeeet. Then loaded up my Windows 7 partition from inside OSX via VMWare Fusion, also sweet. However after booting back into Windows 7 all printers where missing, print spooler dead and the above error received..</p>
<p>the fix is to kill on of the changes that VMWare makes to your registry. Kill the below entry, reboot and all is good.</p>
<p><code>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\ThinPrint Print Port Monitor for VMWare]</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.vivace.co.nz/?feed=rss2&amp;p=199</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Enumerators instead of Constants.</title>
		<link>http://www.blog.vivace.co.nz/?p=177</link>
		<comments>http://www.blog.vivace.co.nz/?p=177#comments</comments>
		<pubDate>Thu, 10 Sep 2009 06:55:27 +0000</pubDate>
		<dc:creator>vinnie.vivace</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[enum]]></category>

		<guid isPermaLink="false">http://www.blog.vivace.co.nz/?p=177</guid>
		<description><![CDATA[Call me lazy, but i have almost always gone with using static constants where other developers scream enum enum&#8230; ENUM!!! public static const TYPE_ONE :String = &#34;typeOne&#34;; public static const TYPE_TWO :String = &#34;typeTwo&#34;; &#160; public var type &#160; :String = TYPE_ONE; Ok, so i hear ya, you can chill now, from now one its: [...]]]></description>
			<content:encoded><![CDATA[<p>Call me lazy, but i have almost always gone with using static constants where other developers scream enum enum&#8230; ENUM!!!</p>
<div class="geshi no javascript">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">public</span> static <span class="kw2">const</span> TYPE_ONE :String = <span class="st0">&quot;typeOne&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">public</span> static <span class="kw2">const</span> TYPE_TWO :String = <span class="st0">&quot;typeTwo&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">public</span> <span class="kw2">var</span> type &nbsp; :String = TYPE_ONE;</div>
</li>
</ol>
</div>
<p>Ok, so i hear ya, you can chill now, from now one its:</p>
<div class="geshi no javascript">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">package</span> com.<span class="me1">vivace</span>.<span class="me1">papervision</span>.<span class="me1">enum</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw2">public</span> <span class="kw2">class</span> SomeEnum</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="co1">// to ensure enums are not instantiated outside this class we pass a lock class, defined only within this source file (see below)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">public</span> <span class="kw2">function</span> SomeEnum<span class="br0">&#40;</span>lock:<span class="kw2">Class</span>, <span class="kw3">name</span>:String<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw2">super</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span>lock <span class="sy0">!</span>= ConstructorLock<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">throw</span> <span class="kw2">new</span> Error<span class="br0">&#40;</span><span class="st0">&quot;Enumerator class can not be instanced directly, use Enum constants&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">this</span>.<span class="kw3">name</span> = <span class="kw3">name</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="co1">// [properties] ////////////////////////////////////////////////////////////////////////////////////////////////</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">public</span> static <span class="kw2">const</span> TYPE_ONE :SomeEnum = <span class="kw2">new</span> SomeEnum<span class="br0">&#40;</span>ConstructorLock, <span class="st0">&quot;typeOne&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">public</span> static <span class="kw2">const</span> TYPE_TWO :SomeEnum = <span class="kw2">new</span> SomeEnum<span class="br0">&#40;</span>ConstructorLock, <span class="st0">&quot;typeTwo&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">private</span> <span class="kw2">var</span> <span class="kw3">name</span>:String;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="co1">// [public] ////////////////////////////////////////////////////////////////////////////////////////////////////</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">public</span> <span class="kw2">function</span> toString<span class="br0">&#40;</span><span class="br0">&#41;</span>:String</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">return</span> <span class="kw3">name</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">public</span> static <span class="kw2">function</span> getByName<span class="br0">&#40;</span><span class="kw3">name</span>:String<span class="br0">&#41;</span>:SomeEnum</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">switch</span><span class="br0">&#40;</span><span class="kw3">name</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">case</span> TYPE_ONE.<span class="me1">toString</span><span class="br0">&#40;</span><span class="br0">&#41;</span> : <span class="kw1">return</span> TYPE_ONE; &nbsp;<span class="kw1">break</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">case</span> TYPE_TWO.<span class="me1">toString</span><span class="br0">&#40;</span><span class="br0">&#41;</span> : <span class="kw1">return</span> TYPE_TWO; &nbsp;<span class="kw1">break</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">default</span> &nbsp; &nbsp; &nbsp;: <span class="kw1">return</span> <span class="kw2">null</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// define the lock class outside the package, only accessable internal to this source file</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">class</span> ConstructorLock <span class="br0">&#123;</span><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Improvements, arguments, taking the piss, all welcome.</p>
<p>chur</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.vivace.co.nz/?feed=rss2&amp;p=177</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Using [Inspectable] metadata tag for code completion.</title>
		<link>http://www.blog.vivace.co.nz/?p=170</link>
		<comments>http://www.blog.vivace.co.nz/?p=170#comments</comments>
		<pubDate>Thu, 10 Sep 2009 06:31:37 +0000</pubDate>
		<dc:creator>vinnie.vivace</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.blog.vivace.co.nz/?p=170</guid>
		<description><![CDATA[If you want your custom components bindable properties to popup selectable values (i.e. true/false) via code completion in Flex Builder and also to show in the Properties Panel in design view, the Inspectable tag is your friend: [Inspectable(category="General", enumeration="true,false")] public var isCool:Boolean; If your like me and have been a bit slack on the metadata [...]]]></description>
			<content:encoded><![CDATA[<p>If you want your custom components bindable properties to popup selectable values (i.e. true/false) via code completion in Flex Builder and also to show in the Properties Panel in design view, the Inspectable tag is your friend:</p>
<div class="geshi no javascript">
<div class="head">[Inspectable(category="General", enumeration="true,false")]</div>
<ol>
<li class="li1">
<div class="de1"><span class="kw2">public</span> <span class="kw2">var</span> isCool:Boolean;</div>
</li>
</ol>
</div>
<p>If your like me and have been a bit slack on the metadata tags, go here to be schooled, theres lots more goodness:</p>
<p><a title="Adobe Livedocs" href="http://livedocs.adobe.com/flex/3/html/help.html?content=metadata_3.html" target="_blank">http://livedocs.adobe.com/flex/3/html/help.html?content=metadata_3.html</a></p>
<p>respect to <a title="Greg Dove" href="http://twitter.com/greg_dove" target="_blank">Greg Dove</a> of <a title="Defraga" href="http://www.degrafa.org" target="_blank">Degrafa</a> for sharing this knowledge.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.vivace.co.nz/?feed=rss2&amp;p=170</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Papervision: Mouse events on Collada models.</title>
		<link>http://www.blog.vivace.co.nz/?p=163</link>
		<comments>http://www.blog.vivace.co.nz/?p=163#comments</comments>
		<pubDate>Thu, 10 Sep 2009 06:05:16 +0000</pubDate>
		<dc:creator>vinnie.vivace</dc:creator>
				<category><![CDATA[3D/Physics]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[collada]]></category>
		<category><![CDATA[papervision]]></category>

		<guid isPermaLink="false">http://www.blog.vivace.co.nz/?p=163</guid>
		<description><![CDATA[Papervision provides a number of useful object parsers for loading 3D models, including the DAE and Collada classes. Ive found the DAE class to work more consistently than the Collada one, so thats how im rolling. Listening for mouse events on the loaded model should be simple right? Turns out its quite a pain in [...]]]></description>
			<content:encoded><![CDATA[<p>Papervision provides a number of useful object parsers for loading 3D models, including the DAE and Collada classes. Ive found the DAE class to work more consistently than the Collada one, so thats how im rolling.</p>
<p>Listening for mouse events on the loaded model should be simple right? Turns out its quite a pain in the arse, as serveral hours of my time, and some googlin has shown. It seems you cannot listen for events on the model itself, but rather you have to loop thru all its materials , and all children of those materials, attaching eventListeners and setting the interactive flag to true.</p>
<p><strong>(NOTE, ensure you also set viewport.interactive = true, and if you want hand cursors viewport.buttonMode = true)</strong></p>
<p>Finally you also need to attach your model to a DisplayObject3D in order to interactive with it within the scene. All too much for my small mind, so a custom class was required, here it is warts n all. Anyone want to refine this &#8211; please do!</p>
<div class="geshi no javascript">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">package</span> com.<span class="me1">vivace</span>.<span class="me1">papervision</span>.<span class="me1">collada</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw2">import</span> flash.<span class="me1">events</span>.<span class="me1">IOErrorEvent</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw2">import</span> flash.<span class="me1">events</span>.<span class="me1">MouseEvent</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw2">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">core</span>.<span class="me1">proto</span>.<span class="me1">MaterialObject3D</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw2">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">events</span>.<span class="me1">FileLoadEvent</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw2">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">events</span>.<span class="me1">InteractiveScene3DEvent</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw2">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">objects</span>.<span class="me1">DisplayObject3D</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw2">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">objects</span>.<span class="me1">parsers</span>.<span class="me1">DAE</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw2">public</span> <span class="kw2">class</span> InteractiveCollada <span class="kw2">extends</span> DisplayObject3D</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="co1">// pass .dae path to constructor</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">public</span> <span class="kw2">function</span> InteractiveCollada<span class="br0">&#40;</span>path:String<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw2">super</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">this</span>.<span class="me1">load</span><span class="br0">&#40;</span>path<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="co1">// [properties] ////////////////////////////////////////////////////////////////////////////////////////////////</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">public</span> <span class="kw2">var</span> model:DAE = <span class="kw2">new</span> DAE<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="co1">// [events] ////////////////////////////////////////////////////////////////////////////////////////////////////</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">private</span> <span class="kw2">function</span> onFileLoadEvent<span class="br0">&#40;</span>event:FileLoadEvent<span class="br0">&#41;</span>:<span class="kw1">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="co1">// handle the various events here, im just dealing with the basics &#8211; dont be as lazy as me!</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">switch</span><span class="br0">&#40;</span>event.<span class="me1">type</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">case</span> FileLoadEvent.<span class="me1">LOAD_PROGRESS</span> : &nbsp; &nbsp; <span class="kw1">break</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">case</span> FileLoadEvent.<span class="me1">LOAD_ERROR</span> &nbsp;: tracel<span class="br0">&#40;</span>event.<span class="me1">message</span><span class="br0">&#41;</span>; <span class="kw1">break</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">case</span> FileLoadEvent.<span class="me1">LOAD_COMPLETE</span> : <span class="kw1">this</span>.<span class="me1">finalizeModel</span><span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="kw1">break</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">private</span> <span class="kw2">function</span> onIOErrorEvent<span class="br0">&#40;</span>event:IOErrorEvent<span class="br0">&#41;</span>:<span class="kw1">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;trace<span class="br0">&#40;</span>event.<span class="me1">text</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="co1">// &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">private</span> <span class="kw2">function</span> onInteractiveEvent<span class="br0">&#40;</span>event:InteractiveScene3DEvent<span class="br0">&#41;</span>:<span class="kw1">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="co1">// again, being lazy, theres a number of events to handle here, refer to InteractiveScene3DEvent.</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">this</span>.<span class="me1">dispatchEvent</span><span class="br0">&#40;</span><span class="kw2">new</span> MouseEvent<span class="br0">&#40;</span>MouseEvent.<span class="me1">CLICK</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="co1">// [public] ////////////////////////////////////////////////////////////////////////////////////////////////////</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="co1">// if its an animated collada&#8230;&#8230;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">public</span> <span class="kw2">function</span> play<span class="br0">&#40;</span>clip:String = <span class="st0">&quot;&quot;</span>, loop:Boolean = <span class="kw2">false</span><span class="br0">&#41;</span>:<span class="kw1">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">this</span>.<span class="me1">model</span>.<span class="me1">play</span><span class="br0">&#40;</span>clip, loop<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="co1">// [private] ///////////////////////////////////////////////////////////////////////////////////////////////////</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">private</span> <span class="kw2">function</span> load<span class="br0">&#40;</span>path:String<span class="br0">&#41;</span>:<span class="kw1">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">this</span>.<span class="me1">initEventListeners</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">this</span>.<span class="me1">model</span>.<span class="me1">load</span><span class="br0">&#40;</span>path<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">private</span> <span class="kw2">function</span> finalizeModel<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw1">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="co1">// add model as child</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">this</span>.<span class="me1">addChild</span><span class="br0">&#40;</span><span class="kw1">this</span>.<span class="me1">model</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="co1">// loop thru model to find each material and add interactivity to each mesh.</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">for</span> each<span class="br0">&#40;</span><span class="kw2">var</span> mat:MaterialObject3D <span class="kw1">in</span> <span class="kw1">this</span>.<span class="me1">model</span>.<span class="me1">materials</span>.<span class="me1">materialsByName</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; mat.<span class="me1">interactive</span> = <span class="kw2">true</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="co1">// then loop thru children recursively adding event listeners</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">this</span>.<span class="me1">addInteractiveEventListeners</span><span class="br0">&#40;</span><span class="kw1">this</span>.<span class="me1">model</span>, InteractiveScene3DEvent.<span class="me1">OBJECT_CLICK</span>, <span class="kw1">this</span>.<span class="me1">onInteractiveEvent</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">private</span> <span class="kw2">function</span> addInteractiveEventListeners<span class="br0">&#40;</span>obj:DisplayObject3D, eventType:String, handler:<span class="kw2">Function</span><span class="br0">&#41;</span>:<span class="kw1">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;obj.<span class="me1">addEventListener</span><span class="br0">&#40;</span>eventType, handler<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">for</span> each<span class="br0">&#40;</span><span class="kw2">var</span> child:DisplayObject3D <span class="kw1">in</span> obj.<span class="me1">children</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">this</span>.<span class="me1">addInteractiveEventListeners</span><span class="br0">&#40;</span>child, eventType, handler<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">private</span> <span class="kw2">function</span> initEventListeners<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw1">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">this</span>.<span class="me1">model</span>.<span class="me1">addEventListener</span><span class="br0">&#40;</span>FileLoadEvent.<span class="me1">LOAD_PROGRESS</span>, &nbsp;<span class="kw1">this</span>.<span class="me1">onFileLoadEvent</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">this</span>.<span class="me1">model</span>.<span class="me1">addEventListener</span><span class="br0">&#40;</span>FileLoadEvent.<span class="me1">LOAD_COMPLETE</span>, &nbsp; <span class="kw1">this</span>.<span class="me1">onFileLoadEvent</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">this</span>.<span class="me1">model</span>.<span class="me1">addEventListener</span><span class="br0">&#40;</span>FileLoadEvent.<span class="me1">LOAD_ERROR</span>, &nbsp; <span class="kw1">this</span>.<span class="me1">onFileLoadEvent</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">this</span>.<span class="me1">model</span>.<span class="me1">addEventListener</span><span class="br0">&#40;</span>FileLoadEvent.<span class="me1">SECURITY_LOAD_ERROR</span>, &nbsp;<span class="kw1">this</span>.<span class="me1">onFileLoadEvent</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">this</span>.<span class="me1">model</span>.<span class="me1">addEventListener</span><span class="br0">&#40;</span>FileLoadEvent.<span class="me1">ANIMATIONS_COMPLETE</span>, <span class="kw1">this</span>.<span class="me1">onFileLoadEvent</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">this</span>.<span class="me1">model</span>.<span class="me1">addEventListener</span><span class="br0">&#40;</span>FileLoadEvent.<span class="me1">ANIMATIONS_PROGRESS</span>, <span class="kw1">this</span>.<span class="me1">onFileLoadEvent</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">this</span>.<span class="me1">model</span>.<span class="me1">addEventListener</span><span class="br0">&#40;</span>IOErrorEvent.<span class="me1">IO_ERROR</span>, &nbsp; &nbsp;<span class="kw1">this</span>.<span class="me1">onIOErrorEvent</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.vivace.co.nz/?feed=rss2&amp;p=163</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>ASDoc arguments</title>
		<link>http://www.blog.vivace.co.nz/?p=148</link>
		<comments>http://www.blog.vivace.co.nz/?p=148#comments</comments>
		<pubDate>Tue, 01 Sep 2009 04:15:28 +0000</pubDate>
		<dc:creator>vinnie.vivace</dc:creator>
				<category><![CDATA[ASDoc]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.blog.vivace.co.nz/?p=148</guid>
		<description><![CDATA[Ran into a few &#8220;quirks&#8221; using ASDoc, so needed to tweak my arguments, firstly to include libraries, and secondly to surpress some odd errors, such as: Error: Interface method get creatingContentPane in namespace mx.core:IContainer not implemented This error was coming from an empty MXML component that extends Canvas&#8230; no code or children&#8230;. weird. So anyway, [...]]]></description>
			<content:encoded><![CDATA[<p>Ran into a few &#8220;quirks&#8221; using ASDoc, so needed to tweak my arguments, firstly to include libraries, and secondly to surpress some odd errors, such as:</p>
<blockquote><p>Error: Interface method get creatingContentPane in namespace mx.core:IContainer not implemented</p></blockquote>
<p>This error was coming from an empty MXML component that extends Canvas&#8230; no code or children&#8230;. weird. So anyway, adding the warning params below make everyone happy happy.</p>
<p><code>-source-path .\src<br />
-doc-sources .\src<br />
-external-library-path .\libs<br />
-show-binding-warnings=false<br />
-show-actionscript-warnings=false<br />
-window-title "${project_name}"<br />
-main-title "${project_name}"<br />
-output "${project_loc}/docs"</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.vivace.co.nz/?feed=rss2&amp;p=148</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generating ASDoc via Flex Builder</title>
		<link>http://www.blog.vivace.co.nz/?p=145</link>
		<comments>http://www.blog.vivace.co.nz/?p=145#comments</comments>
		<pubDate>Mon, 31 Aug 2009 21:49:21 +0000</pubDate>
		<dc:creator>vinnie.vivace</dc:creator>
				<category><![CDATA[ASDoc]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.blog.vivace.co.nz/?p=145</guid>
		<description><![CDATA[More than once I have looked for the ultimate solution to generating ASDocs, have tried ANT builds, third-party plugins etc. Little did i realise there was a much easier option, just use External Tools as outlined here. From what i can tell you can only document comments in .as files or inside the SCRIPT tag [...]]]></description>
			<content:encoded><![CDATA[<p>More than once I have looked for the ultimate solution to generating ASDocs, have tried ANT builds, third-party plugins etc. Little did i realise there was a much easier option, just use External Tools as outlined <a href="http://amiest-devblog.blogspot.com/2007/12/launching-asdoc-with-external-tools.html" target="_blank">here.</a> From what i can tell you can only document comments in .as files or inside the SCRIPT tag of an .mxml tag which is lame, however that all changes with FB4, bring it on!</p>
<p>So heres a few good links to get you up to speed, no more excuses!</p>
<p><a href="http://livedocs.adobe.com/flex/3/html/help.html?content=asdoc_6.html">ASDoc Tags</a><br />
<a href="http://livedocs.adobe.com/flex/3/html/index.html?content=asdoc_9.html#142061">ASDoc commandline parameters</a><br />
<a href="http://livedocs.adobe.com/flex/3/html/help.html?content=asdoc_8.html#186379" target="_blank">Common HTML tags supported by ASDoc</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.vivace.co.nz/?feed=rss2&amp;p=145</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ClientException: Unsupported working copy format svn: This client is too old to work with working copy</title>
		<link>http://www.blog.vivace.co.nz/?p=142</link>
		<comments>http://www.blog.vivace.co.nz/?p=142#comments</comments>
		<pubDate>Mon, 31 Aug 2009 21:38:11 +0000</pubDate>
		<dc:creator>vinnie.vivace</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.blog.vivace.co.nz/?p=142</guid>
		<description><![CDATA[Seen that error when using a combination of TortoiseSVN client and the Subclipse plugin for Flex Builder? For me the fix was simple, my TortoiseSVN client was version 1.6.x, however my subclipse Remote Site was pointing at http://subclipse.tigris.org/update_1.4.x, ammending that to match the TortoiseSVN version was the fix. Once updated I then just &#8220;reattached&#8221; by [...]]]></description>
			<content:encoded><![CDATA[<p>Seen that error when using a combination of TortoiseSVN client and the Subclipse plugin for Flex Builder? For me the fix was simple, my TortoiseSVN client was version 1.6.x, however my subclipse Remote Site was pointing at http://subclipse.tigris.org/update_1.4.x, ammending that to match the TortoiseSVN version was the fix. Once updated I then just &#8220;reattached&#8221; by right clicking the project in Navigator, selecting Team &gt;  Share &gt; SVN&#8230; sorted.</p>
<p><img class="aligncenter size-medium wp-image-143" title="subclipse" src="http://www.blog.vivace.co.nz/wp-content/uploads/2009/09/subclipse-482x480.png" alt="subclipse" width="482" height="480" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.vivace.co.nz/?feed=rss2&amp;p=142</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Signed up as an iPhone Developer</title>
		<link>http://www.blog.vivace.co.nz/?p=137</link>
		<comments>http://www.blog.vivace.co.nz/?p=137#comments</comments>
		<pubDate>Wed, 29 Jul 2009 03:37:08 +0000</pubDate>
		<dc:creator>vinnie.vivace</dc:creator>
				<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.blog.vivace.co.nz/?p=137</guid>
		<description><![CDATA[Ive just signed up as an IPhone developer, and also with the beta program for Titanium, an interesting new development tool.]]></description>
			<content:encoded><![CDATA[<p>Ive just signed up as an IPhone developer, and also with the beta program for <a href="http://www.appcelerator.com/" target="_blank">Titanium</a>, an interesting new development tool.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.vivace.co.nz/?feed=rss2&amp;p=137</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Launching an AIR application maximized</title>
		<link>http://www.blog.vivace.co.nz/?p=131</link>
		<comments>http://www.blog.vivace.co.nz/?p=131#comments</comments>
		<pubDate>Mon, 22 Jun 2009 21:36:00 +0000</pubDate>
		<dc:creator>vinnie.vivace</dc:creator>
				<category><![CDATA[AIR]]></category>

		<guid isPermaLink="false">http://www.blog.vivace.co.nz/?p=131</guid>
		<description><![CDATA[I want my AIR application to launch at 100% width and height, or maximized in PC speak. So I had assumed this would be easy, either by setting the width and height of my WindowedApplication to 100% in my application mxml file, or by doing the same using the width/height nodes  in the application xml [...]]]></description>
			<content:encoded><![CDATA[<p>I want my AIR application to launch at 100% width and height, or maximized in PC speak. So I had assumed this would be easy, either by setting the width and height of my WindowedApplication to 100% in my application mxml file, or by doing the same using the width/height nodes  in the application xml file. Neither approach seemed to work&#8230;</p>
<p>Instead i resize my application once its fully initialized, using the code below, which grabs the visibleBounds of the main screen (meaning it takes into account the size of the taskbar), and resizes accordingly:</p>
<div class="geshi no javascript">
<div class="head">private function onApplicationComplete():void</div>
<ol>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw2">var</span> screen:Screen = Screen.<span class="me1">mainScreen</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">this</span>.<span class="me1">width</span> = screen.<span class="me1">visibleBounds</span>.<span class="me1">width</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">this</span>.<span class="me1">height</span> = screen.<span class="me1">visibleBounds</span>.<span class="me1">height</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">this</span>.<span class="me1">move</span><span class="br0">&#40;</span><span class="nu0">0</span>,<span class="nu0">0</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p><strong>UPDATE</strong></p>
<p>Thanks to Tim (see comments) theres an even easier way:</p>
<pre lang="enc__javascript">stage.nativeWindow.maximize();</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.vivace.co.nz/?feed=rss2&amp;p=131</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
