<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">

    <title type="text">David Ortinau</title>
    <subtitle type="text">David Ortinau:</subtitle>
    <link rel="alternate" type="text/html" href="http://www.davidortinau.com/blog/index/" />
    <link rel="self" type="application/atom+xml" href="http://www.davidortinau.com/site/atom/" />
    <updated>2010-09-04T16:52:53Z</updated>
    <rights>Copyright (c) 2010, David Ortinau</rights>
    <generator uri="http://expressionengine.com/" version="1.6.6">ExpressionEngine</generator>
    <id>tag:davidortinau.com,2010:09:04</id>


    <entry>
      <title>Slides and Demos from Flash Camp St. Louis 2010</title>
      <link rel="alternate" type="text/html" href="http://www.davidortinau.com/site/slides_and_demos_from_flash_camp_st._louis_2010/" />
      <id>tag:davidortinau.com,2010:blog/index/1.70</id>
      <published>2010-09-04T15:20:52Z</published>
      <updated>2010-09-04T16:52:53Z</updated>
      <author>
            <name>David Ortinau</name>
            <email>dave@davidortinau.com</email>
                  </author>

      <category term="Flash"
        scheme="http://www.davidortinau.com/site/category/flash/"
        label="Flash" />
      <category term="General"
        scheme="http://www.davidortinau.com/site/category/general/"
        label="General" />
      <category term="Flex"
        scheme="http://www.davidortinau.com/site/category/flex/"
        label="Flex" />
      <content type="html"><![CDATA[
        <p>What a great day! I loved seeing the awesome turnout of Flash designers and developers from around the area, including many interactive compatriots I hadn&#8217;t seen in quite a while. You guys are awesome!</p>

<p>Here are my <a href="http://www.slideshare.net/davidortinau/managing-and-using-assets-in-rich-flash-experiences" title="slides">slides</a> and <a href="davidortinau.com/exhibits/FlashCampSTLDemos.zip" title="an archive of the demos">an archive of the demos</a> I showed during my session. </p>

<p>The demos are FDT projects, so head over to <a href="http://www.fdt.powerflasher.com/" title="Powerflasher">Powerflasher</a> and get your demo copy of FDT4. And if you don&#8217;t have a license, be sure to follow <a href="http://twitter.com/brunofonzi" title="@brunofonzi">@brunofonzi</a>, <a href="http://twitter.com/brittrking" title="@brittrking">@brittrking</a>, <a href="http://twitter.com/davidortinau" title="myself">myself</a>, and <a href="http://twitter.com/#search?q=%23FDT" title="many others">many others</a> that seem to weekly be tweeting or retweeting ways to get a free Pure license.</p>

<p>To use the demos, open a new workspace in FDT, choose to Import > General > Existing Projects into Workspace. Browse to the extracted the ZIP file and choose each project individually. It should end up looking like this:</p>

<p><img src="http://www.davidortinau.com/images/uploads/demo_projects.png" style="border: 0;" alt="image" width="243" height="434" /></p>

<p>In the demos you&#8217;ll find 3 projects:</p>

<p>1) AssetsExamples</p>

<p>This is the demo I also performed step by step in the <a href="http://vimeo.com/14148808" title="screencast on Vimeo">screencast on Vimeo</a>. I demonstrate how to create assets in Flash Pro, produce a SWC file, make that SWC available in an FDT (or Flash Builder) project and then a variety of ways you can use and add behavior to those assets.</p>

<p>2) LoaderMaxExample</p>

<p>This code demonstrates the flexibility of bulk loading a variety of different asset types by defining them in an XML manifest document with custom properties telling LoaderMax how to handle them.</p>

<blockquote><p>NOTE: for this example and the next you will need to set your Flash Player security to so you don&#8217;t get a SandBox violation. Open the FDTLaunch.cfg file you&#8217;ll find here: ~/Library/Preferences/Macromedia/Flash Player/#Security/FlashPlayerTrust/ and add paths to your project locations. Then restart FDT. Here are mine:</p>

<p>file:////Users/dave/work/SimplyProfound/LoaderMaxExample/bin/<br />
file:////Users/dave/work/SimplyProfound/SWFLoaderExample/bin/</p></blockquote>

<p>During my talk I also showed code from the <a href="http://stltweets.com/" title="STLTweets">STLTweets</a> LouFest twitter display that I did with the guys at <a href="http://www.infuz.com/" title="Infuz">Infuz</a>. I can&#8217;t share the entire app, but the relevant code below demonstrates how you can load images directly into containers, define the desired size, and then the scaling parameters to make sure your image fits and fills that space when it&#8217;s loaded. Awesome mojo from <a href="http://www.greensock.com/loadermax/" title="Greensock">Greensock</a>!</p>

<p><actionscript></p><p>
photoLoader = new ImageLoader(vo.linkThumbnail, {smoothing:true, container:tweet.imgPhoto, width:400, height:300, scaleMode:"proportionalInside"});<br />
photoLoader.load();<br />
					<br />
iconLoader = new ImageLoader(vo.profileImageURL, {smoothing:true, container:tweet.imgUserIcon, width:60, height:60, scaleMode:"proportionalOutside"});<br />
iconLoader.load();
</p><p></actionscript></p>

<p>3) SWFLoaderExample</p>

<p>This set of examples demonstrates using a utilities like <a href="http://casalib.org/" title="CASA Lib">CASA Lib</a> to load linked assets from swf files. This method is more akin to the old school AS2 way of doing things and lacks the strong typing I prefer (and why I use SWCs more often). It&#8217;s a very cool and useful way of loading multiple swfs and accessing the libraries.</p>

<div style="width:425px" id="__ss_5128855"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/davidortinau/managing-and-using-assets-in-rich-flash-experiences" title="Managing and Using Assets in Rich Flash Experiences">Managing and Using Assets in Rich Flash Experiences</a></strong><object id="__sse5128855" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=flashcamp2010-100904092422-phpapp01&amp;stripped_title=managing-and-using-assets-in-rich-flash-experiences" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse5128855" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=flashcamp2010-100904092422-phpapp01&amp;stripped_title=managing-and-using-assets-in-rich-flash-experiences" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/davidortinau">David Ortinau</a>.</div></div>

