<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3115219752310540574</id><updated>2012-02-16T04:04:51.088-05:00</updated><category term='xml'/><category term='podcast'/><category term='collada'/><category term='office humor'/><category term='funny'/><category term='samsung epix'/><category term='vacation'/><category term='apple'/><category term='web developers toolbar'/><category term='Papervision3D'/><category term='youtube'/><category term='Molehill'/><category term='ColladaMax'/><category term='sprite'/><category term='Google'/><category term='flex'/><category term='anaglyph'/><category term='3ds Max'/><category term='firefox'/><category term='Flash'/><category term='Text To Speech'/><category term='microsoft'/><category term='canvas'/><category term='fail'/><category term='actionscript'/><category term='photosynth'/><category term='arraycollection'/><category term='itunes'/><category term='Windows 7'/><title type='text'>CodeJockey's Corner</title><subtitle type='html'>Here you'll find a collection of solutions, tutorials, links, and amusements that I create and stumble upon through the course of my career as a Software Engineer.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>33</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-6528418349885843525</id><published>2012-01-18T01:48:00.002-05:00</published><updated>2012-01-18T01:48:23.290-05:00</updated><title type='text'>Its been over 12 days since my last confession...</title><content type='html'>As a good friend mentioned to me today, "That "blog everyday" idea was kind of short lived". So true! Life has been a little hectic since returning to work from some much needed vacation. I've been working on an Air based mobile app for the last month and getting that out the door has kept me pretty busy.&lt;br /&gt;&lt;br /&gt;We had a bit of a set-back submitting the iOS version to Apple this weekend. I had followed all of the steps precisely for creating certificates and provision profiles, but kept getting a "codesign verification failed" error when uploading the application. I had convinced myself that the issue was on the Adobe tools side since that was the only non-Apple part of the equation (yep, I bought the market pitch too). So Monday morning I started working with Adobe support and confirmed that I had done everything correctly. However we decided to try and revoke all my certificates, regenerate them and package the app all over again. That's when we noticed that the Apple developer site was suddenly down for&amp;nbsp;maintenance&amp;nbsp;and would remain that way until late in the evening. At one point I was able to login just long enough to see a red message box on the page that said their certificate servers and developer portal were undergoing maintenance and would be up "soon". The Adobe Support rep and I decided that we would need to wait for Apple to get their act together and try again the following morning. Later that evening, I decided to check Apple's site and it appeared to be up and running again. So, I went through and deleted all my previously created certificates, revoked them, rebooted, installed the AWWDRCA certificate (&lt;a href="http://answers.oreilly.com/topic/705-how-to-generate-and-install-iphone-developer-certificates-and-profiles/"&gt;more info here&lt;/a&gt;), regenerated certs and provision profiles, and repackaged the app using the new certs. This time the upload completed successfully! So it turns out that Apple had been working on releasing the new 5.1 sdk and in the process screwed up something with the certificate generator. Nice of them to notify their developer community! That piece of information would have save me a boatload of hours over the weekend trying to get this thing submitted. Today I received an email from Apple apologizing for the downtime and that any certificates generated in the previous 4 days would need to be revoked and recreated. Apple, you make a lot of great products and hopefully you aren't adopting Facebooks release methodology:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://bostinno.com/wp-content/uploads/2011/08/I-dont-always-test-my-code-but-when-I-do-I-do-it-in-production.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://bostinno.com/wp-content/uploads/2011/08/I-dont-always-test-my-code-but-when-I-do-I-do-it-in-production.jpg" style="cursor: move;" width="253" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-6528418349885843525?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/6528418349885843525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=6528418349885843525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/6528418349885843525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/6528418349885843525'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2012/01/its-been-over-12-days-since-my-last.html' title='Its been over 12 days since my last confession...'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-872216195691366588</id><published>2012-01-02T12:13:00.001-05:00</published><updated>2012-01-02T12:13:11.285-05:00</updated><title type='text'>Post A Day In 2012</title><content type='html'>I've already failed at one of my New Years resolutions... I wanted to start writing more and sharing my daily&amp;nbsp;learnings&amp;nbsp;(and thus forcing myself to learn more) in 2012. My plan was to write a blog post every day starting yesterday. However I ended up being so worn out from doing things around the house that I put it off for this morning.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, what did I learn on the first? Hmmm... lets see...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- &lt;a href="https://market.android.com/details?id=com.ui.LapseItPro&amp;amp;feature=search_result#?t=W251bGwsMSwyLDEsImNvbS51aS5MYXBzZUl0UHJvIl0."&gt;Lapse It&lt;/a&gt; for Android is a pretty fun piece of software despite being yet another idea that I was planning to develop and didn't make the time to do. My son received a "grow your own crystal christmas tree" kit and I thought that would make for a cool time lapse movie. So, I&amp;nbsp;propped&amp;nbsp;my Xoom tablet up and ran Lapse It for about 13 hours at one frame every five minutes. &lt;a href="http://youtu.be/a3Z-uEx3m7A"&gt;you can see the results here&lt;/a&gt;. I think it turned out pretty interesting.&lt;/div&gt;&lt;div&gt;- Reading about &lt;a href="http://code.google.com/p/objectify-appengine/"&gt;Objectify for Google App Engine&lt;/a&gt; persistence. I have a few Android app ideas and I have been wanting to try out using Google App Engine for a while. So, I've been pouring through Google's documentation and stumbled on a link to the Objectify framework that was built to&amp;nbsp;simplify&amp;nbsp;some of the Google/Java data persistence complexities. I'll be writing more about this as I start to get my head around it and work with it more.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-872216195691366588?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/872216195691366588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=872216195691366588' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/872216195691366588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/872216195691366588'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2012/01/post-day-in-2012.html' title='Post A Day In 2012'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-3671606555581585926</id><published>2011-05-19T23:37:00.002-04:00</published><updated>2011-05-19T23:37:49.278-04:00</updated><title type='text'>Warrior Dash 2011 Mt Morris, MI July 30th</title><content type='html'>&lt;!-- Start MMF Embed Tool --&gt;&lt;br /&gt;&lt;iframe id="mmf_blog_map" src="http://js.mapmyfitness.com/embed/blogview.html?r=396129910213140695&amp;u=e&amp;t=run" height="500px" width="400px" frameborder="0"&gt;&lt;br /&gt;&lt;a href="http://www.mapmyrun.com/routes/view/29025574"&gt;Warrior Dash 2011 Mt. Morris, MI&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;&lt;a href="http://www.mapmyrun.com/routes/?location=Mt Morris, MI"&gt;Find more Runs in Mt Morris, MI&lt;/a&gt;&lt;br /&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;!-- End MMF Embed Tool --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-3671606555581585926?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/3671606555581585926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=3671606555581585926' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/3671606555581585926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/3671606555581585926'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2011/05/warrior-dash-2011-mt-morris-mi-july.html' title='Warrior Dash 2011 Mt Morris, MI July 30th'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-2788709321559569858</id><published>2011-05-06T06:45:00.001-04:00</published><updated>2011-05-06T06:45:20.314-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><category scheme='http://www.blogger.com/atom/ns#' term='Molehill'/><title type='text'>Cool demo of Molehill on a mobile device</title><content type='html'>&lt;div&gt;&lt;p&gt;&lt;a href="http://www.bytearray.org/?p=3053"&gt;Molehill on mobile devices - ByteArray.org&lt;/a&gt;&lt;br&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-2788709321559569858?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/2788709321559569858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=2788709321559569858' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/2788709321559569858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/2788709321559569858'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2011/05/cool-demo-of-molehill-on-mobile-device.html' title='Cool demo of Molehill on a mobile device'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-7710520890417124161</id><published>2011-03-27T03:02:00.001-04:00</published><updated>2011-03-27T03:02:04.149-04:00</updated><title type='text'></title><content type='html'>&lt;div&gt;&lt;p&gt;&lt;a href="http://gskinner.com/blog/archives/2011/03/the-case-of-the-disappearing-number.html"&gt;The Case of the Disappearing Number&lt;/a&gt;&lt;br&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-7710520890417124161?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/7710520890417124161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=7710520890417124161' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/7710520890417124161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/7710520890417124161'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2011/03/case-of-disappearing-number.html' title=''/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-133742681310817594</id><published>2011-03-25T10:53:00.001-04:00</published><updated>2011-03-25T11:00:21.624-04:00</updated><title type='text'>Intro to Robotlegs Presentation</title><content type='html'>Last night I gave an introduction to Robotlegs presentation to the Detroit Area Adobe Users Group.  Overall I think it went well, but as usual the topic caused a number of glazed-over looks in the audience :)  Hopefully this presentation and source code is helpful to any of you starting out with the framework!&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;Source Code:&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;https://daaugsourcerepo.googlecode.com/svn/trunk/presentations/RobotlegsDemo&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Presentation:&lt;br /&gt;&lt;iframe src="http://app.sliderocket.com:80/app/fullplayer.aspx?id=5D6D12E3-D4AF-CCF6-8242-AC5E69640E20" width="500" height="401" scrolling=no frameBorder="0"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-133742681310817594?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/133742681310817594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=133742681310817594' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/133742681310817594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/133742681310817594'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2011/03/intro-to-robotlegs-presentation.html' title='Intro to Robotlegs Presentation'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-9118938167588206464</id><published>2011-03-10T08:43:00.000-05:00</published><updated>2011-03-10T08:43:28.041-05:00</updated><title type='text'>Single or Multiple ENTER_FRAME Performance Tip</title><content type='html'>There was a debate around the office yesterday regarding which is more efficient:  having an ENTER_FRAME listener on each moving object on the stage or having a single ENTER_FRAME listener that loops over each moving object.  Thanh Tran put together some very interesting tests in his blog below which support the single event listener model.&lt;br /&gt;&lt;br /&gt;http://int3ractive.blogspot.com/2010/07/myth-buster-enterframe-event.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-9118938167588206464?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/9118938167588206464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=9118938167588206464' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/9118938167588206464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/9118938167588206464'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2011/03/single-or-multiple-enterframe.html' title='Single or Multiple ENTER_FRAME Performance Tip'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-1842952537688860041</id><published>2011-01-25T15:07:00.000-05:00</published><updated>2011-01-25T15:07:23.843-05:00</updated><title type='text'>"The Way We Do It" G-Prize</title><content type='html'>&lt;iframe width="480" height="295" src="http://www.youtube.com/embed/BYnN8vUEQQw?fs=1" frameborder="0" allowFullScreen=""&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-1842952537688860041?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/1842952537688860041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=1842952537688860041' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/1842952537688860041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/1842952537688860041'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2011/01/way-we-do-it-g-prize.html' title='&quot;The Way We Do It&quot; G-Prize'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/BYnN8vUEQQw/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-2665238049395064315</id><published>2011-01-10T01:33:00.000-05:00</published><updated>2011-01-10T01:33:15.859-05:00</updated><title type='text'>The significance of the $ in jQuery - InsideRIA</title><content type='html'>&lt;a href="http://insideria.com/2011/01/the-significance-of-the-in-jqu.html?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+oreilly%2Finsideria+%28InsideRIA%29"&gt;The significance of the $ in jQuery - InsideRIA&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-2665238049395064315?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://insideria.com/2011/01/the-significance-of-the-in-jqu.html?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+oreilly%2Finsideria+%28InsideRIA%29' title='The significance of the $ in jQuery - InsideRIA'/><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/2665238049395064315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=2665238049395064315' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/2665238049395064315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/2665238049395064315'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2011/01/significance-of-in-jquery-insideria.html' title='The significance of the $ in jQuery - InsideRIA'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-7131432632275543597</id><published>2010-10-13T23:50:00.000-04:00</published><updated>2010-10-13T23:50:28.516-04:00</updated><title type='text'>Droid X Windows 7 64 Bit ADB Driver Problem Fix</title><content type='html'>I stumbled across a fix for the problem I was having with installing the ADB driver for my Droid X on Windows 7 64bit.  If you look at &lt;a href="http://blog.tojicode.com/2010/08/opengl-es-20-development-on-android.html"&gt;TojiCode's blogpost&lt;/a&gt;, and follow his instructions for modifiying the .inf file, you will be able to install the driver from the Android SDK.  I hope this helps somebody else having the same problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-7131432632275543597?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/7131432632275543597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=7131432632275543597' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/7131432632275543597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/7131432632275543597'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2010/10/droid-x-windows-7-64-bit-adb-driver.html' title='Droid X Windows 7 64 Bit ADB Driver Problem Fix'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-1429501419051105921</id><published>2010-01-23T23:30:00.000-05:00</published><updated>2010-01-23T23:30:24.098-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='actionscript'/><category scheme='http://www.blogger.com/atom/ns#' term='canvas'/><category scheme='http://www.blogger.com/atom/ns#' term='sprite'/><title type='text'>Adding Sprite (primitive) To a Canvas</title><content type='html'>To add a sprite (or any other primitive) to a Flex canvas you have to wrap it in a UIComponent.&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;mx:canvas id="myCanvas" x="312" y="0" width="640" height="480"&amp;gt;&lt;br /&gt;&amp;lt;mx:uicomponent id="spriteWrapper" initialize="spriteWrapper.addChild(myPrettySprite)"&amp;gt;&lt;br /&gt;&amp;lt;/mx:uicomponent&amp;gt;&lt;br /&gt;&amp;lt;/mx:canvas&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-1429501419051105921?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/1429501419051105921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=1429501419051105921' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/1429501419051105921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/1429501419051105921'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2008/04/adding-sprite-primative-to-canvas.html' title='Adding Sprite (primitive) To a Canvas'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-462030728263334211</id><published>2010-01-23T23:18:00.001-05:00</published><updated>2010-01-23T23:19:22.405-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='podcast'/><category scheme='http://www.blogger.com/atom/ns#' term='youtube'/><category scheme='http://www.blogger.com/atom/ns#' term='itunes'/><title type='text'>Make iTunes and Youtube Play Together</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_J4tXAJPRy8c/S1vFH9oNcDI/AAAAAAAAAK8/gcxFfDQ7pT0/s1600-h/bff.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="128" src="http://2.bp.blogspot.com/_J4tXAJPRy8c/S1vFH9oNcDI/AAAAAAAAAK8/gcxFfDQ7pT0/s200/bff.png" width="200" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;I've been following a few video series on Youtube and wanted to load a bunch of the videos onto my iPod touch.&amp;nbsp; However, iTunes doesn't support the Youtube RSS feed or the video format used (good old Apple compatibility).&amp;nbsp; A trip to the mighty Google revealed a great service at &lt;a href="http://ytpodcaster.com/"&gt;YTPodcaster.com&lt;/a&gt; that creates an iTunes compatible podcast from Youtube feeds, user's videos, favorites or playlists.&amp;nbsp; So far it's worked out pretty well for me but there were a couple playlist items that wouldn't download giving me an "authorization" error.&amp;nbsp; It is currently labeled as a beta, so a few glitches are to be expected I suppose.&amp;nbsp; If you try it out, let me know how it works out for you or if you know of a better solution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-462030728263334211?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/462030728263334211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=462030728263334211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/462030728263334211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/462030728263334211'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2010/01/make-itunes-and-youtube-play-together.html' title='Make iTunes and Youtube Play Together'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_J4tXAJPRy8c/S1vFH9oNcDI/AAAAAAAAAK8/gcxFfDQ7pT0/s72-c/bff.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-8503160985482027732</id><published>2010-01-21T22:57:00.002-05:00</published><updated>2010-01-23T23:20:46.318-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='samsung epix'/><title type='text'>FMT-SAMI900TRA Samsung Phone FM Transmitter</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_J4tXAJPRy8c/S1kefqP4LgI/AAAAAAAAAKc/2UdDRFWahnE/s1600-h/062.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/_J4tXAJPRy8c/S1kefqP4LgI/AAAAAAAAAKc/2UdDRFWahnE/s200/062.JPG" width="150" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;I have a 30 minute commute to and from work, and I like to use that time to listen to various podcasts or recorded TV show, etc.&amp;nbsp; I know what you're thinking, and no I don't stare at my phone while I'm driving down the freeway.&amp;nbsp; But I do listen, and I find that it makes the time go by faster.&lt;br /&gt;&lt;br /&gt;Until recently I've just been plugging in my headphones to listen because the speaker on my Samsung Epix just doesn't have enough power to play over the road noise.&amp;nbsp; But last week I found a better solution &lt;a href="http://www.cellphoneshop.net/i900fm.html"&gt;which can be found here&lt;/a&gt; for only $14.&amp;nbsp; This FMT-SAMI900TRA FM transmitter plugs into the power/headphone socket found on many Samsung phones (see compatibility list below).&amp;nbsp; It comes with a cigarette light plug which I thought would also charge the phone, but that doesn't seem to be the case.&amp;nbsp; The unit has a led screen that displays the current broadcast frequency and channel up/down buttons.&amp;nbsp; Also integrated is a microphone for making phone calls.&amp;nbsp; When a phone call comes in while your listen to music or something else, the music is automatically paused and you can listen to your call through your car speakers.&lt;br /&gt;&lt;br /&gt;Pros:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Better than average FM stereo sound quality.&amp;nbsp; It's not CD quality, but its better than mono bluetooth earpiece or the built in speaker.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Small and convenient.&lt;/li&gt;&lt;li&gt;More safe than wearing headphones in the car&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Speakerphone quality is pretty decent&lt;/li&gt;&lt;/ul&gt;Cons:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The lighter plug only powers the transmitter instead of also charging the phone.&amp;nbsp; Since it plugs into the phone's power socket you better have a good charge on your battery.&lt;/li&gt;&lt;li&gt;There seems to be a timeout period in which if there is silence for too long the transmitter goes into sleep mode.&amp;nbsp; Its good that it's smart enough to save power, but its annoying when all of a sudden your car stereo is blaring a half tuned or static station loudly.&lt;/li&gt;&lt;/ul&gt;Compatible with the following Samsung models :&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Omnia SGH-i900&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Epix SGH-i907&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Omnia SCH-i910&amp;nbsp; &lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_J4tXAJPRy8c/S1khmy7g8ZI/AAAAAAAAAKk/uyWNyimSwC0/s1600-h/063.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="150" src="http://3.bp.blogspot.com/_J4tXAJPRy8c/S1khmy7g8ZI/AAAAAAAAAKk/uyWNyimSwC0/s200/063.JPG" width="200" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/_J4tXAJPRy8c/S1khr4KuhxI/AAAAAAAAAKs/x2e2na-_uNU/s1600-h/064.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="150" src="http://1.bp.blogspot.com/_J4tXAJPRy8c/S1khr4KuhxI/AAAAAAAAAKs/x2e2na-_uNU/s200/064.JPG" width="200" /&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_J4tXAJPRy8c/S1khvMOOQ2I/AAAAAAAAAK0/Nyjn_BclcX0/s1600-h/067.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="150" src="http://2.bp.blogspot.com/_J4tXAJPRy8c/S1khvMOOQ2I/AAAAAAAAAK0/Nyjn_BclcX0/s200/067.JPG" width="200" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-8503160985482027732?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/8503160985482027732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=8503160985482027732' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/8503160985482027732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/8503160985482027732'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2010/01/fmt-sami900tra-samsung-phone-fm.html' title='FMT-SAMI900TRA Samsung Phone FM Transmitter'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_J4tXAJPRy8c/S1kefqP4LgI/AAAAAAAAAKc/2UdDRFWahnE/s72-c/062.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-8726073034775313537</id><published>2009-12-15T13:05:00.014-05:00</published><updated>2010-03-28T20:54:25.687-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Text To Speech'/><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Flash Text-To-Speech</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_J4tXAJPRy8c/SyfZn0boNDI/AAAAAAAAAKA/TDYdsEW19no/s1600-h/Picture-1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_J4tXAJPRy8c/SyfZn0boNDI/AAAAAAAAAKA/TDYdsEW19no/s200/Picture-1.png" /&gt;&lt;/a&gt;&lt;/div&gt;I stumbled across a &lt;a href="http://viralpatel.net/blogs/2009/12/the-unofficial-google-text-to-speech-api.html"&gt;post by Viral Patel&lt;/a&gt; where he demonstrates a hidden Google gem for converting text to speech.  For some reason, the 13 year old in me always gets a kick out this sort of thing.  I remember back in my Commodore 64 days, sitting in the basement with my brothers and using &lt;a href="http://en.wikipedia.org/wiki/Software_Automatic_Mouth"&gt;S.A.M.&lt;/a&gt; to say anything naughty that we could come up with and laughing till our sides hurt.  So I decided that I would put a Flex wrapper around the Google API and relive the glory days.  Check it out, have fun, and take a look at the code below.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;embed align="middle" allowscriptaccess="always" height="240" pluginspage="http://www.macromedia.com/go/getflashplayer" quality="high" src="http://sites.google.com/site/codejockey1/TextToSpeech.swf" type="application/x-shockwave-flash" width="320"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="320" height="240"&amp;gt;&lt;br /&gt;    &amp;lt;mx:Button x="93" y="174" label="Say It!" click="handlePlayClick()" width="134" height="50" fontSize="22"/&amp;gt;&lt;br /&gt;    &amp;lt;mx:TextArea x="10" y="10" width="300" height="134" maxChars="100" wordWrap="true" editable="true" enabled="true" change="resetPlayFlag()" id="message" text="Shall we play a game? "/&amp;gt;&lt;br /&gt;    &amp;lt;mx:Label x="102.5" y="148" text="100 characters max"/&amp;gt;&lt;br /&gt;    &lt;br /&gt;    &amp;lt;mx:Script&amp;gt;&lt;br /&gt;        &amp;lt;![CDATA[&lt;br /&gt;            import mx.controls.Alert;&lt;br /&gt;            private var newMessage:Boolean = true;&lt;br /&gt;            private var loader:URLLoader;&lt;br /&gt;            private var voiceMessage:Sound;&lt;br /&gt;            private var googleTTSURL:String = "http://translate.google.com/translate_tts";&lt;br /&gt;            &lt;br /&gt;            private function resetPlayFlag():void {&lt;br /&gt;                newMessage = true;&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;            private function handlePlayClick():void {&lt;br /&gt;                trace("play click");&lt;br /&gt;                if (newMessage) {&lt;br /&gt;                    var variables:URLVariables = new URLVariables();&lt;br /&gt;                    variables.q = message.text;&lt;br /&gt;                    &lt;br /&gt;                    var req:URLRequest = new URLRequest(googleTTSURL);&lt;br /&gt;                    req.method = URLRequestMethod.GET;&lt;br /&gt;                    req.data = variables;&lt;br /&gt;                    &lt;br /&gt;                    voiceMessage = new Sound();&lt;br /&gt;                    voiceMessage.addEventListener(Event.COMPLETE, handleServerResponse);&lt;br /&gt;                    voiceMessage.addEventListener(IOErrorEvent.IO_ERROR, handleServerError);&lt;br /&gt;                    voiceMessage.load(req);&lt;br /&gt;                } else {&lt;br /&gt;                    playMessage();&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;            private function handleServerResponse(event:Event):void {&lt;br /&gt;                trace("got it!);");&lt;br /&gt;                newMessage = false;&lt;br /&gt;                playMessage();&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;            private function playMessage():void {&lt;br /&gt;                trace("play message");&lt;br /&gt;                voiceMessage.play();&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;            private function handleServerError(event:IOErrorEvent):void {&lt;br /&gt;                trace("problem");&lt;br /&gt;                Alert.show("Server Connection Error: " + event.text);&lt;br /&gt;            }&lt;br /&gt;        ]]&amp;gt;&lt;br /&gt;    &amp;lt;/mx:Script&amp;gt;&lt;br /&gt;&amp;lt;/mx:Application&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-8726073034775313537?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/8726073034775313537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=8726073034775313537' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/8726073034775313537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/8726073034775313537'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2009/12/flash-text-to-speech.html' title='Flash Text-To-Speech'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_J4tXAJPRy8c/SyfZn0boNDI/AAAAAAAAAKA/TDYdsEW19no/s72-c/Picture-1.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-3483808987025147302</id><published>2009-10-07T07:35:00.003-04:00</published><updated>2010-01-23T23:20:16.468-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='samsung epix'/><title type='text'>Samsung Epix Windows 6.5 Upgrade Confirmed!</title><content type='html'>Even though there is no certain date yet, this is very good news.  I've been tempted to try the hacked prerelease version of it, but I'll probably wait for the Samsung/ATT release.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/windowsmobile/en-us/meet/wm65-upgrade.mspx#phoneList"&gt;http://www.microsoft.com/windowsmobile/en-us/meet/wm65-upgrade.mspx#phoneList&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-3483808987025147302?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/3483808987025147302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=3483808987025147302' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/3483808987025147302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/3483808987025147302'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2009/10/samsung-epix-windows-65-upgrade.html' title='Samsung Epix Windows 6.5 Upgrade Confirmed!'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-3558068611740148284</id><published>2009-05-02T18:18:00.003-04:00</published><updated>2009-05-02T18:32:11.360-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3ds Max'/><category scheme='http://www.blogger.com/atom/ns#' term='ColladaMax'/><category scheme='http://www.blogger.com/atom/ns#' term='Papervision3D'/><title type='text'>Collada Animation Using Papervision3D and 3ds Max 2009</title><content type='html'>I recently got my hands on a copy of 3ds Max 2009 and was trying to play around with some animation for use in Papervision3D.  I started out using the built in collada export tool, but the DAE parser in Papervision3D doesn't handle the nested &lt;animation&gt; tags produced by the tool.  (&lt;a href="http://www.nabble.com/3DSMax-2009-Collada-Animation-Problem-td23275148.html"&gt;see Tim Knip's explaination here&lt;/a&gt;)  I also tried the ColladaMax NextGen plugin (latest and greatest?) and that too produced animation tags that Papervision3D didn't like.&lt;br /&gt;&lt;br /&gt;The solution is to use the older version of ColladaMax (&lt;a href="https://collada.org/mediawiki/index.php/ColladaMax_OSS"&gt;get it here&lt;/a&gt;).  Make sure when you do your export that you select the correct .dae save type.  The screencap below shows the correct option.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_J4tXAJPRy8c/SfzIAkKPhkI/AAAAAAAAAIw/A97J9qlHjP0/s1600-h/collada-export.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 189px;" src="http://4.bp.blogspot.com/_J4tXAJPRy8c/SfzIAkKPhkI/AAAAAAAAAIw/A97J9qlHjP0/s320/collada-export.jpg" alt="" id="BLOGGER_PHOTO_ID_5331355970932016706" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-3558068611740148284?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/3558068611740148284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=3558068611740148284' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/3558068611740148284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/3558068611740148284'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2009/05/collada-animation-using-papervision3d.html' title='Collada Animation Using Papervision3D and 3ds Max 2009'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_J4tXAJPRy8c/SfzIAkKPhkI/AAAAAAAAAIw/A97J9qlHjP0/s72-c/collada-export.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-357934096845169529</id><published>2009-04-05T21:42:00.008-04:00</published><updated>2010-01-23T23:21:19.455-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='anaglyph'/><category scheme='http://www.blogger.com/atom/ns#' term='Papervision3D'/><title type='text'>Papervision3D Anaglyph Scene</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_J4tXAJPRy8c/SdlroUXt1_I/AAAAAAAAAIQ/7DRLx4fTgBo/s1600-h/anaglyph.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5321402775122073586" src="http://2.bp.blogspot.com/_J4tXAJPRy8c/SdlroUXt1_I/AAAAAAAAAIQ/7DRLx4fTgBo/s320/anaglyph.png" style="cursor: pointer; float: left; height: 168px; margin: 0pt 10px 10px 0pt; width: 242px;" /&gt;&lt;/a&gt;&lt;br /&gt;Ever since I was a kid I've loved blue-red 3D glasses and a while back I got my hands on a pair at the office.  Just this week I finally got around to making use of Papervision3D to create an interactive anaglyph animation.&lt;br /&gt;&lt;br /&gt;Here's how it works...&lt;br /&gt;&lt;br /&gt;Basically you need to create 2 viewports and 2 cameras, one for each color lens.  On the first viewport, set colorTransform =  ColorTransform(1, 1, 1, 1, 0x00, 0xFF, 0xFF) to appy a blue tint.  On the second viewport, set colorTransform = ColorTransform(1, 1, 1, 1, 0xFF, 0x00, 0x00) for a red tint and set the blendMode = BlendMode.MULTIPLY to mix the two viewport results together.  Move each camera equidistant from the center of the x axis to simulate the distance of the eyes.  Each time you render the scene, you need to render once for each lense.&lt;br /&gt;&lt;br /&gt;In the demo source code you will find two important classes, AnaglyphScene and AnaglyphCamera.  AnaglyphScene is akin to BasicView, and sets up the viewports, cameras, scene and renderers for you.  You simply add your scene objects and when you want to render call AnaglyphScene.render().  AnaglyphScene also makes public a object named "camera" which you can move using moveUp(), moveDown(), moveLeft(), and moveRight().&lt;br /&gt;&lt;br /&gt;If you do anything cool with this, or stuble on any cool use of anaglyph imaging please leave a url in the comments!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://codejockey1.googlepages.com/anaglyphdemo.html"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://codejockey1.googlepages.com/anaglyphdemosource.zip"&gt;Source&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-357934096845169529?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/357934096845169529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=357934096845169529' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/357934096845169529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/357934096845169529'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2009/04/papervision3d-anaglyph-scene.html' title='Papervision3D Anaglyph Scene'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_J4tXAJPRy8c/SdlroUXt1_I/AAAAAAAAAIQ/7DRLx4fTgBo/s72-c/anaglyph.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-9067259268033707612</id><published>2009-03-09T01:56:00.003-04:00</published><updated>2009-03-09T02:04:31.236-04:00</updated><title type='text'>Make Vista Speak!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_J4tXAJPRy8c/SbSwYs5BZEI/AAAAAAAAAII/uv8h45ZF0rs/s1600-h/speakandspell.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 274px;" src="http://2.bp.blogspot.com/_J4tXAJPRy8c/SbSwYs5BZEI/AAAAAAAAAII/uv8h45ZF0rs/s320/speakandspell.jpg" alt="" id="BLOGGER_PHOTO_ID_5311063798990332994" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I stumbled across an interesting post about a script that you can use to make Vista speak whatever text you tell it to.  I knew that voice synthesis has been built into Windows for a while but I never realized how easy it was to use through VB.  This reminds me of all the fun my brothers and I had with &lt;a href="http://en.wikipedia.org/wiki/Software_Automatic_Mouth"&gt;SAM &lt;/a&gt;(Software Automated Mouth) on my old Commodore 64 way back in the day.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://mintywhite.com/tech/vista/get-your-computer-to-say-what-you-type-howto/"&gt;Get Your Computer to Say What You Type [HowTo] Windows Vista Guides&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-9067259268033707612?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/9067259268033707612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=9067259268033707612' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/9067259268033707612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/9067259268033707612'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2009/03/make-vista-speak.html' title='Make Vista Speak!'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_J4tXAJPRy8c/SbSwYs5BZEI/AAAAAAAAAII/uv8h45ZF0rs/s72-c/speakandspell.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-7276689532885495904</id><published>2009-02-25T00:04:00.003-05:00</published><updated>2009-02-25T00:11:11.309-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='web developers toolbar'/><title type='text'>Firefox Web Developer Toolbar Disappeared!</title><content type='html'>I ran into a strange problem today where my Web Developer Toolbar in Firefox 3 suddenly disappeared.  The options were still available under Tools/Web Developer but the toolbar itself was blank.  Here is what I did to get it back:&lt;br /&gt;&lt;br /&gt;Make sure that you have the Web Toolbar enabled by right-clicking in any empty toolbar space and checking Web Developer Toolbar.  Next right click again in the same area and choose "Customize...".  In the pop-up window, click the "Restore Default Set" button and then "Done".  Your toolbar should now be visible.  In my case, only the icons were displayed until I went into the toolbar options and on the General tab choose "Display Toolbar With: Icons and Text"&lt;br /&gt;&lt;br /&gt;I hope this helps somebody else!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-7276689532885495904?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/7276689532885495904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=7276689532885495904' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/7276689532885495904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/7276689532885495904'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2009/02/firefox-web-developer-toolbar.html' title='Firefox Web Developer Toolbar Disappeared!'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-5054798862044990812</id><published>2009-02-15T01:29:00.005-05:00</published><updated>2009-02-15T02:34:47.469-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><title type='text'>K7N2GM2-ILSR Window 7 Compatibility</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_J4tXAJPRy8c/SZe_HRaiqZI/AAAAAAAAAIA/KxZiQnRGygE/s1600-h/mb-windows7-upg.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 148px;" src="http://1.bp.blogspot.com/_J4tXAJPRy8c/SZe_HRaiqZI/AAAAAAAAAIA/KxZiQnRGygE/s320/mb-windows7-upg.jpg" alt="" id="BLOGGER_PHOTO_ID_5302917217906764178" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;My attempt to install Windows 7 on my K7N2GM2-ILSR based media center was successful.  I did get hung up a little getting the nForce2 Network Adapter working but using the instructions below I was able to get all of the drivers working.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Follow the instructions here to obtain and install the Windows XP nforce drivers (this works for everything except the network adapter in my case.&lt;/li&gt;&lt;li&gt;Download "NF123LR1.0.zip" from http://nf2.stuff.googlepages.com/&lt;/li&gt;&lt;li&gt;Unzip&lt;/li&gt;&lt;li&gt;In Device Manager, right click the network adapter, choose "Update Driver Software...", click "Browse My Computer For Driver Software", "Let me pick form a list of device drivers...", "Have Disc", and then browse to "%Expanded_NF123LR1.0_Folder%\Ethernet\PreNRM\WinXP"&lt;/li&gt;&lt;li&gt;Finally, reboot and you should have a working network adapter!&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-5054798862044990812?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/5054798862044990812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=5054798862044990812' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/5054798862044990812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/5054798862044990812'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2009/02/k7n2gm2-ilsr-window-7-compatibility.html' title='K7N2GM2-ILSR Window 7 Compatibility'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_J4tXAJPRy8c/SZe_HRaiqZI/AAAAAAAAAIA/KxZiQnRGygE/s72-c/mb-windows7-upg.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-8093911930023749565</id><published>2009-02-03T23:03:00.005-05:00</published><updated>2009-02-03T23:13:39.831-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fail'/><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Research Fail!</title><content type='html'>While checking out Microsoft's new music product SongSmith the other day, I discovered a little Mac lovin during the promo video.  Take a good look at the laptop that the daughter is using.  Doesn't that look curiously like a Macbook Pro with a bunch of flower stickers on the lid?&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_J4tXAJPRy8c/SYkVYitpR3I/AAAAAAAAAHw/PjXsnAOjOVk/s1600-h/Microsoft-Songsmith-Commercial-Using-Macbook.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 210px;" src="http://3.bp.blogspot.com/_J4tXAJPRy8c/SYkVYitpR3I/AAAAAAAAAHw/PjXsnAOjOVk/s400/Microsoft-Songsmith-Commercial-Using-Macbook.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5298789947957397362" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-8093911930023749565?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/8093911930023749565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=8093911930023749565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/8093911930023749565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/8093911930023749565'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2009/02/research-fail.html' title='Research Fail!'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_J4tXAJPRy8c/SYkVYitpR3I/AAAAAAAAAHw/PjXsnAOjOVk/s72-c/Microsoft-Songsmith-Commercial-Using-Macbook.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-7738672017583206056</id><published>2008-09-11T08:57:00.009-04:00</published><updated>2010-01-23T23:22:14.518-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Papervision3D'/><category scheme='http://www.blogger.com/atom/ns#' term='actionscript'/><title type='text'>Papervision3D Performance Tips</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_J4tXAJPRy8c/SYkcWdJ0_fI/AAAAAAAAAH4/GCz-gk0Su1w/s1600-h/popeye_image.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5298797608686648818" src="http://1.bp.blogspot.com/_J4tXAJPRy8c/SYkcWdJ0_fI/AAAAAAAAAH4/GCz-gk0Su1w/s320/popeye_image.jpg" style="cursor: pointer; float: right; height: 216px; margin: 0pt 0pt 10px 10px; width: 180px;" /&gt;&lt;/a&gt;Papervision Performance Tips:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Lowering your poly count is the quickest way to get large performance gains.  Use models with the fewest polygons possible.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Use ViewportLayers and only render the layers that contain moving objects.  Caveat:  this can lead to some funky anomalies if you are rendering ViewportLayers with child layers.&lt;/li&gt;&lt;li&gt;Render the scene/layer only when something is moving and stop rendering when there is nothing moving.&lt;/li&gt;&lt;li&gt;Bake shading into material. Runtime shading is very resource intensive and will reduce your frame rate considerably.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Feed the garbage collector.  Destroy all unused objects properly.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Set the stage quality setting medium or low (or switch between the two)&lt;/li&gt;&lt;li&gt;Set the movieclipmaterial animate setting to false unless actively animating&lt;/li&gt;&lt;li&gt;If using precise property on materials, be sure to set tiling=true.&lt;/li&gt;&lt;/ul&gt;General Actionscript Performance Tips&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Instantiate variables outside of For loops and often called functions (onEnterFrame).  If you don't, you can run into a race condition where the garbage collector cannot dispose of those objects faster than they are being instantiated.  If you declare the variable outside of the loop, the memory is reused each time the function is entered.&lt;/li&gt;&lt;li&gt;Make sure you clean up your event listeners&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-7738672017583206056?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/7738672017583206056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=7738672017583206056' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/7738672017583206056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/7738672017583206056'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2008/09/papervision3d-performance-tips.html' title='Papervision3D Performance Tips'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_J4tXAJPRy8c/SYkcWdJ0_fI/AAAAAAAAAH4/GCz-gk0Su1w/s72-c/popeye_image.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-7346868348126837810</id><published>2008-09-06T11:55:00.015-04:00</published><updated>2010-01-23T23:23:02.398-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Papervision3D'/><title type='text'>Papervision Collada Interactivity Demo</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_J4tXAJPRy8c/SMWKxtsP75I/AAAAAAAAAFs/3Va2RU5HesU/s1600-h/Picture+4.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5243749927826222994" src="http://1.bp.blogspot.com/_J4tXAJPRy8c/SMWKxtsP75I/AAAAAAAAAFs/3Va2RU5HesU/s320/Picture+4.png" style="cursor: pointer; float: right; margin: 0pt 10px 10px 0pt;" /&gt;&lt;/a&gt;&lt;br /&gt;I've received a number of requests for an example of how to use my collada interactivity helper functions, so I threw this little demo together.  Note that this will only work with simple collada scenes containing a single object.&lt;br /&gt;The first step is commonly overlooked and is crucial for Papervision3D interactivity.  We have to enable interactivity on our viewport instance either through its constructor or setting the property directly.  In the demo, I set it in the viewport constructor (4th parameter):&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;ol start="43"&gt;&lt;li class="code"&gt;viewport = new Viewport3D(800, 600, false, true, true, true);&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/pre&gt;Next we create our collada instance that we want to interact with. We have to wait until the collada object and its material has completely loaded before we can initialize interactivity so, we need to listen for a FileLoadEvent.LOAD_COMPLETE.cow = new Collada("cow.dae");&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;ol start="56"&gt;&lt;li&gt;scene.addChild(cow);&lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;// before we can add event listeners we need to make sure the &lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;// object is instantiated completely&lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;cow.addEventListener(FileLoadEvent.LOAD_COMPLETE, handleColladaComplete);&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/pre&gt;When the LOAD_COMPLETE event is fired we can begin to enable interactivity on the object. In order for the object to dispatch mouse events, the "interactive" property of its material must be set to true. For primative objects, it's very simple to get a handle to their material because you  usually explicitly instantiate the material or you can get a handle to it using myPrimativeObj.material. For Collada objects, you can explicitly specify a material and apply it to the object using a MaterialList. Or your .dae file will have the material image file specified internally and the Collada class will instantiate a BitmapFileMaterial automatically. I find the second way to be the most flexible because the designer can name the UV mapped image whatever they'd like and the name can change without breaking the app. However, this way does make getting a handle to the material a little trickier. This is where my helper functions come in. For simple (single object) collada files, these functions return the DirectObject3D instance of the child object and the Material3D instance.&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;ol start="90"&gt;&lt;li class="code"&gt;// first we need to get a handle to the child object&lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;var childObj:DisplayObject3D = getColladaDisplayObj(cow);&lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;  &lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;// using the child object we get a handle to its material&lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;var childMat:MaterialObject3D = getColladaNodeMaterial(childObj);&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/pre&gt;&lt;b&gt;getColladaDisplayObj()&lt;/b&gt; uses a nasty String parse method to retrieve the name of the first collada child object. It then uses Collada.getChildByName() and returns a handle to the child DisplayObject3D. I personally would love to see a better solution for this, but for now it works!&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;ol start="114"&gt;&lt;li class="code"&gt;var childname:String = String(tempCO.childrenList()).substring(0,String(tempCO.childrenList()).indexOf(": "));&lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;  &lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;returnObj = tempCO.getChildByName(childname);&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/pre&gt;&lt;b&gt;getColladaMaterial()&lt;/b&gt; derives the string name of the first material associated with the given child object. Here I use the Actionscript 3 Core Library's StringUtil class to trim off any leading or trailing space characters from the material name (I'm not sure why they are there but they are). Then I use Collada.getMaterialByName() with the material's name to return a handle to the object's Material3D instance.&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;ol start="130"&gt;&lt;li class="code"&gt;var materialName:String = StringUtil.trim(String(colladaNode.materials));&lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;trace("materialName: '" + materialName + "'");&lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;returnVal = colladaNode.getMaterialByName(materialName);&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/pre&gt;Finally, now that we have handles to the Material and the child object we set the material's interactive flag to true and add our event listeners:&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;ol start="96"&gt;&lt;li class="code"&gt;if (childMat != null) {&lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;     // now we have to tell the material to dispatch InteractiveScene3D events&lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;     childMat.interactive = true;&lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;  &lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;     // Now we can add our listeners to the child object&lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;     childObj.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, handleCowOver);&lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;     childObj.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, handleCowOut);&lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;     childObj.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, handleCowClick);&lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;}&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/pre&gt;As an added bonus, this demo shows how you can easily apply filters to individual objects in the scene. First you get a handle to the object's layer using Viewport3D.getChildLayer and pass it the instance of the object. Next you create an array of filters and pass that array to the "filters" property of the ViewportLayer.&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;ol start="71"&gt;&lt;li class="code"&gt; private function handleCowOver(event:InteractiveScene3DEvent):void {&lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;     var cowLayer:ViewportLayer = viewport.getChildLayer(cow, true, true);&lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;     cowLayer.filters = [new GlowFilter(0xffee11, 1, 10, 10, 6, 3, false, false)];&lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;}&lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;  &lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;private function handleCowOut(event:InteractiveScene3DEvent):void {&lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;     var cowLayer:ViewportLayer = viewport.getChildLayer(cow, true, true);&lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;     cowLayer.filters = null;&lt;/li&gt;&lt;br /&gt;&lt;li class="code"&gt;}&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/pre&gt;The full source for the demo can be downloaded &lt;a href="http://codejockey1.googlepages.com/Papervision_Collada_Interactivity_De.zip"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-7346868348126837810?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/7346868348126837810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=7346868348126837810' title='21 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/7346868348126837810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/7346868348126837810'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2008/09/papervision-collad-interactivity-demo.html' title='Papervision Collada Interactivity Demo'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_J4tXAJPRy8c/SMWKxtsP75I/AAAAAAAAAFs/3Va2RU5HesU/s72-c/Picture+4.png' height='72' width='72'/><thr:total>21</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-7387724854786052831</id><published>2008-08-25T11:27:00.004-04:00</published><updated>2008-09-08T16:19:39.769-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vacation'/><category scheme='http://www.blogger.com/atom/ns#' term='photosynth'/><title type='text'>Testing Microsoft Photosynth</title><content type='html'>Here are some MS Photosynth tests that I did using photos from our last camping trip to PJ Hoffmaster State Park on Lake Michigan.  It is absolutely amazing how it can automatically figure out how the photos blend together without any hinting.  The navigation is a little wonky sometimes, but I'm sure that will improve over time.  Nice work M$!&lt;br /&gt;&lt;br /&gt;Click on an image to go to view it in Photosynth:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photosynth.net/view.aspx?cid=f4df55a5-270a-42af-9b2b-9d9c6c05a540"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_J4tXAJPRy8c/SMWHtD1y2lI/AAAAAAAAAFM/4cWM1oAwjtI/s320/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5243746549337610834" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photosynth.net/view.aspx?cid=96f80a6a-da34-477a-9358-bc4041b015eb"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_J4tXAJPRy8c/SMWHtgaFPbI/AAAAAAAAAFU/hpKwHnNRv14/s320/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5243746557006003634" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photosynth.net/view.aspx?cid=7bd46363-3dfe-4232-be6d-774d4b55e17b"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_J4tXAJPRy8c/SMWHt7olJaI/AAAAAAAAAFc/VBqFPJNXtzQ/s320/Picture+3.png" alt="" id="BLOGGER_PHOTO_ID_5243746564314572194" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-7387724854786052831?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/7387724854786052831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=7387724854786052831' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/7387724854786052831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/7387724854786052831'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2008/08/testing-microsoft-photosynth.html' title='Testing Microsoft Photosynth'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_J4tXAJPRy8c/SMWHtD1y2lI/AAAAAAAAAFM/4cWM1oAwjtI/s72-c/Picture+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-2665530731174477720</id><published>2008-08-15T14:21:00.012-04:00</published><updated>2010-01-23T23:28:06.523-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Papervision3D'/><title type='text'>Basic Papervision 3D Demo</title><content type='html'>This demo incorporates a bunch of Papervision3D basics including:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Primatives&lt;/li&gt;&lt;li&gt;Using a MovieClip for a material&lt;/li&gt;&lt;li&gt;Interaction&lt;/li&gt;&lt;li&gt;Skybox&lt;/li&gt;&lt;li&gt;Free camera motion&lt;/li&gt;&lt;li&gt;Viewport layers&lt;/li&gt;&lt;/ul&gt;Additionally the example utilizes &lt;a href="http://code.google.com/p/as3syndicationlib/"&gt;AS3SyndicationLib&lt;/a&gt; and &lt;a href="http://code.google.com/p/as3corelib/"&gt;as3corelib&lt;/a&gt; to retrive and parse Digg.com's RSS feed.&lt;br /&gt;&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" height="32" title="Digg PV3D Demo" width="32"&gt; &lt;param name="movie" value="http://codejockey1.googlepages.com/DiggExplorerDemo.swf"&gt; &lt;param name="quality" value="high"&gt; &lt;embed src="http://codejockey1.googlepages.com/DiggExplorerDemo.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" height="450" width="450"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;br /&gt;Download the source code &lt;a href="http://codejockey1.googlepages.com/DiggPV3DDemo.zip"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-2665530731174477720?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/2665530731174477720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=2665530731174477720' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/2665530731174477720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/2665530731174477720'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2008/08/basic-papervision-3d-demo.html' title='Basic Papervision 3D Demo'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-8849674041842473684</id><published>2008-08-13T13:29:00.007-04:00</published><updated>2010-01-23T23:24:19.432-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Papervision3D'/><title type='text'>Papervision Collada Interactivity</title><content type='html'>Getting interactivity to work with Papervision3D Collada objects can be a little tricky.&lt;br /&gt;&lt;br /&gt;There are two main confusion points:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;The Collada class is a container for the 3D objects defined in the .dae file.&lt;/span&gt;  You will need to get a reference to the child object of the Collada class for which you want to interact with.  I found this to be a little troublesome because of some getChildByName not working as I expected it to.  I also found it clunky to have to hardcode somewhere the name of the object as defined by the designer.   So I cobbled together the following function to return the first child DirectObject3D for a given Collada object.  Fortunately for me, the collada files I am using are simple and only contain one object per.  If yours are more complex, you may have to go a different route.  It's a little hacky as you can tell, but it works.&lt;/li&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;public function getColladaDisplayObj(tempCO:DisplayObject3D):DisplayObject3D {&lt;br /&gt;var returnObj:DisplayObject3D;&lt;br /&gt;&lt;br /&gt;try {&lt;br /&gt;var childname:String = String(tempCO.childrenList()).substring(0,String(tempCO.childrenList()).indexOf(": "));&lt;br /&gt;&lt;br /&gt;returnObj = tempCO.getChildByName(childname);&lt;br /&gt;this.myDisplayObj = returnObj;&lt;br /&gt;&lt;br /&gt;//trace("found colladaNode: " + childname);&lt;br /&gt;} catch(errObject:Error) {&lt;br /&gt;trace(errObject.message);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;return returnObj;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Interactivity events are based on the material that is applied to the object, not the object itself.&lt;/span&gt;  So, you need to obtain a reference to the object's material, set interactive=true, and then add your event listener to the object.  Here is another function that I hacked together to retrieve a reference to a Collada child object's material.&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;private function getColladaNodeMaterial(colladaNode:DisplayObject3D):MaterialObject3D {&lt;br /&gt;var returnVal:MaterialObject3D;&lt;br /&gt;&lt;br /&gt;try {&lt;br /&gt;var materialName:String = StringUtil.trim(String(colladaNode.materials));&lt;br /&gt;trace("materialName: '" + materialName + "'");&lt;br /&gt;returnVal = colladaNode.getMaterialByName(materialName);&lt;br /&gt;} catch(errObject:Error) {&lt;br /&gt;trace(errObject.message);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;return returnVal;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Another way to add interactivity is to create a material instance and set materialName.interactive = true, add that material to a MaterialList and then pass that MaterialList as a parameter when instantiating the Collada class.  I personally am not a big fan of this approach however, because the Collada files I am using already have the material defined internally.  Doing it the way I described above, I don't need to know how the object is named by the designer or the name of the material file.&lt;br /&gt;If you have any suggestions, questions, or know a better way please let me know!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-8849674041842473684?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/8849674041842473684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=8849674041842473684' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/8849674041842473684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/8849674041842473684'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2008/08/papervision-collada-interactivity.html' title='Papervision Collada Interactivity'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-3973248264096164376</id><published>2008-07-24T10:52:00.004-04:00</published><updated>2010-01-23T23:28:25.485-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Papervision3D'/><title type='text'>Papervision BoundingBox Utility Class</title><content type='html'>I've been using this helper class alot lately so I thought I'd share it.  I don't remember who posted it to the mailing list, but I can't take credit it for it myself.&lt;br /&gt;&lt;br /&gt;It is very helpful to finding the size of a 3D object.&lt;br /&gt;&lt;br /&gt;package &lt;br /&gt;{&lt;br /&gt;import org.papervision3d.core.geom.renderables.Vertex3D;&lt;br /&gt;import org.papervision3d.objects.DisplayObject3D;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* Utility class that calculates the bounding box dimensions of a Papervision DisplayObject3D&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;public class BoundingBox&lt;br /&gt;{&lt;br /&gt;public var maxX :Number = 0;&lt;br /&gt;public var minX :Number = 0;&lt;br /&gt;public var maxY :Number = 0;&lt;br /&gt;public var minY :Number = 0;&lt;br /&gt;public var maxZ :Number = 0;&lt;br /&gt;public var minZ :Number = 0;&lt;br /&gt;&lt;br /&gt;public var sizeX :Number = 0;&lt;br /&gt;public var sizeY :Number = 0;&lt;br /&gt;public var sizeZ :Number = 0;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* Constructor.&lt;br /&gt;* &lt;br /&gt;* @param object The DisplayObject3D instance for which you want to calculate the bounding box&lt;br /&gt;*/&lt;br /&gt;public function BoundingBox( object:DisplayObject3D )&lt;br /&gt;{&lt;br /&gt;parseMesh( object );&lt;br /&gt;&lt;br /&gt;sizeX = maxX - minX;&lt;br /&gt;sizeY = maxY - minY;&lt;br /&gt;sizeZ = maxZ - minZ;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* &lt;br /&gt;Here is where we make the doughnuts...&lt;br /&gt;Recursively, we cycle through all objects and child objects, loop &lt;br /&gt;through each of their vertices and storing the max of each dimension&lt;br /&gt;*/&lt;br /&gt;private function parseMesh(object:DisplayObject3D):void&lt;br /&gt;{&lt;br /&gt;if (object.children)&lt;br /&gt;for each(var child:DisplayObject3D in object.children)&lt;br /&gt;parseMesh(child);&lt;br /&gt;&lt;br /&gt;if ( !object.geometry)&lt;br /&gt;return;&lt;br /&gt;&lt;br /&gt;for each(var vertex:Vertex3D in object.geometry.vertices)&lt;br /&gt;{&lt;br /&gt;maxX = Math.max(maxX, vertex.x);&lt;br /&gt;minX = Math.min(minX, vertex.x);&lt;br /&gt;maxY = Math.max(maxY, vertex.y);&lt;br /&gt;minY = Math.min(minY, vertex.y);&lt;br /&gt;maxZ = Math.max(maxZ, vertex.z);&lt;br /&gt;minZ = Math.min(minZ, vertex.z);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-3973248264096164376?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/3973248264096164376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=3973248264096164376' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/3973248264096164376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/3973248264096164376'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2008/07/papervision-boundingbox-utility-class.html' title='Papervision BoundingBox Utility Class'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-3202598497810594145</id><published>2008-04-30T00:05:00.005-04:00</published><updated>2010-01-23T23:27:40.476-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='office humor'/><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><title type='text'>Nerf Guns + Work = Fun!</title><content type='html'>Just a short clip of Dr K shooting the big gun at one of the glass office doors...&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-ae80de0cb8160a66" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v16.nonxt2.googlevideo.com/videoplayback?id%3Dae80de0cb8160a66%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1331570619%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D2A7CCAFBC01F4B500D91871611462EF3E34F768E.18FEE78E2E8809553CCF0C2DF52848893314AA7E%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dae80de0cb8160a66%26offsetms%3D5000%26itag%3Dw160%26sigh%3D9lzQ3unMmoqLo-nvh6NucH1l4gQ&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v16.nonxt2.googlevideo.com/videoplayback?id%3Dae80de0cb8160a66%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1331570619%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D2A7CCAFBC01F4B500D91871611462EF3E34F768E.18FEE78E2E8809553CCF0C2DF52848893314AA7E%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dae80de0cb8160a66%26offsetms%3D5000%26itag%3Dw160%26sigh%3D9lzQ3unMmoqLo-nvh6NucH1l4gQ&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-3202598497810594145?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=ae80de0cb8160a66&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/3202598497810594145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=3202598497810594145' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/3202598497810594145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/3202598497810594145'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2008/04/nerf-guns-work-fun.html' title='Nerf Guns + Work = Fun!'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-8877262431321641162</id><published>2008-04-29T23:51:00.007-04:00</published><updated>2010-01-23T23:28:45.940-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='office humor'/><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><title type='text'>Working from the ground up</title><content type='html'>Here is another example of what can happen when you mess with the wrong people in my office.  The picture is a little blurred because I was laughing my ass off when I took it.  Notice how  everything was placed on the floor in the exact position it was on the desk.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp0.blogger.com/_J4tXAJPRy8c/SBftMn6x4kI/AAAAAAAAAD0/y54S9ie-oKo/s1600-h/PIC-0002.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5194881496324891202" src="http://bp0.blogger.com/_J4tXAJPRy8c/SBftMn6x4kI/AAAAAAAAAD0/y54S9ie-oKo/s320/PIC-0002.jpg" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-8877262431321641162?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/8877262431321641162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=8877262431321641162' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/8877262431321641162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/8877262431321641162'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2008/04/working-from-ground-up.html' title='Working from the ground up'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_J4tXAJPRy8c/SBftMn6x4kI/AAAAAAAAAD0/y54S9ie-oKo/s72-c/PIC-0002.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-5869445428993608519</id><published>2008-04-29T23:47:00.004-04:00</published><updated>2008-04-30T00:13:50.650-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='office humor'/><title type='text'>Convenient Desk Location</title><content type='html'>There are alot of great practical jokes played where I work, and here is the latest one.  On my way out of the office one evening, I made a pit stop at the men's room and found this...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_J4tXAJPRy8c/SBfsS36x4jI/AAAAAAAAADs/1IUaYwb3Xv0/s1600-h/PIC-0017.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_J4tXAJPRy8c/SBfsS36x4jI/AAAAAAAAADs/1IUaYwb3Xv0/s320/PIC-0017.jpg" alt="" id="BLOGGER_PHOTO_ID_5194880504187445810" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-5869445428993608519?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/5869445428993608519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=5869445428993608519' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/5869445428993608519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/5869445428993608519'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2008/04/there-are-alot-of-great-practical-jokes.html' title='Convenient Desk Location'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_J4tXAJPRy8c/SBfsS36x4jI/AAAAAAAAADs/1IUaYwb3Xv0/s72-c/PIC-0017.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-7944993362704310102</id><published>2008-04-29T22:50:00.007-04:00</published><updated>2010-01-23T23:24:51.809-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Papervision3D'/><category scheme='http://www.blogger.com/atom/ns#' term='collada'/><title type='text'>Papervision Collada Interactivity</title><content type='html'>On my most recent project, I had the opportunity to write my first full blown Flash application that uses Papervision.  Although Papervision has definitely presented some unique challenges, I think it is a fantastic library that opens the door to some really interesting flash applications.  One of the challenges that I ran into recently had to do with Collada model interactivity.&lt;br /&gt;&lt;br /&gt;In my application, I needed to be able to click on a Collada object to "select" it and then move it around the stage.  My first instinct was to simply add an event listener to my Collada class and handle the MouseEvent.  Unfortunately, things aren't quite that simple in Papervision.&lt;br /&gt;&lt;br /&gt;I discovered that Papervision interactivity is handled by the &lt;a href="http://lostboys.epologee.net/papervision/greatwhite.doc/html/org_papervision3d_core_utils_InteractiveSceneManager.html"&gt;InteractiveSceneManager&lt;/a&gt;  class.  I'm not going to begin to claim a complete understanding of the magic that occurs in this class, but my understanding of it is this:  InteractiveSceneManager translates 3D objects to 2D faces and throws events based on mouse position and clicks on the resulting sprites.  In order for a 3D object to react to mouse events, the Materials applied need to have their "interactive" property set to true.  If you have an object with multiple materials applied (a cube with 6 different materials), you can have different faces that are and are not interactive.  For primative object types, once you have the interactive property set on the material you can simply add a listener to the object for InteractiveScene3DEvent.&lt;br /&gt;&lt;br /&gt;Collada object interactivity is basically the same except you have to get a handle to a child object of the Collada class and then set its materials as interactive.  The listener then goes on the child object instead of the parent Collada class.&lt;br /&gt;&lt;br /&gt;myCollada.getChildByName("cow").addEventListener(&lt;b class="highlight"&gt;InteractiveScene3DEvent&lt;/b&gt;.OBJECT_CLICK, onObjectClick); &lt;br /&gt;&lt;br /&gt;More to come...&lt;br /&gt;&lt;br /&gt;Example coming soon...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-7944993362704310102?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/7944993362704310102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=7944993362704310102' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/7944993362704310102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/7944993362704310102'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2008/04/papervision-collada-interactivity.html' title='Papervision Collada Interactivity'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-5323629319126617367</id><published>2007-12-31T12:55:00.000-05:00</published><updated>2007-12-31T14:39:02.305-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='arraycollection'/><category scheme='http://www.blogger.com/atom/ns#' term='xml'/><title type='text'>Flex XML object to ArrayCollection</title><content type='html'>&lt;span style="font-family:arial;"&gt;As I'm working to get my head around how things are done in Flex as opposed to Java and CF, I ran into a situation where I have an XML object that I retrieved from a webservice and I'd like to convert that into an bindable ArrayCollection for use with Lists, Datagrids, etc.  I couldn't find a straight answer for this anywhere else, so I figured I would blog about it and help the next person out.  As usual, if you disagree or have a better idea let me know as I'm sure there has to be a better way!&lt;br /&gt;&lt;br /&gt;To start with, here's the XML we retrieve from the webservice (generated by a CF component):&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;&amp;lt;?xml version="1.0" encoding="UTF-8" ?&amp;gt;&lt;br /&gt;&amp;lt;scores&amp;gt;&lt;br /&gt;&amp;lt;score position="1"&amp;gt;4&amp;lt;/score&amp;gt;&lt;br /&gt;&amp;lt;score position="2"&amp;gt;1&amp;lt;/score&amp;gt;&lt;br /&gt;&amp;lt;score position="3"&amp;gt;2&amp;lt;/score&amp;gt;&lt;br /&gt;&amp;lt;score position="4"&amp;gt;3&amp;lt;/score&amp;gt;&lt;br /&gt;&amp;lt;score position="5"&amp;gt;5&amp;lt;/score&amp;gt;&lt;br /&gt;&amp;lt;score position="6"&amp;gt;0&amp;lt;/score&amp;gt;&lt;br /&gt;&amp;lt;score position="7"&amp;gt;9&amp;lt;/score&amp;gt;&lt;br /&gt;&amp;lt;score position="8"&amp;gt;6&amp;lt;/score&amp;gt;&lt;br /&gt;&amp;lt;score position="9"&amp;gt;8&amp;lt;/score&amp;gt;&lt;br /&gt;&amp;lt;score position="10"&amp;gt;7&amp;lt;/score&amp;gt;&lt;br /&gt;&amp;lt;/scores&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;And here is the code (I'll explain what it does below):&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="init()"&amp;gt;&lt;br /&gt;  &amp;lt;!-- In our demo, this webservice connects to our CF component and retrieves our XML doc --&amp;gt;&lt;br /&gt;  &amp;lt;mx:WebService id="scoresRPC"&lt;br /&gt;      wsdl="http://agile-solutions.com:81/squares2/cfc/services/squaresService.cfc?wsdl"&amp;gt;&lt;br /&gt;      &amp;lt;mx:operation name="getVScoresXML" result="scoresHandler(event)" /&amp;gt;&lt;br /&gt;  &amp;lt;/mx:WebService&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;mx:Script&amp;gt;&lt;br /&gt;      &amp;lt;![CDATA[&lt;br /&gt;          import mx.collections.ArrayCollection;  &lt;br /&gt;          import mx.rpc.events.ResultEvent;&lt;br /&gt;        &lt;br /&gt;          /* This is our bindable ArrayCollection which we fill with the contents&lt;br /&gt;          of our XML doc */&lt;br /&gt;          [Bindable]&lt;br /&gt;          private var scores:ArrayCollection = new ArrayCollection();&lt;br /&gt;        &lt;br /&gt;          /* Temporary placeholder object used when retrieving XML */&lt;br /&gt;          private var xmlResult:XML ;&lt;br /&gt;        &lt;br /&gt;          /* Application initializer that kicks off the webservice XML retreival */&lt;br /&gt;          public function init():void {&lt;br /&gt;              scoresRPC.getVScoresXML.send(1);&lt;br /&gt;          }&lt;br /&gt;        &lt;br /&gt;          /* Here's where we make the doughnuts */&lt;br /&gt;          /* We loop over all the objects inside the "root.score" node and stuff them each&lt;br /&gt;          into the ArrayCollection */&lt;br /&gt;          public function scoresHandler(event:ResultEvent):void {&lt;br /&gt;              xmlResult = new XML(event.result);&lt;br /&gt;            &lt;br /&gt;              // Convert XML to ArrayCollection&lt;br /&gt;              for each(var s:XML in xmlResult.score){&lt;br /&gt;                  scores.addItem(s);&lt;br /&gt;              }&lt;br /&gt;            &lt;br /&gt;              trace("Scores Collection:");&lt;br /&gt;              trace(scores);&lt;br /&gt;            &lt;br /&gt;              trace("scores.getItemAt(1): " + scores.getItemAt(0));&lt;br /&gt;          }&lt;br /&gt;      ]]&amp;gt;&lt;br /&gt;  &amp;lt;/mx:Script&amp;gt;&lt;br /&gt;  &amp;lt;mx:Label text="XML Doc to ArrayCollection Demo" fontSize="21"/&amp;gt;&lt;br /&gt;  &amp;lt;mx:Label text="Binding Example" textAlign="center" fontSize="17"/&amp;gt;&lt;br /&gt;  &amp;lt;mx:List dataProvider="{scores}"&amp;gt;&amp;lt;/mx:List&amp;gt;&lt;br /&gt;  &amp;lt;mx:Spacer/&amp;gt;&lt;br /&gt;  &amp;lt;mx:Label text="Retrieve Values Example" textAlign="center" fontSize="17"/&amp;gt;&lt;br /&gt;  &amp;lt;mx:Text text="This returns the fifth element in the ArrayCollection (Pun totally intended)"/&amp;gt;&lt;br /&gt;  &amp;lt;mx:HBox width="25%" height="10%" horizontalAlign="center"&amp;gt;&lt;br /&gt;      &amp;lt;mx:Label text="scores.getItemAt(5) =&amp;gt;" textAlign="left" fontWeight="bold"/&amp;gt;&lt;br /&gt;      &amp;lt;mx:Text text="{scores.getItemAt(5)}" fontWeight="bold"/&amp;gt;&lt;br /&gt;  &amp;lt;/mx:HBox&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/mx:Application&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;OK, I owe an explanation here but I really need to get back to working on what brought me to this problem in the first place.  When I get a chance, I will update this post with a complete explanation.  Sorry...&lt;br /&gt;&lt;br /&gt;If it helps, here is a forum post in which I was looking for some direction on this matter:&lt;br /&gt;&lt;a href="http://tech.groups.yahoo.com/group/flexcoders/message/97710"&gt;http://tech.groups.yahoo.com/group/flexcoders/message/97710&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-5323629319126617367?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codejockeyscorner.blogspot.com/feeds/5323629319126617367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3115219752310540574&amp;postID=5323629319126617367' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/5323629319126617367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/5323629319126617367'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2007/12/flex-xml-object-to-arraycollection.html' title='Flex XML object to ArrayCollection'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3115219752310540574.post-8521845606261076695</id><published>2007-10-28T04:11:00.000-04:00</published><updated>2007-10-28T15:47:37.312-04:00</updated><title type='text'>Welcome!</title><content type='html'>Welcome to my little personal journal of ramblings, epiphanies, and other things I'd like to share.  To start, how about a list of a few things I'm reading about or tinkering with:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_J4tXAJPRy8c/RySgfwtXv0I/AAAAAAAAAAU/f3fbNY8FTgI/s1600-h/fx.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 39px; height: 39px;" src="http://bp0.blogger.com/_J4tXAJPRy8c/RySgfwtXv0I/AAAAAAAAAAU/f3fbNY8FTgI/s200/fx.png" alt="" id="BLOGGER_PHOTO_ID_5126398743366057794" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.adobe.com/products/flex/"&gt;Adobe Flex&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_J4tXAJPRy8c/RySgHwtXvzI/AAAAAAAAAAM/cLuA7_FeabI/s1600-h/coldfusion.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 38px; height: 36px;" src="http://bp0.blogger.com/_J4tXAJPRy8c/RySgHwtXvzI/AAAAAAAAAAM/cLuA7_FeabI/s200/coldfusion.jpg" alt="" id="BLOGGER_PHOTO_ID_5126398331049197362" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.adobe.com/products/flex/"&gt;Coldfusion 8&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_J4tXAJPRy8c/RyShvQtXv1I/AAAAAAAAAAc/ni3FtZij2WM/s1600-h/sageTV.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 58px; height: 43px;" src="http://bp2.blogger.com/_J4tXAJPRy8c/RyShvQtXv1I/AAAAAAAAAAc/ni3FtZij2WM/s200/sageTV.jpg" alt="" id="BLOGGER_PHOTO_ID_5126400109165657938" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.sagetv.com/"&gt;SageTV&lt;br /&gt;&lt;/a&gt;&lt;a href="http://www.sagetv.com/"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="http://www.sagetv.com/"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_J4tXAJPRy8c/RySh6AtXv2I/AAAAAAAAAAk/i5N06AImlkY/s1600-h/mediacenter_green_ball_logo_300px.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 49px; height: 48px;" src="http://bp1.blogger.com/_J4tXAJPRy8c/RySh6AtXv2I/AAAAAAAAAAk/i5N06AImlkY/s200/mediacenter_green_ball_logo_300px.jpg" alt="" id="BLOGGER_PHOTO_ID_5126400293849251682" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.microsoft.com/windows/products/windowsvista/features/details/mediacenter.mspx"&gt;Windows Media Center&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_J4tXAJPRy8c/RySisgtXv3I/AAAAAAAAAAs/N03taRXCefU/s1600-h/blackjackofficial.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 52px; height: 52px;" src="http://bp3.blogger.com/_J4tXAJPRy8c/RySisgtXv3I/AAAAAAAAAAs/N03taRXCefU/s200/blackjackofficial.jpg" alt="" id="BLOGGER_PHOTO_ID_5126401161432645490" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.ubuntu.com/"&gt;Samsung Blackjack&lt;/a&gt; / &lt;a href="http://www.microsoft.com/windowsmobile/software/default.mspx"&gt;Windows Mobile&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_J4tXAJPRy8c/RySjbgtXv4I/AAAAAAAAAA0/V4H40iAzv4w/s1600-h/ubuntu-wallpaper.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 52px; height: 39px;" src="http://bp3.blogger.com/_J4tXAJPRy8c/RySjbgtXv4I/AAAAAAAAAA0/V4H40iAzv4w/s200/ubuntu-wallpaper.jpg" alt="" id="BLOGGER_PHOTO_ID_5126401968886497154" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.ubuntu.com/"&gt;Ubuntu &lt;/a&gt;(Shwing!)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;That's all for now...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3115219752310540574-8521845606261076695?l=codejockeyscorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/8521845606261076695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3115219752310540574/posts/default/8521845606261076695'/><link rel='alternate' type='text/html' href='http://codejockeyscorner.blogspot.com/2007/10/welcome.html' title='Welcome!'/><author><name>CodeJockey</name><uri>http://www.blogger.com/profile/01727635039936789772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_J4tXAJPRy8c/RySgfwtXv0I/AAAAAAAAAAU/f3fbNY8FTgI/s72-c/fx.png' height='72' width='72'/></entry></feed>