<p><a href="davidortinau.com/exhibits/FlashCampSTLDemos.zip" title="Download Demo Code Projects">Download Demo Code Projects</a></p> 
      ]]></content>
    </entry>

    <entry>
      <title>My Interview with FDT for Flash Camp St. Louis</title>
      <link rel="alternate" type="text/html" href="http://www.davidortinau.com/site/my_interview_with_fdt_for_flash_camp_st._louis/" />
      <id>tag:davidortinau.com,2010:blog/index/1.69</id>
      <published>2010-08-30T05:04:32Z</published>
      <updated>2010-08-30T05:12:33Z</updated>
      <author>
            <name>David Ortinau</name>
            <email>dave@davidortinau.com</email>
                  </author>

      <category term="Flash"
        scheme="http://www.davidortinau.com/site/category/flash/"
        label="Flash" />
      <category term="General"
        scheme="http://www.davidortinau.com/site/category/general/"
        label="General" />
      <content type="html"><![CDATA[
        <p>The crew over at <a href="http://www.fdt.powerflasher.com/" title="FDT">FDT</a> asked me for an interview, and I&#8217;m excited I was able to oblige. They are a sponsor for our upcoming <a href="http://www.flashcampstlouis.com/" title="Flash Camp">Flash Camp</a> in St. Louis where I&#8217;ll be <a href="http://www.davidortinau.com/blog/speaking_at_flash_camp_st._louis/" title="speaking during the last session">speaking during the last session</a> of the day.</p>

<p>During my session I&#8217;ll be giving away a free FDT Pure license. That&#8217;s a $129 value, and all you have to do is listen to me tell some stories, play with some code&#8230;so get yourself <a href="http://flashcampstl.eventbrite.com/" title="registered">registered</a> and I&#8217;ll see you there! </p>

<p>To read the full interview, head on over to the FDT blog: <a href="http://fdt.powerflasher.com/blog/?p=2662" onclick="window.open(this.href); return false;" >http://fdt.powerflasher.com/blog/?p=2662</a></p> 
      ]]></content>
    </entry>

    <entry>
      <title>Give Respect</title>
      <link rel="alternate" type="text/html" href="http://www.davidortinau.com/site/give_respect/" />
      <id>tag:davidortinau.com,2010:blog/index/1.66</id>
      <published>2010-08-15T14:00:00Z</published>
      <updated>2010-08-15T15:27:01Z</updated>
      <author>
            <name>David Ortinau</name>
            <email>dave@davidortinau.com</email>
                  </author>

      <category term="Freelancing"
        scheme="http://www.davidortinau.com/site/category/freelancing/"
        label="Freelancing" />
      <content type="html"><![CDATA[
        <p>It recently occurred to me that when meeting someone for the first time, you can&#8217;t go wrong by giving them respect. You just never know who that person might be, what amazing talents they may possess, or what their relationship might mean to you in the future. </p>

<p>Fundamental to giving someone respect is setting your attention on them rather than posturing yourself. If your tendency is to think more about showing your new acquaintance all the coolness that is you, perhaps this is the right exercise for you. Give some respect on credit and probe for what is unique and valuable about them to warrant such respect.</p>

<p>My bet is you&#8217;ll find something, and you won&#8217;t make a fool of yourself in the process.</p> 
      ]]></content>
    </entry>

    <entry>
      <title>Speaking at Flash Camp St. Louis</title>
      <link rel="alternate" type="text/html" href="http://www.davidortinau.com/site/speaking_at_flash_camp_st._louis/" />
      <id>tag:davidortinau.com,2010:blog/index/1.68</id>
      <published>2010-08-15T02:38:17Z</published>
      <updated>2010-08-15T05:32:18Z</updated>
      <author>
            <name>David Ortinau</name>
            <email>dave@davidortinau.com</email>
                  </author>

      <category term="Flash"
        scheme="http://www.davidortinau.com/site/category/flash/"
        label="Flash" />
      <category term="Flex"
        scheme="http://www.davidortinau.com/site/category/flex/"
        label="Flex" />
      <category term="Freelancing"
        scheme="http://www.davidortinau.com/site/category/freelancing/"
        label="Freelancing" />
      <category term="AIR"
        scheme="http://www.davidortinau.com/site/category/air/"
        label="AIR" />
      <category term="Productivity"
        scheme="http://www.davidortinau.com/site/category/productivity/"
        label="Productivity" />
      <content type="html"><![CDATA[
        <p>I&#8217;m excited to be speaking at <a href="http://www.flashcampstlouis.com/" title="Flash Camp St. Louis">Flash Camp St. Louis</a> coming up very soon on September 3rd. Come get a jump on your holiday weekend and join us at the <a href="http://www.citymuseum.org" title="City Museum">City Museum</a> for a full day of great sessions and mingling.</p>

<p>Be sure to <a href="http://www.flashcampstlouis.com/index.cfm/registration/" title="register right away">register right away</a>. Space is limited, and it&#8217;s only $60 for a full day of sessions, lunch, and probably some free giveaways.</p>

<p>I really hope that my session will have some appeal for both developers and designers. I&#8217;ll be focusing on asset management in more advanced, dynamic, or heavier projects. When you have a Flash project with a lot of logic and thus code, and you&#8217;re talking to databases and social networks, you find that working with just a Flash FLA file isn&#8217;t enough. But how can you continue to utilize the strengths of Flash Pro for animation, composite components, vectors, and general layout? And what do you do about video, audio, social network content, xml, json, and other data sources? </p>

<p>I&#8217;ll be looking at different ways to address these questions, the developer and designer workflows involved, and the libraries and tools I&#8217;ve found most useful in the process.</p>

<p>To wet your appetite, here is an 18 minute screencast I put together covering one such strategy, the use of a SWC file to provide assets to an Actionscript or Flex project. </p>

<object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=14148808&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=14148808&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object><p><a href="http://vimeo.com/14148808">Use Flash Pro Assets in Actionscript and Flex Projects</a> from <a href="http://vimeo.com/davidortinau">David Ortinau</a> on <a href="http://vimeo.com">Vimeo</a>.</p>

<p>In this screencast I use one of my favorite tools, <a href="http://www.fdt.powerflasher.com/" title="FDT from PowerFlasher">FDT from PowerFlasher</a>. I don&#8217; think I mention it in the screencast, so let me highlight the 2 keystroke combinations you need to master in order to unleash all of the amazing tricks you&#8217;ll see me do. </p>

<p><b>Quick Fix</b> - CMD + 1 (CTRL + 1 on the PC I think)<br />
This fixes missing imports, generates var declarations, initiates new classes, generates handlers, and on and on</p>

<p><b>Code Complete</b> - CTRL + SPACE<br />
This keystroke is also present in Flash Builder, but has some extra oomph it seems in FDT. Type part of anything and hit it to see options on what you might mean. Also generate constructors or other code blocks.</p>

<p>Hope to see you at Flash Camp!</p>

<h2>Flash Camp St. Louis</h2><p>
September 3, 2010<br />
9am - 4pm<br />
The City Museum
</p> 
      ]]></content>
    </entry>

    <entry>
      <title>Simple LoaderMax Example</title>
      <link rel="alternate" type="text/html" href="http://www.davidortinau.com/site/simple_loadermax_example/" />
      <id>tag:davidortinau.com,2010:blog/index/1.67</id>
      <published>2010-08-13T23:17:06Z</published>
      <updated>2010-08-13T23:34:07Z</updated>
      <author>
            <name>David Ortinau</name>
            <email>dave@davidortinau.com</email>
                  </author>

      <category term="Flash"
        scheme="http://www.davidortinau.com/site/category/flash/"
        label="Flash" />
      <content type="html"><![CDATA[
        <p>I stumbled a bit getting GreenSock&#8217;s <a href="http://www.greensock.com/loadermax/" title="LoaderMax">LoaderMax</a> bulk loading utility running from an XML doc, but after looking through multiple examples in the documentation I have it working. Here&#8217;s the deal:</p>

<h2>Ready: The XML</h2><p>
The structures doesn&#8217;t matter much overall until you define the loader elements. You can add anything LoaderMax supports. I&#8217;m just loading some images. </p>

<p><pre class="xml"><ol><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="font-weight: bold; color: black;">?&gt;</span></span></div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;manifest<span style="font-weight: bold; color: black;">&gt;</span></span></span></div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;images<span style="font-weight: bold; color: black;">&gt;</span></span></span></div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;ImageLoader</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;largeMap&quot;</span> <span style="color: #000066;">url</span>=<span style="color: #ff0000;">&quot;assets/images/bg_largeMap.png&quot;</span> <span style="color: #000066;">estimatedBytes</span>=<span style="color: #ff0000;">&quot;3300&quot;</span> <span style="color: #000066;">load</span>=<span style="color: #ff0000;">&quot;true&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span></div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;ImageLoader</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;shortMap&quot;</span> <span style="color: #000066;">url</span>=<span style="color: #ff0000;">&quot;assets/images/bg_shortMap.png&quot;</span> <span style="color: #000066;">estimatedBytes</span>=<span style="color: #ff0000;">&quot;6600&quot;</span> <span style="color: #000066;">load</span>=<span style="color: #ff0000;">&quot;true&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span></div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/images<span style="font-weight: bold; color: black;">&gt;</span></span></span></div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/manifest<span style="font-weight: bold; color: black;">&gt;</span></span></span></div></li></ol></pre></p>

<h2>Set: Loading</h2><p>
First you need to activate the loaders you&#8217;re going to use. Then fire up <a href="http://www.greensock.com/as/docs/tween/_loadermax.html" title="XMLLoader">XMLLoader</a> and load the xml document. XMLLoader will sniff out any <a href="http://www.greensock.com/as/docs/tween/_loadermax.html" title="known and activated loader">known and activated loader</a> and process it according to the rules you define in the xml.</p>

<p><pre class="actionscript"><ol><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">LoaderMax.<span style="color: #006600;">activate</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#91;</span>ImageLoader<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>; </div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">var</span> loader:XMLLoader = <span style="color: #000000; font-weight: bold;">new</span> XMLLoader<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;assets/xml/artworkManifest.xml&quot;</span>, <span style="color: #66cc66;">&#123;</span><span style="color: #0066CC;">name</span>:<span style="color: #ff0000;">&quot;xmlDoc&quot;</span>, onComplete:onReady<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">loader.<span style="color: #0066CC;">load</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onReady<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:LoaderEvent<span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>			</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #808080; font-style: italic;">// finish up or whatever</span></div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div></li></ol></pre></p>

<h2>GO!</h2><p>
You&#8217;ll call a static function to retrieve the asset. </p>

<p><pre class="actionscript"><ol><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// when the asset is needed</span></div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">var</span> staticMap:Sprite = Sprite<span style="color: #66cc66;">&#40;</span> LoaderMax.<span style="color: #006600;">getContent</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;shortMap&quot;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">addChild<span style="color: #66cc66;">&#40;</span>staticMap<span style="color: #66cc66;">&#41;</span>;</div></li></ol></pre></p>

<p>You&#8217;ll also want error handling and display progress, etc. Hit the <a href="http://www.greensock.com/as/docs/tween/_loadermax.html" title="docs">docs</a> for more details about that.
</p> 
      ]]></content>
    </entry>

    <entry>
      <title>Hey Freelancer, What Are You Selling?</title>
      <link rel="alternate" type="text/html" href="http://www.davidortinau.com/site/hey_freelancer_what_are_you_selling/" />
      <id>tag:davidortinau.com,2010:blog/index/1.65</id>
      <published>2010-08-09T18:51:46Z</published>
      <updated>2010-08-11T00:34:47Z</updated>
      <author>
            <name>David Ortinau</name>
            <email>dave@davidortinau.com</email>
                  </author>

      <category term="Freelancing"
        scheme="http://www.davidortinau.com/site/category/freelancing/"
        label="Freelancing" />
      <content type="html"><![CDATA[
        <p>What are you selling? Services, products&#8230; sure, ok. But what are you really selling? Read just about any book about selling and marketing and you&#8217;ll find that in every case people don&#8217;t just buy the product, they buy the idea of the thing and the idea behind the thing. </p>

<p>As a freelancer, you sell not only your technical or creative capabilities. You for sure sure don&#8217;t sell hours of time. You sell your personal brand, your relationship, and your experience. You sell your reputation to deliver on time and within budget. You sell what makes you valuable and unique. </p>

<p>Is anyone buying? If not, then there may be some hard questions ahead, but the good news is that most of this will be within your control to remedy.</p>

<p>Some of the best advice I was ever given about selling myself came from my first creative director. He told me &#8220;if you take care of your portfolio, your portfolio will take care of you.&#8221; That advice extends beyond having a sweet set of projects to show. It is also making sure you take care of your name and reputation. It is making sure that your portfolio of clients and partners speak nothing but resounding praise about you. </p>

<p>Now that&#8217;ll sell. </p>

<p><i>[ I&#8217;m <a href="http://www.davidortinau.com/blog/presenting_at_360flex_in_dc/" title="presenting on these topics and more">presenting on these topics and more</a> at <a href="http://www.360flex.com/" title="360|Flex">360|Flex</a> Sept.18-23 in DC. 360|Flex is one of the community&#8217;s most beloved Flash Platform developer conferences. If you&#8217;re attending, I hope you&#8217;ll join one or both of my <a href="http://www.davidortinau.com/blog/presenting_at_360flex_in_dc/" title="sessions">sessions</a>. <a href="http://www.eventbrite.com/event/680816340/360flexhelpsell/1211082648" title="Register here">Register here</a>. ]</i></p> 
      ]]></content>
    </entry>

    <entry>
      <title>Hey Freelancer, Are You Fitting In?</title>
      <link rel="alternate" type="text/html" href="http://www.davidortinau.com/site/hey_freelancer_are_you_fitting_in/" />
      <id>tag:davidortinau.com,2010:blog/index/1.64</id>
      <published>2010-08-02T16:00:25Z</published>
      <updated>2010-08-11T00:34:26Z</updated>
      <author>
            <name>David Ortinau</name>
            <email>dave@davidortinau.com</email>
                  </author>

      <category term="Freelancing"
        scheme="http://www.davidortinau.com/site/category/freelancing/"
        label="Freelancing" />
      <content type="html"><![CDATA[
        <p>The craft and skill we use to deliver for our clients are central to our success as freelancers, but we have another talent at our disposal that I&#8217;m not sure many recognize and exploit to their full advantage. Our ability to fit instantaneously with any team can be a huge asset. As freelancers, we are better equipped for this than most anyone. We are weekly, perhaps daily, working with diverse teams of designers, developers, writers, managers, owners, and that other guy. How can we get along with all of them?</p>

<p>Rather than asking, &#8220;how do I fit?&#8221;, which is the me-centric approach of an employee, we might ask &#8220;what can I do to help this team?&#8221; Sniff out opportunities to be helpful. To everyone from the decision maker all the way down to the developer sitting in his cube with a furrowed brow, we should be on the lookout for ways to make ourselves valuable. The next thing you know, by serving our adopted team, we fit in.</p>

<p>We bring so much more to our clients than the hours we render in their service. One of my favorite things to hear from a client is that I made them better at their job. That right there is gold.</p>

<p><i>[ I&#8217;m <a href="http://www.davidortinau.com/blog/presenting_at_360flex_in_dc/" title="presenting on these topics and more">presenting on these topics and more</a> at <a href="http://www.360flex.com/" title="360|Flex">360|Flex</a> Sept.18-23 in DC. 360|Flex is one of the community&#8217;s most beloved Flash Platform developer conferences. If you&#8217;re attending, I hope you&#8217;ll join one or both of my <a href="http://www.davidortinau.com/blog/presenting_at_360flex_in_dc/" title="sessions">sessions</a>. <a href="http://www.eventbrite.com/event/680816340/360flexhelpsell/1211082648" title="Register here">Register here</a>. ]</i>
</p> 
      ]]></content>
    </entry>

    <entry>
      <title>Presenting at 360|Flex in DC</title>
      <link rel="alternate" type="text/html" href="http://www.davidortinau.com/site/presenting_at_360flex_in_dc/" />
      <id>tag:davidortinau.com,2010:blog/index/1.63</id>
      <published>2010-08-02T04:00:45Z</published>
      <updated>2010-08-09T18:05:46Z</updated>
      <author>
            <name>David Ortinau</name>
            <email>dave@davidortinau.com</email>
                  </author>

      <category term="General"
        scheme="http://www.davidortinau.com/site/category/general/"
        label="General" />
      <content type="html"><![CDATA[
        <p>I&#8217;m thrilled and a little humbled to have been chosen to present this September 19-22 in DC at my favorite conference, <a href="http://www.360flex.com/" title="360|Flex">360|Flex</a>. And I must have really made a good impression with my submissions because I&#8217;ve been awarded 2 sessions!</p>

<p>I absolutely love what I do as a freelancer and Flash Platform designer/developer, so I chose topics about which I&#8217;m extremely passionate.</p>

<h2>How to Scale Your Freelance Business and Maximize Your Profit.</h2><p>
Admit it, you are running a business even if it&#8217;s just you. What&#8217;s next? Nobody likes to say no to work, but at some point you have to find a way to deliver on your abundance of commitments that doesn&#8217;t involve deploying at 4am after 56 hrs of no sleep. What can you do but work hard and longer? This session will discuss options and how to best ascertain the route you should take.
</p><blockquote><p>
<b>Topics we&#8217;ll (likely) touch on</b><br />
Identifying profitability in your market and skill set<br />
Qualifying opportunities<br />
Subcontracting - interviewing and contracting<br />
Working with and managing a virtual team<br />
Looking outside your world for strategy and inspiration</p></blockquote>

<p>
</p><h2>The Invaluable Freelance Flasher</h2><p>
Value is a word I probably use too much, but there&#8217;s just so much more to being a freelancer than writing code and charging an hourly rate. It is our ability to recognize and appreciate those qualities in ourselves that will empower us to become invaluable to our clients. In this session we will discuss practical principles learned in the real world of freelancing that can help us excel to the next level.
</p><blockquote><p>
<b>Topics we&#8217;ll (likely) touch on:</b><br />
What a freelancer provides<br />
It&#8217;s NOT about the code<br />
How to estimate<br />
How to communicate an estimate<br />
How to integrate and work with a team<br />
How to invoice and get paid<br />
How to manage time<br />
How to talk to clients and client&#8217;s clients<br />
Realizing your value to clients</p></blockquote>

<p>&nbsp;</p>

<p>If these topics sound interesting to you, I hope you&#8217;ll join me in DC. <a href="http://www.eventbrite.com/event/680816340/360flexhelpsell/1211082648" title="Register here">Register here</a>. We are going to have an absolute blast, and all come away richer for it. </p>

<p>From every 360|Flex conference I&#8217;ve attended, I can point to 2 or 3 conversations and several relationships that have fundamentally impacted my life and business for the better. You can expect to meet some of the brightest developers in the world, hear from the <a href="http://www.360flex.com/speakers/" title="top talent in our field">top talent in our field</a>, and hang out with what I feel is one of the best communities on any platform. 
</p> 
      ]]></content>
    </entry>

    <entry>
      <title>How To Add &#8220;Fast App Switching&#8221; To Your iPhone App in iOS 4</title>
      <link rel="alternate" type="text/html" href="http://www.davidortinau.com/site/how_to_add_fast_app_switching_to_your_iphone_app_in_ios_4/" />
      <id>tag:davidortinau.com,2010:blog/index/1.62</id>
      <published>2010-06-29T18:01:49Z</published>
      <updated>2010-07-20T00:20:50Z</updated>
      <author>
            <name>David Ortinau</name>
            <email>dave@davidortinau.com</email>
                  </author>

      <category term="iPhone"
        scheme="http://www.davidortinau.com/site/category/iphone/"
        label="iPhone" />
      <content type="html"><![CDATA[
        <p>iPhones 4 and iOS 4 introduce Apple&#8217;s take on multitasking applications. We can now &#8220;freeze&#8221; or &#8220;background&#8221; our apps so that when the user quickly switches between apps, our&#8217;s will return in the same state we left it.</p>

<p>I had a little trouble getting this done, but in the end it&#8217;s REALLY easy.</p>

<p>4.0 introduces a new project property in the info.plist called UIApplicationExitsOnSuspend. The default value for this boolean property is false. All you may need to do is recompile your application and check it out on an iOS 4 device.</p>

<p><img src="http://www.davidortinau.com/images/uploads/plist.png" style="border: 0;" alt="image" width="376" height="309" /></p>

<p>If you find it&#8217;s not working, confirm the SDK settings both at the project level and at the target level. Your base SDK should be 4.0, and your target SDK should be whatever your lowest target device is. Of course, lower versions of the OS that don&#8217;t support multitasking will simply ignore this setting. </p>

<p>Also make sure your SDK settings are consistent between the project and the target settings.</p>

<p><img src="http://www.davidortinau.com/images/uploads/base_sdk.png" style="border: 0;" alt="image" width="358" height="226" /></p>

<p><img src="http://www.davidortinau.com/images/uploads/deploy_target.png" style="border: 0;" alt="image" width="337" height="195" /></p>

<p>To take multitasking even further, there are additional methods available where we should put any code we want to execute when the app goes into the background or returns to an active state, such as:</p>

<p>- store/restore state <br />
- start/stop background processes</p>

<p>Check out:</p>

<p><a href="https://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html" onclick="window.open(this.href); return false;" >https://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html</a></p>

<p>application:didFinishLaunchingWithOptions<br />
applicationDidBecomeActive<br />
applicationWillResignActive<br />
applicationDidEnterBackground<br />
applicationWillEnterForeground<br />
applicationWillTerminate</p> 
      ]]></content>
    </entry>

    <entry>
      <title>360|Flex San Jose 2010 Recap Notes</title>
      <link rel="alternate" type="text/html" href="http://www.davidortinau.com/site/360flex_san_jose_2010_recap_notes/" />
      <id>tag:davidortinau.com,2010:blog/index/1.61</id>
      <published>2010-04-02T14:52:22Z</published>
      <updated>2010-07-20T00:19:23Z</updated>
      <author>
            <name>David Ortinau</name>
            <email>dave@davidortinau.com</email>
                  </author>

      <category term="Flash"
        scheme="http://www.davidortinau.com/site/category/flash/"
        label="Flash" />
      <category term="General"
        scheme="http://www.davidortinau.com/site/category/general/"
        label="General" />
      <content type="html"><![CDATA[
        <p>Notes and Links from my quick presentation last night at the <a href="http://groups.adobe.com/groups/41bb2309f5/summary" title="St. Louis Flex and Fuse the Arch ">St. Louis Flex and Fuse the Arch</a> User Group meeting.</p>

<div style="width:425px" id="__ss_3621251"><object width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=360flexwrapup-100402110221-phpapp01&amp;stripped_title=360flex-recap-san-jose-2010" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=360flexwrapup-100402110221-phpapp01&amp;stripped_title=360flex-recap-san-jose-2010" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></div>

<p>
</p><h2>STUFF YOU CAN USE TODAY</h2>

<h4>RobotLegs Framework</h4>
<ul>
<li>Joel Hooks, <a href="http://twitter.com/jhooks" title="@jhooks">@jhooks</a></li>
<li>Automated Dependency Injection is the new &#8220;thing&#8221; in Actionscript development</li>
<li>AS3 and Flex. Emphasis on MVCS with Mediator and Command Patterns.</li>
<li><a href="http://www.robotlegs.org" title="http://www.robotlegs.org">http://www.robotlegs.org</a></li>
<li>RobotLegs &amp; Gaia preso a week later at the Vegas FUG <a href=" http://experts.na3.acrobat.com/p16739385/" title=" http://experts.na3.acrobat.com/p16739385/"> http://experts.na3.acrobat.com/p16739385/</a></li>
<li><b>In The Wild</b>
<ul>
<li><a href="http://www.dogooderchallenge.com/HandbagDesignContest/BagBuilder/" title="http://www.dogooderchallenge.com/HandbagDesignContest/BagBuilder/">http://www.dogooderchallenge.com/HandbagDesignContest/BagBuilder/</a></li>
<li><a href="http://www.clubtreasureworld.com/" title="http://www.clubtreasureworld.com/">http://www.clubtreasureworld.com/</a> </li>
<li><a href="http://hbopunchzone.com/" title="http://hbopunchzone.com/">http://hbopunchzone.com/</a> </li>
<li><a href="http://www.robotlegs.org/community/" title="http://www.robotlegs.org/community/">http://www.robotlegs.org/community/</a></li>
</ul></li>
</ul>

<p>
</p><h4>PushButton Engine</h4>
<ul>
<li>Nate Beck, <a href="http://twitter.com/jnbeck" title="@jnbeck">@jnbeck</a></li>
<li>AS3 Game Engine created by Game Veterans</li>
<li>Adobe Support </li>
<li>Open Source</li>
<li>Active Community (1018 registered)</li>
<li><a href="http://pushbuttonengine.com/" title="http://pushbuttonengine.com/">http://pushbuttonengine.com/</a></li>
</ul>

<p>
</p><h4>OSMF</h4>
<ul>
<li>David Hassoun</li>
<li>OSMF (Open Source Media Framework)</li>
<li><a href="http://opensource.adobe.com/wiki/display/osmf/Open+Source+Media+Framework" title="http://opensource.adobe.com/wiki/display/osmf/Open+Source+Media+Framework">http://opensource.adobe.com/wiki/display/osmf/Open+Source+Media+Framework</a></li>
<li><a href="http://david.realeyes.com/?p=137" title="http://david.realeyes.com/?p=137">http://david.realeyes.com/?p=137</a></li>
</ul>

<p>
</p><h4>Flex Typography</h4>
<ul>
<li>Matt Guest, <a href="http://twitter.com/mguest" title="@mguest">@mguest</a> </li>
<li>Flash Text Engine and the Text Layout Framework</li>
<li>Vastly improved OpenType</li>
<li>Real Kerning</li>
<li>Improved anti-aliasing and pixel snapping</li>
<li>Baseline snapping</li>
<li>Digit case and width</li>
<li>Ligatures</li>
</ul>

<p>
</p><h4>Greenthreading</h4>
<ul>
<li>Huyen Tue Dao, <a href="http://twitter.com/queencodemonkey" title="@queencodemonkey">@queencodemonkey</a></li>
<li>While you cannot access other threads in FP, you can emulate threads in code.</li>
<li><a href="http://queencodemonkey.com/2010/03/08/360flex-presentation-slides-and-code/" title="http://queencodemonkey.com/2010/03/08/360flex-presentation-slides-and-code/">http://queencodemonkey.com/2010/03/08/360flex-presentation-slides-and-code/</a></li>
<li><a href="http://code.google.com/p/greenthreads/" title="http://code.google.com/p/greenthreads/">http://code.google.com/p/greenthreads/</a></li>
</ul>

<p>
</p><h4>TDD with FlexUnit 4</h4>
<ul>
<li>Elad Elrom, <a href="http://twitter.com/eladelrom" title="@eladelrom">@eladelrom</a></li>
<li><a href="http://elromdesign.com/blog/2010/03/10/test-driven-development-tdd-with-flexunit-4-complete-tutorial/" title="http://elromdesign.com/blog/2010/03/10/test-driven-development-tdd-with-flexunit-4-complete-tutorial/">http://elromdesign.com/blog/2010/03/10/test-driven-development-tdd-with-flexunit-4-complete-tutorial/</a></li>
</ul>

<p>
</p><h4>UX PRINCIPLES</h4>
<ul>
<li>Andrew Powell, <a href="http://twitter.com/umandy" title="@umandy">@umandy</a></li>
<li><a href="http://www.slideshare.net/ivanhoe/andrew-powell-how-i-learned-to-stop-worrying-and-love-ux" title="http://www.slideshare.net/ivanhoe/andrew-powell-how-i-learned-to-stop-worrying-and-love-ux">http://www.slideshare.net/ivanhoe/andrew-powell-how-i-learned-to-stop-worrying-and-love-ux</a></li>
<li>Features are dead. Focus on solutions and features will follow.</li>
</ul>

<p>
</p><h2>STUFF YOU COULD USE TODAY, BUT WILL BE BETTER TOMORROW.</h2>

<p>
</p><h4>REFLEX</h4>
<ul>
<li>An AS3 component framework relying more on composition than inheritance</li>
<li>Jacob (<a href="http://twitter.com/jac_" title="@jac_">@jac_</a>) and Tyler Wright (<a href="http://twitter.com/xtyler" title="@xtyler">@xtyler</a>) and Ben Stucki (<a href="http://twitter.com/benstucki" title="@benstucki">@benstucki</a>)</li>
<li><a href="http://jacwright.com" title="http://jacwright.com">http://jacwright.com</a></li>
<li><a href="http://www.xtyler.com/" title="http://www.xtyler.com/">http://www.xtyler.com/</a></li>
<li><a href="http://github.com/reflex/" title="http://github.com/reflex/">http://github.com/reflex/</a></li>
<li><a href="http://groups.google.com/group/reflex-platform" title="http://groups.google.com/group/reflex-platform">http://groups.google.com/group/reflex-platform</a></li>
<li>Demo: <a href="http://www.xtyler.com/code/310#more-310" onclick="window.open(this.href); return false;" >http://www.xtyler.com/code/310#more-310</a></li>
<li>Demos and Slides: <a href="http://jacwright.com/blog/394/reflex-demos/" onclick="window.open(this.href); return false;" >http://jacwright.com/blog/394/reflex-demos/</a></li>
</ul>

<p>
</p><h4>iPhone and Mobile Dev </h4><p>
Paul Robertson&#8217;s (<a href="http://twitter.com/probertson" title="@probertson">@probertson</a>) Session: <a href="http://probertson.com/articles/2010/03/16/slides-and-examples-developing-iphone-apps-flash-platform/" onclick="window.open(this.href); return false;" >http://probertson.com/articles/2010/03/16/slides-and-examples-developing-iphone-apps-flash-platform/</a></p>

<p>Renaun Erickson&#8217;s (<a href="http://twitter.com/renaun" title="@renaun">@renaun</a>) Session on optimization for mobile: <a href="http://renaun.com/blog/2010/03/10/304/" onclick="window.open(this.href); return false;" >http://renaun.com/blog/2010/03/10/304/</a>
</p> 
      ]]></content>
    </entry>

    <entry>
      <title>Determine When one DisplayObject Totally Overlaps Another</title>
      <link rel="alternate" type="text/html" href="http://www.davidortinau.com/site/determine_when_one_displayobject_totally_overlaps_another/" />
      <id>tag:davidortinau.com,2010:blog/index/1.60</id>
      <published>2010-03-19T03:36:06Z</published>
      <updated>2010-03-19T04:02:07Z</updated>
      <author>
            <name>David Ortinau</name>
            <email>dave@davidortinau.com</email>
                  </author>

      <category term="Flash"
        scheme="http://www.davidortinau.com/site/category/flash/"
        label="Flash" />
      <content type="html"><![CDATA[
        <p>I had a recent issue where I needed to know when one DisplayObject was totally over another, and more importantly prevent the object being transformed from uncovering the other DisplayObject. I like simple, so let&#8217;s get to the pictures. The box below is being transformed:</p>

<p><img src="http://www.davidortinau.com/images/uploads/first_overlap.jpg" style="border: 0;" alt="image" width="400" height="300" /></p>

<p>The problem is initially that the fixed DisplayObject not being moved is irregular in shape. This becomes apparent when trying to drag, scale, or rotate the square. If my drag restricts the drag area to the bounds of the fixed DisplayObject, this is great until I rotate the other DisplayObject which then invalidates the drag bounds and you can see below that a corner is uncovered.</p>

<p><img src="http://www.davidortinau.com/images/uploads/rotated.jpg" style="border: 0;" alt="image" width="400" height="300" /></p>

<p>What I need to do is detect if the transform move would result in uncovering the fixed DisplayObject and thus not allow it. If both items where rectangles and not being rotated we could use something like the following to detect the total overlap:</p>

<p><pre class="actionscript"><ol><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">boxA.<span style="color: #006600;">transform</span>.<span style="color: #006600;">pixelBounds</span>.<span style="color: #006600;">containsRect</span><span style="color: #66cc66;">&#40;</span>boxB.<span style="color: #006600;">transform</span>.<span style="color: #006600;">pixelBounds</span><span style="color: #66cc66;">&#41;</span>;</div></li></ol></pre></p>

<p>This provides a very nice boolean result, and in my test kinda worked. It just wasn&#8217;t 100%.</p>

<p>However, between considering that solution and considering hitTest, and then being reminded of Grant Skinner&#8217;s AS2 pixel perfect collision detection, I realized how I could do this.</p>

<p>The collision detection code, upgraded and improved by Troy Gilbert (<a href="http://troygilbert.com/2009/08/pixel-perfect-collision-detection-revisited/" title="code and article here">code and article here</a>) to AS3 provided the key. First, it provides great detection. Then I realized that the method returns a rectangle that represents the overlap of my two DisplayObjects. </p>

<p>If I compare the overlap rectangle to the fixed position DisplayObject rectangle, and make sure it&#8217;s not smaller, then I know the object being transformed is fully covering it. Rotate, scale, drag, scale some more, drag, rotate a little, drag, and it locks in step never uncovering the fixed position DisplayObject (which btw is a mask).</p>

<p>Once I get a little breathing room I&#8217;ll put up a Flash demo and my code for how I&#8217;m using it. Hopefully my hurried explanation here makes some sense. I&#8217;m just jazzed I got it working, and all the help I received via Twitter contributed to the final solution.
</p> 
      ]]></content>
    </entry>

    <entry>
      <title>Catch MouseOver Event When Dragging Another Object</title>
      <link rel="alternate" type="text/html" href="http://www.davidortinau.com/site/catch_mouseover_event_when_dragging_another_object/" />
      <id>tag:davidortinau.com,2010:blog/index/1.59</id>
      <published>2010-03-17T00:38:25Z</published>
      <updated>2010-03-19T04:02:26Z</updated>
      <author>
            <name>David Ortinau</name>
            <email>dave@davidortinau.com</email>
                  </author>

      <category term="Flash"
        scheme="http://www.davidortinau.com/site/category/flash/"
        label="Flash" />
      <category term="General"
        scheme="http://www.davidortinau.com/site/category/general/"
        label="General" />
      <content type="html"><![CDATA[
        <p>This is not a difficult thing, but it caused some consternation in a recent project because we were trying to perform this simple task in the depths of what was a more complex piece of code.</p>

<p>So, what we needed to do what catch the <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/events/MouseEvent.html#MOUSE_OVER" title="MouseOver">MouseOver</a> on DisplayObjects while dragging another DisplayObject. Naturally since the object being dragged under the mouse has the focus, nothing below that DisplayObject is receiving those mouse events. And in pure AS3 there is no <a href="http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/events/DragEvent.html#DRAG_OVER" title="DragEvent.DRAG_OVER">DragEvent.DRAG_OVER</a> as you would have available in Flex.</p>

<p>[<b>Note to Self:</b> you tried this solution initially, remember? And you dropped it because of a complication with targeting when the item was dropped over multiple target objects. Just because something doesn&#8217;t work initially, take a breath and remind yourself it shouldn&#8217;t and probably isn&#8217;t as hard as your supercharged, hyper-caffeinated brain is making it out to be. Keep it simple and you may already have the right solution. Dude.]</p>

<p>To get the mouse events to lower elements we need to enable mouseChildren. This is great, but dropping the object becomes problematic at times. The trick that we all had to learn when jumping from AS2 to AS3 is to not only catch the MouseEvent.Mouse_UP from the object but ALSO from the stage. This ensures we always know when the user releases their mouse, even if they are outside the Flash area when that occurs.</p>

<p>After trying some crazy <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObjectContainer.html#getObjectsUnderPoint()" title="getObjectsUnderPoint()">getObjectsUnderPoint()</a> options, we came back to the original solution with fresh eyes and it turns out that we had the answer all along.</p>

<p>If you aren&#8217;t already doing this, I recommend creating a small project and testing out a solution apart from the existing codebase. It could be that the architecture and complexity of the project is clouding your vision from seeing the obvious answer and giving you the confidence to forge ahead.</p>

<p>Project code: <a href="http://davidortinau.com/exhibits/dragover/DragOver.zip" title="Download Here">DragOver.zip</a></p>

<p>My simple test for your viewing pleasure:</p>

<embed width="400" height="300" pluginspage="http://www.adobe.com/go/getflashplayer" type="application/x-shockwave-flash" allowscriptaccess="always" quality="high" loop="false" play="true" name="DragOver" bgcolor="#333333" src="/exhibits/dragover/DragOver.swf"/>

<p><pre class="actionscript"><ol><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">package <span style="color: #66cc66;">&#123;</span></div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">filters</span>.<span style="color: #006600;">GlowFilter</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #0066CC;">import</span> flash.<span style="color: #0066CC;">text</span>.<span style="color: #0066CC;">TextFormat</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #0066CC;">import</span> flash.<span style="color: #0066CC;">text</span>.<span style="color: #0066CC;">TextField</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">MouseEvent</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">Event</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #808080; font-style: italic;">/**</span></div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">	 * @author David Ortinau</span></div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">	 */</span></div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #66cc66;">&#91;</span>SWF<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">'400'</span>, <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">'300'</span>, <span style="color: #0066CC;">backgroundColor</span>=<span style="color: #ff0000;">'0x333333'</span>, frameRate=<span style="color: #ff0000;">'30'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span></div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> DragOver <span style="color: #0066CC;">extends</span> Sprite <span style="color: #66cc66;">&#123;</span></div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> draggable:Sprite;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> shapeHolder:Sprite;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> shape1:Sprite;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> shape2:Sprite;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> shape3:Sprite;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> shape4:Sprite;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> txtDisplay:<span style="color: #0066CC;">TextField</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> DragOver<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			<span style="color: #0066CC;">this</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ADDED_TO_STAGE</span>, onAddedToStage<span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #66cc66;">&#125;</span></div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onAddedToStage<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span></div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			draw<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			addListeners<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;			</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #66cc66;">&#125;</span></div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> draw<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span></div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			<span style="color: #808080; font-style: italic;">// setup display feedback window</span></div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			<span style="color: #000000; font-weight: bold;">var</span> textBackground:Sprite = Sprite<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Sprite<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			textBackground.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0x111111<span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			textBackground.<span style="color: #006600;">graphics</span>.<span style="color: #006600;">drawRect</span><span style="color: #66cc66;">&#40;</span> <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">270</span>, <span style="color: #cc66cc;">400</span>, <span style="color: #cc66cc;">30</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			textBackground.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			<span style="color: #000000; font-weight: bold;">var</span> tf:<span style="color: #0066CC;">TextFormat</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">TextFormat</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			tf.<span style="color: #0066CC;">font</span> = <span style="color: #ff0000;">&quot;Arial&quot;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			tf.<span style="color: #0066CC;">size</span> = <span style="color: #cc66cc;">12</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			tf.<span style="color: #0066CC;">color</span> = 0xFFFFFF;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">						</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			txtDisplay = <span style="color: #0066CC;">TextField</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">TextField</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			txtDisplay.<span style="color: #006600;">defaultTextFormat</span> = tf;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			txtDisplay.<span style="color: #006600;">x</span> = <span style="color: #cc66cc;">10</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			txtDisplay.<span style="color: #006600;">y</span> = <span style="color: #cc66cc;">274</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			txtDisplay.<span style="color: #0066CC;">width</span> = <span style="color: #cc66cc;">380</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			txtDisplay.<span style="color: #0066CC;">selectable</span> = <span style="color: #000000; font-weight: bold;">false</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			txtDisplay.<span style="color: #0066CC;">text</span> = <span style="color: #ff0000;">&quot;You are over: &quot;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			<span style="color: #808080; font-style: italic;">// place shapes</span></div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shapeHolder = Sprite<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Sprite<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape1 = Sprite<span style="color: #66cc66;">&#40;</span>shapeHolder.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Sprite<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape1.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0xCC0000<span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape1.<span style="color: #006600;">graphics</span>.<span style="color: #006600;">drawRect</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">140</span>, <span style="color: #cc66cc;">60</span>, <span style="color: #cc66cc;">100</span>, <span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape1.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape1.<span style="color: #0066CC;">name</span> = <span style="color: #ff0000;">&quot;shape1&quot;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape2 = Sprite<span style="color: #66cc66;">&#40;</span>shapeHolder.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Sprite<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape2.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0xFF3300<span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape2.<span style="color: #006600;">graphics</span>.<span style="color: #006600;">drawRect</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">160</span>, <span style="color: #cc66cc;">80</span>, <span style="color: #cc66cc;">100</span>, <span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape2.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape2.<span style="color: #0066CC;">name</span> = <span style="color: #ff0000;">&quot;shape2&quot;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape3 = Sprite<span style="color: #66cc66;">&#40;</span>shapeHolder.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Sprite<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape3.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0xFF6600<span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape3.<span style="color: #006600;">graphics</span>.<span style="color: #006600;">drawRect</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">180</span>, <span style="color: #cc66cc;">100</span>, <span style="color: #cc66cc;">100</span>, <span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape3.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape3.<span style="color: #0066CC;">name</span> = <span style="color: #ff0000;">&quot;shape3&quot;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape4 = Sprite<span style="color: #66cc66;">&#40;</span>shapeHolder.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Sprite<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape4.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0xFF9900<span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape4.<span style="color: #006600;">graphics</span>.<span style="color: #006600;">drawRect</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">200</span>, <span style="color: #cc66cc;">120</span>, <span style="color: #cc66cc;">100</span>, <span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape4.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape4.<span style="color: #0066CC;">name</span> = <span style="color: #ff0000;">&quot;shape4&quot;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			draggable = Sprite<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Sprite<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			draggable.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0xFFFFFF<span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			draggable.<span style="color: #006600;">graphics</span>.<span style="color: #006600;">drawCircle</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span>, <span style="color: #cc66cc;">60</span>, <span style="color: #cc66cc;">30</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			draggable.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			draggable.<span style="color: #0066CC;">useHandCursor</span> = draggable.<span style="color: #006600;">buttonMode</span> = <span style="color: #000000; font-weight: bold;">true</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #66cc66;">&#125;</span></div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> addListeners<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span></div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			draggable.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_DOWN</span>, <span style="color: #0066CC;">onMouseDown</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			draggable.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_UP</span>, <span style="color: #0066CC;">onMouseUp</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_UP</span>, <span style="color: #0066CC;">onMouseUp</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape1.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_OVER</span>, onMouseOver<span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape2.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_OVER</span>, onMouseOver<span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape3.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_OVER</span>, onMouseOver<span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape4.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_OVER</span>, onMouseOver<span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape1.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_OUT</span>, onMouseOut<span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape2.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_OUT</span>, onMouseOut<span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape3.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_OUT</span>, onMouseOut<span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			shape4.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_OUT</span>, onMouseOut<span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #66cc66;">&#125;</span>	</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">onMouseDown</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:MouseEvent<span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span></div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			draggable.<span style="color: #0066CC;">startDrag</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			draggable.<span style="color: #006600;">mouseEnabled</span> = <span style="color: #000000; font-weight: bold;">false</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #66cc66;">&#125;</span></div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">onMouseUp</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:MouseEvent<span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span></div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			draggable.<span style="color: #0066CC;">stopDrag</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			draggable.<span style="color: #006600;">mouseEnabled</span> = <span style="color: #000000; font-weight: bold;">true</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #66cc66;">&#125;</span></div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onMouseOver<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:MouseEvent<span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span></div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			txtDisplay.<span style="color: #0066CC;">text</span> = <span style="color: #ff0000;">&quot;You are over: &quot;</span> + <span style="color: #0066CC;">e</span>.<span style="color: #006600;">currentTarget</span>.<span style="color: #0066CC;">name</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			<span style="color: #808080; font-style: italic;">// add a glow filter so we know which elements is triggering this</span></div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			<span style="color: #000000; font-weight: bold;">var</span> s:Sprite = Sprite<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>.<span style="color: #006600;">currentTarget</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			<span style="color: #000000; font-weight: bold;">var</span> f:GlowFilter = <span style="color: #000000; font-weight: bold;">new</span> GlowFilter<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			f.<span style="color: #0066CC;">color</span> = 0xFFFFFF;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			f.<span style="color: #006600;">blurX</span> = f.<span style="color: #006600;">blurY</span> = <span style="color: #cc66cc;">18</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			s.<span style="color: #006600;">filters</span> = <span style="color: #66cc66;">&#91;</span>f<span style="color: #66cc66;">&#93;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #66cc66;">&#125;</span></div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onMouseOut<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:MouseEvent<span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span></div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			txtDisplay.<span style="color: #0066CC;">text</span> = <span style="color: #ff0000;">&quot;You are over: &quot;</span>;	</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			<span style="color: #000000; font-weight: bold;">var</span> s:Sprite = Sprite<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>.<span style="color: #006600;">currentTarget</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">			s.<span style="color: #006600;">filters</span> = <span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span>;</div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #66cc66;">&#125;</span></div></li><li style="background: #fcfcfc;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #66cc66;">&#125;</span></div></li><li style="background: #f0f0f0;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div></li></ol></pre></p>

<p>&nbsp;</p> 
      ]]></content>
    </entry>

    <entry>
      <title>Moving Comments to Disqus</title>
      <link rel="alternate" type="text/html" href="http://www.davidortinau.com/site/moving_comments_to_disqus/" />
      <id>tag:davidortinau.com,2010:blog/index/1.58</id>
      <published>2010-03-13T16:38:30Z</published>
      <updated>2010-03-13T16:43:31Z</updated>
      <author>
            <name>David Ortinau</name>
            <email>dave@davidortinau.com</email>
                  </author>

      <category term="General"
        scheme="http://www.davidortinau.com/site/category/general/"
        label="General" />
      <content type="html"><![CDATA[
        <p>I&#8217;ve swapped out the Expression Engine commenting system with <a href="http://disqus.com" onclick="window.open(this.href); return false;" >http://disqus.com</a>. I like how it integrates with other social channels and brings conversations together. And hopefully it&#8217;ll help cut down on the enormous amount of spam comments that get trapped and end up hiding legitimate comments that you may submit.</p>

<p>If I can get the comments from EE easily ported to Disqus I&#8217;ll do so. There&#8217;s a Ruby script (<a href="http://gist.github.com/202802" onclick="window.open(this.href); return false;" >http://gist.github.com/202802</a>) that may handle this conversion. </p>

<p>However, if it&#8217;s a hassle to bring those comments over, I&#8217;m just going to bail on it. </p>

<p>Please don&#8217;t take this personally if you have commented on previous posts. It&#8217;s not you, it&#8217;s me. <img src="http://www.davidortinau.com/images/smileys/wink.gif" width="19" height="19" alt="wink" style="border:0;" /></p> 
      ]]></content>
    </entry>

    <entry>
      <title>White Paper Bible iPhone App NOW AVAILABLE</title>
      <link rel="alternate" type="text/html" href="http://www.davidortinau.com/site/white_paper_bible_iphone_app_now_available/" />
      <id>tag:davidortinau.com,2009:blog/index/1.57</id>
      <published>2009-12-10T05:20:49Z</published>
      <updated>2009-12-10T05:33:50Z</updated>
      <author>
            <name>David Ortinau</name>
            <email>dave@davidortinau.com</email>
                  </author>

      <category term="iPhone"
        scheme="http://www.davidortinau.com/site/category/iphone/"
        label="iPhone" />
      <content type="html"><![CDATA[
        <p>I&#8217;m thrilled to announce<a href="http://itunes.apple.com/us/app/white-paper-bible/id339473540?mt=8"><img src="http://www.whitepaperbible.org/images/iPhoneAppStoreBanner.png" style="float:left;margin-right:8px;" /></a> my iPhone app is now available on the App Store. This personal project has been a huge learning experience full of ups and downs, but mostly of flat, long, patient waiting. </p>

<p>There are a great many fantastic Bible applications in the App Store today. What makes WPB unique is the manner in which it allows you to distill and consume your A-List scriptures that are powerful for the exact moment you are in, not matter where you are. It is at once your Topical Bible and God&#8217;s Promises scriptures on the go.</p>

<p>With WPB you choose from an ever growing collection of topical scripture lists, or you make your own. As you discover new verses that speak directly to you, then add them to your paper no matter wherever you are.</p>

<p>If this sounds like something you&#8217;re interested in, or if you just want to do me a solid and spread the word, please check it out. I&#8217;m very satisfied to have come this far, and look forward to many future releases of this product.</p>

<h2>White Paper Bible</h2><p>
<a href="http://www.whitepaperbible.org" onclick="window.open(this.href); return false;" >http://www.whitepaperbible.org</a></p>

<h2>White Paper Bible iPhone App</h2><p>
<a href="http://app.whitepaperbible.org" title="White Paper Bible iPhone App">app.whitepaperbible.org</a></p>

<h2>White Paper Bible on Twitter</h2><p>
<a href="http://twitter.com/whitepaperbible" title="twitter.com/whitepaperbible">twitter.com/whitepaperbible</a></p>

<h2>White Paper Bible on Facebook</h2><p>
<a href="http://www.facebook.com/pages/White-Paper-Bible/128636440822" onclick="window.open(this.href); return false;" >http://www.facebook.com/pages/White-Paper-Bible/128636440822</a></p>

<p>
</p> 
      ]]></content>
    </entry>

    <entry>
      <title>2009 Advent Calendar for White Paper Bible</title>
      <link rel="alternate" type="text/html" href="http://www.davidortinau.com/site/2009_advent_calendar_for_white_paper_bible/" />
      <id>tag:davidortinau.com,2009:blog/index/1.56</id>
      <published>2009-11-30T16:29:19Z</published>
      <updated>2009-11-30T17:10:20Z</updated>
      <author>
            <name>David Ortinau</name>
            <email>dave@davidortinau.com</email>
                  </author>

      <category term="General"
        scheme="http://www.davidortinau.com/site/category/general/"
        label="General" />
      <category term="jQuery"
        scheme="http://www.davidortinau.com/site/category/jquery/"
        label="jQuery" />
      <category term="Ruby on Rails"
        scheme="http://www.davidortinau.com/site/category/ruby_on_rails/"
        label="Ruby on Rails" />
      <content type="html"><![CDATA[
        <p>To extend the White Paper Bible site, I asked Kerry Layton to design a calendar for the Advent season. You can view it here: <a href="http://www.whitepaperbible.org/advent" onclick="window.open(this.href); return false;" >http://www.whitepaperbible.org/advent</a>.</p>

<p>Initially I was thinking Advent Sausage (<a href="http://lovelypackage.com/konecke-advent-sausage/" onclick="window.open(this.href); return false;" >http://lovelypackage.com/konecke-advent-sausage/</a>), but I&#8217;m glad Kerry designed a beautiful, clean calendar. Kerry, btw, loves to design calendars and you can see some of his work over at Design Audit (<a href="http://www.designaudit.net" onclick="window.open(this.href); return false;" >http://www.designaudit.net</a>).</p>

<p>I only had a few days to pull it together. Like everything else, it was a last minute idea. I wanted simple, feature Bible passages relevant to Advent, and a cool reveal animation.</p>

<p>So, I went on the hunt. First up, what in the world is Advent and what does that have to do with an Advent Calendar?! I&#8217;m not overly religious in the liturgical sense, so Wikipedia to the rescue. </p>

<p>Advent: <a href="http://en.wikipedia.org/wiki/Advent" onclick="window.open(this.href); return false;" >http://en.wikipedia.org/wiki/Advent</a><br />
Advent Calendar: <a href="http://en.wikipedia.org/wiki/Advent_calendar" onclick="window.open(this.href); return false;" >http://en.wikipedia.org/wiki/Advent_calendar</a></p>

<p>To do the flip animation I new I wanted jQuery. I needed to both flip and resize the tile to display the passage. I found a bunch of stuff out there, but the one that really did the trick is the Flip! jQuery plugin found here: <a href="http://lab.smashup.it/flip/" onclick="window.open(this.href); return false;" >http://lab.smashup.it/flip/</a>.</p>

<p>The recipe for the flip plus the scale I found over on the Work [at] Play blog: <a href="http://think.workatplay.com/content/workatplaycom-how-it-was-made-flip-and-scale-effect" onclick="window.open(this.href); return false;" >http://think.workatplay.com/content/workatplaycom-how-it-was-made-flip-and-scale-effect</a>. Great stuff!</p>

<p>As I added the content, I either needed to add a scrollbar or let the content run. The scrollbar proved to be the best solution, so I went with my favorite, the jScrollPane plugin (<a href="http://www.kelvinluck.com/assets/jquery/jScrollPane/jScrollPane.html" onclick="window.open(this.href); return false;" >http://www.kelvinluck.com/assets/jquery/jScrollPane/jScrollPane.html</a>). Make sure to use the source on Google code (<a href="http://code.google.com/p/jscrollpane/" onclick="window.open(this.href); return false;" >http://code.google.com/p/jscrollpane/</a>) or the examples. The ZIP file is somewhat outdated. For adding mousescroll functionality, I use the same plugin posted with the jScrollPane examples, but the updated version at <a href="http://plugins.jquery.com/project/mousewheel" onclick="window.open(this.href); return false;" >http://plugins.jquery.com/project/mousewheel</a>. </p>

<p>I should also mention that this site is Ruby on Rails, and the advent calendar is really just a static html. The way I implemented this is using my Pages controller which serves up the less dynamic content on the site (like the About page). I added a route for /advent and then put all my advent specific assets (js, css, images) into public/advent to keep things a bit cleaner. I could probably keep the js all together with my core js files. Then in my view/advent.html I updated all the asset references to pull from the /advent sub dir. Merging static content into a Rails app isn&#8217;t really hard, it&#8217;s just that Rails developers like do know the right or approved way, and there doesn&#8217;t seem to be much consensus on that for static content. If you have a better way, let me know.</p>

<p>And that&#8217;s about it. Checkout the final result (well&#8230;final until I think of something to enhance it). <a href="http://www.whitepaperbible.org/advent" onclick="window.open(this.href); return false;" >http://www.whitepaperbible.org/advent</a>.</p>

<p>Enjoy.
</p> 
      ]]></content>
    </entry>


</feed>