<?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-7692299817745629887</id><updated>2012-02-16T00:30:51.566-08:00</updated><title type='text'>Cloud Nebula</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default?start-index=101&amp;max-results=100'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>145</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-4562839630805651695</id><published>2011-11-17T13:40:00.001-08:00</published><updated>2011-11-17T13:42:55.604-08:00</updated><title type='text'>Flash Builder not auto completing</title><content type='html'>I imported an existing project into FlashBuilder 4.0 and found that content assist (and class linking) didn't work. &amp;nbsp;After a bit of googling and testing it turns out that when you import a project the compiler looks for the main classes in the src folder. If you have them in a different place you need to explictly set this by right clicking the project &amp;gt; properties &amp;gt; Actionscript Build Path and then set the "Main Source folder" to the custom location (it will be set to src by default).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-4562839630805651695?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/4562839630805651695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=4562839630805651695' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/4562839630805651695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/4562839630805651695'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2011/11/flash-builder-not-auto-completing.html' title='Flash Builder not auto completing'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-1547069824137815521</id><published>2011-07-02T03:41:00.000-07:00</published><updated>2011-07-02T03:50:00.530-07:00</updated><title type='text'>Setting up the mic for Mac Book</title><content type='html'>My sister in law and a friend were having trouble setting up the single audio input on the Mac Book to record some audio and couldn't figure out how to get the Mac to use it as an input jack instead of the speaker output. So for anyone else having the same problem, here are the directions:&lt;br /&gt;&lt;br /&gt;Open the System Preferences panel -- the icon looks like this:&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-iQ9CpIef2JA/Tg72igOfx5I/AAAAAAAAByQ/dfgoCceJFqE/s1600/system-pref.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 102px; height: 102px;" src="http://2.bp.blogspot.com/-iQ9CpIef2JA/Tg72igOfx5I/AAAAAAAAByQ/dfgoCceJFqE/s400/system-pref.jpg" alt="" id="BLOGGER_PHOTO_ID_5624704057259050898" border="0" /&gt;&lt;/a&gt;Then in the Hardware section click on Sound (last icon on the right):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-Zlb4PxtcrMQ/Tg72uBhJJ4I/AAAAAAAAByY/Ek7n1lyG5t0/s1600/kathy1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 337px;" src="http://2.bp.blogspot.com/-Zlb4PxtcrMQ/Tg72uBhJJ4I/AAAAAAAAByY/Ek7n1lyG5t0/s400/kathy1.png" alt="" id="BLOGGER_PHOTO_ID_5624704255174190978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;On this next screen choose the last option item "Input" (on the far right):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-NDb-SpLC2iU/Tg725rt4h8I/AAAAAAAAByg/CeRpqDJsCOI/s1600/kathy2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 312px;" src="http://3.bp.blogspot.com/-NDb-SpLC2iU/Tg725rt4h8I/AAAAAAAAByg/CeRpqDJsCOI/s400/kathy2.png" alt="" id="BLOGGER_PHOTO_ID_5624704455480477634" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then at the bottom of this screen select the dropdown for "Use audio port for" and select "Sound Input":&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-equlj_IfG8A/Tg73IAdYPLI/AAAAAAAAByo/AOcxGZ34tCI/s1600/kathy3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 312px;" src="http://1.bp.blogspot.com/-equlj_IfG8A/Tg73IAdYPLI/AAAAAAAAByo/AOcxGZ34tCI/s400/kathy3.png" alt="" id="BLOGGER_PHOTO_ID_5624704701566565554" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Your line in should now work....&lt;br /&gt;&lt;br /&gt;Of course, once you're done you'll have to reset this to "Sound Output" again so that you can use speakers or headphones :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-1547069824137815521?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/1547069824137815521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=1547069824137815521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/1547069824137815521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/1547069824137815521'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2011/07/setting-up-mic-for-mac-book.html' title='Setting up the mic for Mac Book'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-iQ9CpIef2JA/Tg72igOfx5I/AAAAAAAAByQ/dfgoCceJFqE/s72-c/system-pref.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-1003300120750732399</id><published>2011-04-20T08:19:00.000-07:00</published><updated>2011-04-20T08:21:51.583-07:00</updated><title type='text'>missing images in iPhone using Titanium</title><content type='html'>Note to future self: If you build an app in Titanium -- do NOT create a folder in the images directory called 'iphone' to place iphone specific images there. They will show up in the emulator but not on the device. I ran into this a few months ago but didn't document the solution and just spent another 2 hours trying to debug it a separate time.  Use any other name than 'iphone'!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-1003300120750732399?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/1003300120750732399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=1003300120750732399' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/1003300120750732399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/1003300120750732399'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2011/04/missing-images-in-iphone-using-titanium.html' title='missing images in iPhone using Titanium'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-8800497072642455776</id><published>2011-04-13T08:22:00.001-07:00</published><updated>2011-04-13T08:25:49.121-07:00</updated><title type='text'>Titanium createHTTPClient issue on Android</title><content type='html'>Setting up an Android app on Titanium, I was having problems getting a webservice using a signature. It was working fine on iPhone. Turns out that Titanium auto url encodes the url in an createHTTPClient.open() method -- thus sending a different string than the signature had hecked against -- and thus returning an error.&lt;br /&gt;&lt;br /&gt;To fix it, do this:&lt;br /&gt;&lt;br /&gt;var xhr = Titanium.Network.createHTTPClient();&lt;br /&gt; xhr.autoEncodeUrl = false;&lt;br /&gt;&lt;br /&gt;before you call the open() method.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-8800497072642455776?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/8800497072642455776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=8800497072642455776' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8800497072642455776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8800497072642455776'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2011/04/titanium-createhttpclient-issue-on.html' title='Titanium createHTTPClient issue on Android'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-6961601218933385576</id><published>2011-02-19T10:05:00.000-08:00</published><updated>2011-02-19T10:14:37.653-08:00</updated><title type='text'>Blackberry Playbook error using AIR StageWebView</title><content type='html'>Here was a crazy error on the latest Blackberry Playbook simulator (0.9.3). If you reference a non-existent file or image, it throws this error:&lt;br /&gt;&lt;br /&gt;Error #2044: Unhandled ErrorEvent:. text=Couldn't read a file:// file&lt;br /&gt;&lt;br /&gt;It was no fun trying to figure out where this bug was coming from! :-(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-6961601218933385576?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/6961601218933385576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=6961601218933385576' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6961601218933385576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6961601218933385576'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2011/02/blackberry-playbook-error-using-air.html' title='Blackberry Playbook error using AIR StageWebView'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-5672265523272954485</id><published>2011-02-03T14:21:00.000-08:00</published><updated>2011-02-03T14:30:30.745-08:00</updated><title type='text'>Facebook Places throws oAuth error: "The table you requested does not exist"</title><content type='html'>Just did a great workshop with Conrad Fuhrman who demonstrated his &lt;a href="http://thenativeadvantage.com/2011/01/arti-other-items/"&gt;ARTi application&lt;/a&gt;, an augmented reality app build with &lt;a href="http://www.appcelerator.com/"&gt;Titanium&lt;/a&gt;. It also uses a new Titanium Facebook module that allows you to connect to Facebook using oAuth. However, when I tried to run the code sample I kept getting this oAuth error:&lt;br /&gt;&lt;br /&gt;entries =&gt;&lt;br /&gt;&lt;cfstring&gt;{contents = "type"} = &lt;cfstring&gt;{contents = "OAuthException"}&lt;br /&gt;&lt;cfstring&gt;{contents = "message"} = &lt;cfstring&gt;{contents = "(#603) The table you requested does not exist"}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;After a google search &lt;a href="http://bravenewmethod.wordpress.com/2010/12/15/facebook-places-v-s-foursquare-api/"&gt;this post turned up which explained it all&lt;/a&gt;. It turns out that Facebook Places does not work outside of the US, and since I was trying to access it from Barbados, it was failing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-5672265523272954485?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/5672265523272954485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=5672265523272954485' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/5672265523272954485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/5672265523272954485'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2011/02/facebook-places-throws-oauth-error.html' title='Facebook Places throws oAuth error: &quot;The table you requested does not exist&quot;'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-8870030322955922227</id><published>2011-01-14T06:09:00.000-08:00</published><updated>2011-01-14T06:10:37.833-08:00</updated><title type='text'>Detecting Android and iPhone using Javascript</title><content type='html'>Here is how you can detect iPhone/ipod and android using javascript:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.hand-interactive.com/resources/detect-mobile-javascript.htm"&gt;http://www.hand-interactive.com/resources/detect-mobile-javascript.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-8870030322955922227?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/8870030322955922227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=8870030322955922227' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8870030322955922227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8870030322955922227'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2011/01/detecting-android-and-iphone-using.html' title='Detecting Android and iPhone using Javascript'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-6373635886399391465</id><published>2011-01-10T07:42:00.000-08:00</published><updated>2011-01-12T13:32:48.097-08:00</updated><title type='text'>Creating scrollable divs on a Mobile device</title><content type='html'>On mobile devices the scroll property cannot be set for divs on the page since the page itself is scrollable. Google has released a possible workaround that I am trying to get working. It involves disabling the scroll property of the document and animating the div in response to touch events:&lt;br /&gt;&lt;br /&gt;http://code.google.com/mobile/articles/webapp_fixed_ui.html&lt;br /&gt;&lt;br /&gt;Update: I just found the &lt;a href="http://developer.yahoo.com/yui/3/scrollview/"&gt;YUI Scrollview&lt;/a&gt; and (after figuring out a critical step to get the scrollbars to work) its awesome!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.yahoo.com/yui/3/scrollview/"&gt;http://developer.yahoo.com/yui/3/scrollview/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The problem I ran into was how to get the scrollbars to show up. It turns out that the documentation does not include the need to attach a "yui-skin-sam" style to the container that holds the scrollable div. So in order to make it work here is a very simple example:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pastie.org/1454114"&gt;http://pastie.org/1454114&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript" charset="utf-8" src="http://yui.yahooapis.com/3.2.0/build/yui/yui.js"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-6373635886399391465?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/6373635886399391465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=6373635886399391465' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6373635886399391465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6373635886399391465'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2011/01/creating-scrollable-divs-on-mobile.html' title='Creating scrollable divs on a Mobile device'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-8674154552796257516</id><published>2011-01-07T12:05:00.000-08:00</published><updated>2011-01-07T12:23:47.085-08:00</updated><title type='text'>Getting local HTML file to load in the Blackberry Playbook</title><content type='html'>I've been trying out the SDK for the Blackberry Playbook and one thing that was stumping me was how to load a local HTML file using the StageWebView in AIR 2.5.&lt;br /&gt;&lt;br /&gt;I placed the local HTML file in the root folder (in the same folder as the .mxml file) and tried to load it this way:&lt;br /&gt;&lt;br /&gt;**************&lt;br /&gt;&lt;br /&gt;import flash.media.StageWebView;&lt;br /&gt;&lt;br /&gt;private var webView:StageWebView = null;&lt;br /&gt;&lt;br /&gt;private function init():void{&lt;br /&gt;    // get the file location&lt;br /&gt;    var f:File = new File("app:/map-simple.html");&lt;br /&gt;&lt;br /&gt;    webView = new StageWebView();&lt;br /&gt;    webView.stage = this.stage;&lt;br /&gt;    webView.viewPort = new Rectangle( 0, 0, stage.stageWidth, stage.stageHeight );&lt;br /&gt;    webView.loadURL( f.url );&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;**************&lt;br /&gt;&lt;br /&gt;...but it didn't work. Fortunately, I stumbled on &lt;a href="http://www.mikechambers.com/blog/2008/11/06/getting-the-file-uri-of-a-file-in-an-air-apps-install-directory/"&gt;this post&lt;/a&gt; by Mike Chambers that explains a workaround and recoded the app this way:&lt;br /&gt;&lt;br /&gt;**************&lt;br /&gt;&lt;br /&gt;import flash.media.StageWebView;&lt;br /&gt;&lt;br /&gt;private var webView:StageWebView = null;&lt;br /&gt;&lt;br /&gt;private function init():void{&lt;br /&gt;&lt;br /&gt;    var fPath:String = new File(new File("app:/map-simple.html").nativePath).url;&lt;br /&gt;&lt;br /&gt;    webView = new StageWebView();&lt;br /&gt;    webView.stage = this.stage;&lt;br /&gt;    webView.viewPort = new Rectangle( 0, 0, stage.stageWidth, stage.stageHeight );&lt;br /&gt;    webView.loadURL( f.url );&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;***************&lt;br /&gt;&lt;br /&gt;This works great! &lt;br /&gt;&lt;br /&gt;By the way, I also tried to use the QNXStageWebView in the latest Blackberry SDK but the FlashBuilder (Burrito) compiler gave me the following error:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;A file found in a source-path must have an externally visible definition. If a definition in the file is meant to be externally visible, please put the definition in a package.&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;This apparently has been faced by other developers (&lt;a href="http://renaun.com/blog/2010/12/using-playbooks-qnxstagewebview-with-flex-hero-mobile/comment-page-1/#comment-488559"&gt;see here&lt;/a&gt;) using the QNXStageWebView and the Blackberry support boards indicate that this is a beta Class and has numerous issues -- so I decided not to try to find a workaround (which seems to involve digging up an older swc file). &lt;br /&gt;&lt;br /&gt;One caution, the AIR StageWebView is also still in beta and does not currently allow for communicating between the base app and the StageWebView object. In my case however, I am just trying to get a fully working HTML app to run on the Playbook.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-8674154552796257516?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/8674154552796257516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=8674154552796257516' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8674154552796257516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8674154552796257516'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2011/01/getting-local-html-file-to-load-in.html' title='Getting local HTML file to load in the Blackberry Playbook'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-71779600999052679</id><published>2010-11-11T20:10:00.000-08:00</published><updated>2010-11-11T20:13:53.138-08:00</updated><title type='text'>Convert string with carriage returns to one line in php</title><content type='html'>I have a database string containing new lines characters (\n) and needed to print it out with no linebreaks -- since it was being printed as a javascript variable. This script does the trick:&lt;br /&gt;&lt;br /&gt;$input = trim( preg_replace( '/\s+/', ' ', $input ) );  &lt;br /&gt;&lt;br /&gt;courtesy: http://www.codingforums.com/showthread.php?t=137009&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-71779600999052679?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/71779600999052679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=71779600999052679' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/71779600999052679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/71779600999052679'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/11/convert-string-with-carriage-returns-to.html' title='Convert string with carriage returns to one line in php'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-401265367873520134</id><published>2010-11-07T03:52:00.000-08:00</published><updated>2010-11-07T04:23:37.244-08:00</updated><title type='text'>Print booklets on  Mac</title><content type='html'>One feature that is missing on Mac Snow Leopard is the ability to print a booklet from a pdf. But here is a great free application that fills that void:&lt;br /&gt;&lt;br /&gt;http://bit.ly/2JupkE&lt;br /&gt;&lt;br /&gt;By the way, to print even and odd pages on a Mac you need to select the "Paper Handling" option in the "Preview" dropdown.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-401265367873520134?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/401265367873520134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=401265367873520134' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/401265367873520134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/401265367873520134'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/11/print-booklets-on-mac.html' title='Print booklets on  Mac'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-2986138155607845651</id><published>2010-11-04T11:08:00.000-07:00</published><updated>2010-11-04T11:11:53.257-07:00</updated><title type='text'>Create AIR app without a taskbar icon</title><content type='html'>I needed to create a chromeless AIR app that would act like the the old Active Desktop in Windows -- and did not show a taskbar icon that a user could close. Here is how it was done:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Create a new AIR app (for which a taskbar icon is required). This app spawns a new application component based on mx:Window with the HTMLLoader in it. I used a separate component for this so it could function independently from the main app. Child apps in AIR do *not* require an icon so you can set the type=NativeWindowType.LIGHTWEIGHT on this new component when you open it. As soon as this new window opens it dispatches a complete event. The main window listens for the complete event and then closes itself -- taking the taskbar icon with it. Since (I believe) in Windows 7 the shortcut "Windows/M" works from the items in the task bar, the fact that the child app is not in the task bar prevents it from being minimized by the shortcut. &lt;br /&gt;&lt;br /&gt;By the way, this seems to work only on Windows -- not Mac -- so a different solution would be required for that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-2986138155607845651?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/2986138155607845651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=2986138155607845651' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/2986138155607845651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/2986138155607845651'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/11/create-air-app-without-taskbar-icon.html' title='Create AIR app without a taskbar icon'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-1332275996900230231</id><published>2010-10-28T14:17:00.000-07:00</published><updated>2010-10-28T14:40:37.843-07:00</updated><title type='text'>Communicating between Javascript and Actionscript in an AIR application</title><content type='html'>Using the HTMLLoader class you can communicate between javascript and actionscript in the same application. This means that you can trigger AS3 functions from a loaded HTML page through javascript (and vice versa). Here is a quick sample:&lt;br /&gt;&lt;br /&gt;// AS3 code:&lt;br /&gt;&lt;br /&gt;var windowBounds:Rectangle = new Rectangle(0,0,1024,768);&lt;br /&gt;var htmlLoader:HTMLLoader = HTMLLoader.createRootWindow(true, null, false, windowBounds );&lt;br /&gt;htmlLoader.runtimeApplicationDomain = ApplicationDomain.currentDomain;&lt;br /&gt;htmlLoader.load(new URLRequest('myfile.html'));&lt;br /&gt;&lt;br /&gt;htmlLoader.addEventListener(Event.COMPLETE, onComplete);&lt;br /&gt;&lt;br /&gt;private function onComplete(e:Event):void{&lt;br /&gt;   // creates a new javascript function in the HTML page that map to the AS3 function&lt;br /&gt;  // you don't need to define these functions at all in the JS -- they become available automatically&lt;br /&gt;   htmlLoader.window.jsFunction = flashFunction;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private function flashFunction(msg:String):void{&lt;br /&gt;  trace("message: " + msg);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Once the onComplete() function runs,  it creates the link between the newly created HTML javascript function and  the AS3 function -- which can then be called directly in the HTML:&lt;br /&gt;&lt;br /&gt;HTML code:&lt;br /&gt;&lt;br /&gt;onclick="jsFunction('called from js');"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-1332275996900230231?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/1332275996900230231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=1332275996900230231' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/1332275996900230231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/1332275996900230231'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/10/communicating-between-javascript-and.html' title='Communicating between Javascript and Actionscript in an AIR application'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-5124041796176868287</id><published>2010-10-27T14:50:00.000-07:00</published><updated>2010-10-27T14:53:08.337-07:00</updated><title type='text'>Round time to nearest 30 seconds</title><content type='html'>I had a requirement to round the time for a video (in seconds) to the nearest 30 seconds. Not being so strong in math, I am grateful to be better at Googling. So here it is for anyone else in a similar situation:&lt;br /&gt;&lt;br /&gt;Math.round(myTime/30)*30&lt;br /&gt;&lt;br /&gt;Awesome and simple!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-5124041796176868287?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/5124041796176868287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=5124041796176868287' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/5124041796176868287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/5124041796176868287'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/10/round-time-to-nearest-30-seconds.html' title='Round time to nearest 30 seconds'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-8299128166162023865</id><published>2010-10-20T15:27:00.000-07:00</published><updated>2010-10-20T16:12:28.989-07:00</updated><title type='text'>Titanium gradient for buttonbar</title><content type='html'>Doesn't seem that the gradient works for the buttonbar either. So here is the workaround:&lt;br /&gt;&lt;br /&gt;myButtonBar = Ti.UI.createButtonBar({&lt;br /&gt;        id:'buttonbar',&lt;br /&gt;        height:40,&lt;br /&gt;        backgroundColor:'#663399',&lt;br /&gt;        style:Titanium.UI.iPhone.SystemButtonStyle.BAR,&lt;br /&gt;        labels:['Close Keyboard &gt;']&lt;br /&gt;    });&lt;br /&gt;&lt;br /&gt;Just use a background color and the Titanium.UI.iPhone.SystemButtonStyle.BAR as the style -- and the app will create a gradient for you -- from lighter to darker.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-8299128166162023865?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/8299128166162023865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=8299128166162023865' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8299128166162023865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8299128166162023865'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/10/titanium-gradient-for-buttonbar.html' title='Titanium gradient for buttonbar'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-6567363824846513238</id><published>2010-10-19T10:54:00.000-07:00</published><updated>2010-10-19T10:55:57.961-07:00</updated><title type='text'>Show and hide hidden files on a Mac</title><content type='html'>This command shows the hidden files in Finder on a Mac:&lt;br /&gt;&lt;br /&gt;$ defaults write com.apple.finder AppleShowAllFiles TRUE&lt;br /&gt;$ killall Finder&lt;br /&gt;&lt;br /&gt;and this hides them again:&lt;br /&gt;&lt;br /&gt;$ defaults write com.apple.finder AppleShowAllFiles FALSE&lt;br /&gt;$ killall Finder&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-6567363824846513238?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/6567363824846513238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=6567363824846513238' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6567363824846513238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6567363824846513238'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/10/show-and-hide-hidden-files-on-mac.html' title='Show and hide hidden files on a Mac'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-8500983836973481734</id><published>2010-10-08T10:20:00.000-07:00</published><updated>2010-10-08T10:25:28.857-07:00</updated><title type='text'>Titanium does not currently support the clipboard</title><content type='html'>Just a heads up for anyone that might stumble on this accidentally. Titanium Mobile does not currently support copying to the clipboard. I should have checked that before I coded a copy feature into my app...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-8500983836973481734?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/8500983836973481734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=8500983836973481734' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8500983836973481734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8500983836973481734'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/10/titanium-does-not-currently-support.html' title='Titanium does not currently support the clipboard'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-96820742534351334</id><published>2010-10-07T14:59:00.000-07:00</published><updated>2010-11-05T06:21:24.564-07:00</updated><title type='text'>Time Machine issues when hard drive is partitioned</title><content type='html'>I have a Mac Book Pro (Snow Leopard) and set up Time Machine  using a 1 TB Seagate external USB hard drive. The first time I set it up, I partitioned the drive into 600GB and 400GB and used the 600GB partition for Time Machine -- leaving the 400 GB partition for standard backups. However I found that the behavior of Time Machine was very buggy. For instance, if I tried to enter TM with any programs open, the Mac would freeze and I would have to restart.&lt;br /&gt;&lt;br /&gt;So in order to use TM I had to close every program I had running. Secondly, about a month ago I maxed out the 600GB and TM stopped working altogether. It would just fail when I tried to back up.&lt;br /&gt;&lt;br /&gt;In any event, I reformatted the drive to a single 1TB partition and now Time Machine works exactly as advertised...&lt;br /&gt;&lt;br /&gt;UPDATE (November 5): After a few months I have had another error that the HD cannot be used by Time Machine and cannot be repaired. Either the HD is defective for Time Machine just doesn't play nice with it...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-96820742534351334?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/96820742534351334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=96820742534351334' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/96820742534351334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/96820742534351334'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/10/time-machine-issues-when-hard-drive-is.html' title='Time Machine issues when hard drive is partitioned'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-3466285631795418460</id><published>2010-10-07T14:14:00.000-07:00</published><updated>2010-10-07T14:31:41.617-07:00</updated><title type='text'>Creating a Titanium gradient button for iPhone</title><content type='html'>This took a while to figure out. I wanted to get a gradient button in Titanium but there were a number of variables that didn't seem to work properly. Here is a finished button with a gradient from black to lighter gray:&lt;br /&gt;&lt;br /&gt;closeButton = Titanium.UI.createButton({&lt;br /&gt;       title:'Close',&lt;br /&gt;       width:150,&lt;br /&gt;       height:40,&lt;br /&gt;       style:Titanium.UI.iPhone.SystemButtonStyle.PLAIN,&lt;br /&gt;       borderRadius:10,&lt;br /&gt;       font:{fontSize:16,fontFamily:_fontFamily,fontWeight:'bold'},&lt;br /&gt;       backgroundGradient:{type:'linear',&lt;br /&gt;   colors:['#000001','#666666'],&lt;br /&gt;   startPoint:{x:0,y:0},&lt;br /&gt;   endPoint:{x:2,y:50},&lt;br /&gt;   backFillStart:false},&lt;br /&gt;       borderWidth:1,&lt;br /&gt;       borderColor:'#666'&lt;br /&gt;   });&lt;br /&gt;&lt;br /&gt;It seems that a few items are critical to make it work:&lt;br /&gt;&lt;br /&gt;1. You have to define the style as "style:Titanium.UI.iPhone.SystemButtonStyle.PLAIN" -- BORDERED will not work and if you don't have a style it also won't show.&lt;br /&gt;2. Make sure that the gradient property for backFillStart is false.&lt;br /&gt;3. There seems to be a bug when you put in #000000 as one of the colors. You need to set it to #000001 (or something like that), in order to get black to show&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-3466285631795418460?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/3466285631795418460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=3466285631795418460' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/3466285631795418460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/3466285631795418460'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/10/creating-titanium-gradient-button-for.html' title='Creating a Titanium gradient button for iPhone'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-3180985520044965512</id><published>2010-09-26T11:34:00.001-07:00</published><updated>2010-09-26T17:48:53.906-07:00</updated><title type='text'>Titanium Titanium.App.Properties problem</title><content type='html'>Here is another case where in Titanium the iPhone simulator successfully runs a feature that fails on the iPhone. In this case its the Titanium.App.Properties. This is supposed you allow you save global variables. From the &lt;a href="http://developer.appcelerator.com/apidoc/mobile/latest/Titanium.App.Properties-module"&gt;documentation&lt;/a&gt;, you set it up like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Save variable: &lt;/span&gt;&lt;br /&gt;Titanium.App.Properties.setString("myVar","myValue");&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Retrieve variable:&lt;/span&gt;&lt;br /&gt;Titanium.App.Properties.getString("myVar"); '// returns "myValue"&lt;br /&gt;&lt;br /&gt;This works fine on the simulator but fails on the iPhone unless you follow two additional steps:&lt;br /&gt;&lt;br /&gt;1. From the Kitchen Sink project -- copy /modules/iphone/settings.bundle&lt;br /&gt;2. Create a /modules/iphone folder in your project and paste the settings.bundle file there&lt;br /&gt;3. Make sure to name all your variables with a "_preference" suffix. So our examples above should be:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Save variable: &lt;/span&gt;&lt;br /&gt;Titanium.App.Properties.setString("myVar_preference","myValue");&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Retrieve variable:&lt;/span&gt;&lt;br /&gt;Titanium.App.Properties.getString("myVar_preference"); '// returns "myValue"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-3180985520044965512?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/3180985520044965512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=3180985520044965512' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/3180985520044965512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/3180985520044965512'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/09/titanium-titaniumappproperties-problem.html' title='Titanium Titanium.App.Properties problem'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-6853997870844311648</id><published>2010-09-26T10:02:00.001-07:00</published><updated>2010-09-26T10:06:38.480-07:00</updated><title type='text'>Titanium build and iPhone simulator issues</title><content type='html'>I've found that the iPhne simulator and Titaniums build process are quite buggy. For instanace I have had numerous occasions where for no apparent reason Titanium refuses to launch in the simulator. Sometimes there is an error message -- like the iPhone SDK was installed in the wrong place -- and other times it launches and then just shuts down without an error code.&lt;br /&gt;&lt;br /&gt;I've found that when there is no obvious reason for the issue, I create a new project and then copy all of the assets from the Resources folder of the original project and place them in the new project Resources folder and (usually) we're back in business.&lt;br /&gt;&lt;br /&gt;It's a pain but after all it &lt;span style="font-weight: bold;"&gt;is&lt;/span&gt; free software! :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-6853997870844311648?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/6853997870844311648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=6853997870844311648' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6853997870844311648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6853997870844311648'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/09/titanium-build-and-iphone-simulator.html' title='Titanium build and iPhone simulator issues'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-878971900132334023</id><published>2010-09-25T21:13:00.000-07:00</published><updated>2010-09-26T04:25:17.223-07:00</updated><title type='text'>Unable to write to filesystem using Titanium</title><content type='html'>This took several hours to figure out...&lt;br /&gt;&lt;br /&gt;In Titanium Mobile it allows you to create and write to files in the Resources directory (Titanium.Filesystem.resourcesDirectory)  using the emulator, but it fails when you try to run it on the iPhone. This is because you don't have actual write permissions on that directory -- you need to save data to the Titanium.Filesystem.applicationDataDirectory.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Here is how you write to a file: &lt;/span&gt;(btw -- if the file does not already exist, it creates it automatically -- you don't need to use the Ti.Filesystem.createFile() method)&lt;br /&gt;&lt;br /&gt;var f = Titanium.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory, 'myFile.txt');&lt;br /&gt;f.write('this is the new file');&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;To read the contents of a file:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;var g = Titanium.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory, 'myFile.txt');&lt;br /&gt;var contents = g.open();&lt;br /&gt;Titanium.API.info("Contents of the file = " + contents.text);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-878971900132334023?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/878971900132334023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=878971900132334023' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/878971900132334023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/878971900132334023'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/09/unable-to-write-to-filesystem-using.html' title='Unable to write to filesystem using Titanium'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-4299957657327337699</id><published>2010-09-23T14:29:00.000-07:00</published><updated>2010-09-23T14:39:56.446-07:00</updated><title type='text'>Window height in Titanium/iPhone</title><content type='html'>Just a caution: while using Appcelerator Titanium, we aware that Titanium.Platform.displayCaps.platformHeight includes the iPhone status bar height -- which is essentially unusable real estate since it always shows in an application. So you have to deduct 20 to get the actual usable space on an iPhone.&lt;br /&gt;&lt;br /&gt;For instance:&lt;br /&gt;&lt;br /&gt;I created a buttonbar (with a height of 50) and wanted position it at the bottom of the screen. So I thought that the easiest way would be to use the &lt;span style="font-weight: bold;"&gt;Titanium.Platform.displayCaps.platformHeight&lt;/span&gt; as my layout height and then just set the buttonbar to have a top value of&lt;span style="font-weight: bold;"&gt;  Titanium.Platform.displayCaps.platformHeight - myButtonBar.height&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;However, this always placed the buttonbar too low on the screen. It was only when I modified the variable to account for the 20 pixel status bar did everything line up properly:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Titanium.Platform.displayCaps.platformHeight - myButtonBar.height - 20&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-4299957657327337699?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/4299957657327337699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=4299957657327337699' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/4299957657327337699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/4299957657327337699'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/09/window-height-in-titaniumiphone.html' title='Window height in Titanium/iPhone'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-2021622632349626965</id><published>2010-09-22T12:53:00.000-07:00</published><updated>2010-09-22T14:12:43.318-07:00</updated><title type='text'>"Error creating project" in Titanium</title><content type='html'>I had installed Titanium a few months ago and had not used it for a while but when I tried to create a new project -- or compile an old one -- I kept getting errors. &lt;br /&gt;&lt;br /&gt;In the end, I installed the Android SDKs and followed the advice in this post:&lt;br /&gt;&lt;br /&gt;https://developer.appcelerator.com/question/34821/build-failed&lt;br /&gt;&lt;br /&gt;but without installing the patch. &lt;br /&gt;&lt;br /&gt;After this was all done -- and updated -- Titanium allowed me to correctly create a new project from iPhone but it still doesn't find the Android SDK. I'll leave that for another day....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-2021622632349626965?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/2021622632349626965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=2021622632349626965' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/2021622632349626965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/2021622632349626965'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/09/error-creating-project-in-titanium.html' title='&quot;Error creating project&quot; in Titanium'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-7803408837379885965</id><published>2010-09-22T12:01:00.000-07:00</published><updated>2010-09-22T14:34:09.084-07:00</updated><title type='text'>Phonegap for iPhone development</title><content type='html'>For what it might be worth to others, I have tried Phonegap for a while now and although its relatively easy to get started if you have a straight forward html/javascript project, it doesn't seem to be so simple to access the native functions of the iPhone. For instance, I tried to implement the tab bar and after several tries found that it does not position properly -- nor could I quite figure out how to add an icon to a tab item. &lt;br /&gt;&lt;br /&gt;I'm going to try and use Titanium and see how hard it is to port the existing code to it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-7803408837379885965?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/7803408837379885965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=7803408837379885965' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/7803408837379885965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/7803408837379885965'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/09/phonegap-for-iphone-development.html' title='Phonegap for iPhone development'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-8584931986470527792</id><published>2010-09-21T07:48:00.000-07:00</published><updated>2010-09-22T13:08:07.171-07:00</updated><title type='text'>Firefox download manager</title><content type='html'>After failing for the second time to successfully download the newest XCode and iPhone SDK (3+Gb) I found this list of download managers on LifeHacker:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://lifehacker.com/347827/top-10-free-download-managers"&gt;http://lifehacker.com/347827/top-10-free-download-managers&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It seems the highest rated is the Firefox extension: &lt;a href="http://www.downthemall.net/"&gt;Download Them All!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Update: Turns out that Apple has a non-resume on their SDK download so I had to try a few more times before I got the whole thing down in one try....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-8584931986470527792?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/8584931986470527792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=8584931986470527792' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8584931986470527792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8584931986470527792'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/09/firefox-download-manager.html' title='Firefox download manager'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-8691985998713729800</id><published>2010-09-20T18:20:00.000-07:00</published><updated>2010-09-20T18:23:40.770-07:00</updated><title type='text'>XCode shows: "No provisioned iPhone device is connected"</title><content type='html'>In case this is helpful for anyone else. I was trying to install a demo iPhone project on my iPod Touch and got the error: "No provisioned iPhone device is connected". I knew that I had the provisioning set up -- but it turns out that I had not upgraded the SDK  -- so while the iPod Touch was 4.0, the SDK was 3.2. Once the SDK was updated the install went fine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-8691985998713729800?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/8691985998713729800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=8691985998713729800' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8691985998713729800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8691985998713729800'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/09/xcode-shows-no-provisioned-iphone.html' title='XCode shows: &quot;No provisioned iPhone device is connected&quot;'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-2244575986896841252</id><published>2010-09-17T07:04:00.000-07:00</published><updated>2010-09-17T07:13:11.488-07:00</updated><title type='text'>Solved - Problem connecting Mac using Check Point SecureClient</title><content type='html'>On a Mac (Snow Leopard) I was having issues using a Check Point Secure access. I kept getting "Gateway not responding | Connection failed". I had installed the latest software from Check Point (Check Point VPN-1 SecureClient NG with Application Intelligence - R56 HFA2 Build Number 015), but I was still having a problem. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A friend finally suggested that I try disabling NAT filtering in my modem. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This solved it!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;  &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-2244575986896841252?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/2244575986896841252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=2244575986896841252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/2244575986896841252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/2244575986896841252'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/09/solved-problem-connecting-mac-using.html' title='Solved - Problem connecting Mac using Check Point SecureClient'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-3843468580288102785</id><published>2010-09-04T15:08:00.000-07:00</published><updated>2010-09-04T15:31:59.306-07:00</updated><title type='text'>Restrictions on flash fullscreen mode</title><content type='html'>From &lt;a href="http://www.adobe.com/devnet/flashplayer/articles/full_screen_mode.html"&gt;Adobe&lt;/a&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The ActionScript that initiates full-screen mode can be called only  in response to a mouse click or keypress. If it is called in other  situations, it will be ignored (in ActionScript 2.0) or throw an  exception (in ActionScript 3.0).&lt;/li&gt;&lt;li&gt;Users cannot enter text in text input fields while in  full-screen mode. All keyboard input and key-related ActionScript is  disabled while in full-screen mode, with the exception of the keyboard  shortcuts that take the viewer out of full-screen mode.&lt;/li&gt;&lt;/ul&gt;That last bit is sad news if you want to allow a user to share via email while in fullscreen mode :-(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-3843468580288102785?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/3843468580288102785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=3843468580288102785' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/3843468580288102785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/3843468580288102785'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/09/user-cannot-edit-input-box-in-as3-while.html' title='Restrictions on flash fullscreen mode'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-2486272097293136930</id><published>2010-06-18T20:02:00.000-07:00</published><updated>2010-06-18T20:05:49.041-07:00</updated><title type='text'>Very cool Flash debugger tool</title><content type='html'>While trying to do some live web debugging of a flash app I came across this great Air app that lets you see all of your trace and error statements as the app is running. It outouts the standard trace commands so there is no need to import any new classes and write to a console.&lt;br /&gt;&lt;br /&gt;Awesome!!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bit.ly/ck3KpN"&gt;http://bit.ly/ck3KpN&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-2486272097293136930?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/2486272097293136930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=2486272097293136930' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/2486272097293136930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/2486272097293136930'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/06/very-cool-flash-debugger-tool.html' title='Very cool Flash debugger tool'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-8910013777772172050</id><published>2010-06-13T13:32:00.000-07:00</published><updated>2010-06-13T13:42:17.149-07:00</updated><title type='text'>Flash CS cannot find fl.core and fl.video packages</title><content type='html'>This is just strange. I was trying to import the classes in fl.core and fl.video into a Flash project and the compiler gave a "Definition could not be found." error. Apparently this has been a problem since (at least) Flash CS3. The IDE does not automatically add those libraries to the classpath so you need to do it yourself.&lt;br /&gt;&lt;br /&gt;Here are the instructions:&lt;br /&gt;&lt;br /&gt;Open Flash&lt;br /&gt;Go to Edit&gt;Preferences&gt;Actionscript&gt;ActionScript3 Settings&gt;&lt;br /&gt;&lt;br /&gt;and add these two paths to the Source Path:&lt;br /&gt;&lt;br /&gt;$(AppConfig)/Component Source/Actionscript 3.0/User Interface&lt;br /&gt;$(AppConfig)/Component Source/Actionscript 3.0/FLVPlayback&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-8910013777772172050?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/8910013777772172050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=8910013777772172050' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8910013777772172050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8910013777772172050'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/06/flash-cs-cannot-find-flcore-and-flvideo.html' title='Flash CS cannot find fl.core and fl.video packages'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-6432645023600499621</id><published>2010-05-21T14:40:00.000-07:00</published><updated>2010-05-21T15:19:49.918-07:00</updated><title type='text'>Hiding dotted lines around links in Firefox</title><content type='html'>This is just simple and brilliant:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sonspring.com/journal/removing-dotted-links"&gt;http://sonspring.com/journal/removing-dotted-links&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;/* this removes the dotted line around everything linked item */&lt;br /&gt;&lt;br /&gt;:-moz-any-link:focus {&lt;br /&gt;  outline: none;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-6432645023600499621?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/6432645023600499621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=6432645023600499621' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6432645023600499621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6432645023600499621'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/05/hiding-dotted-lines-around-links-in.html' title='Hiding dotted lines around links in Firefox'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-2813596623848301486</id><published>2010-05-14T10:10:00.000-07:00</published><updated>2010-05-14T10:12:10.062-07:00</updated><title type='text'>Adding shadows to divs</title><content type='html'>Safari and Firefox also have different ways of adding shadows to divs:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;// safari&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;-webkit-box-shadow: 1px 1px 3px #888;&lt;/div&gt;&lt;div&gt;//mozilla&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;-moz-box-shadow: 1px 1px 3px #888;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-2813596623848301486?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/2813596623848301486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=2813596623848301486' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/2813596623848301486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/2813596623848301486'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/05/adding-shadows-to-divs.html' title='Adding shadows to divs'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-2500422991554647852</id><published>2010-05-14T10:08:00.001-07:00</published><updated>2010-05-14T10:09:43.375-07:00</updated><title type='text'>Adding gradients to divs</title><content type='html'>&lt;div&gt;Safari and Firefox require different css to create gardients:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;#&lt;/span&gt;myDiv{&lt;/div&gt;&lt;div&gt;//Safari:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;background-image: -webkit-gradient(linear,left top,left bottom, from(#666), to(#000));&lt;/div&gt;&lt;div&gt;//Mozilla:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;background: -moz-linear-gradient(top, #666, #000);&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-2500422991554647852?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/2500422991554647852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=2500422991554647852' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/2500422991554647852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/2500422991554647852'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/05/adding-gradients-to-divs.html' title='Adding gradients to divs'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-5443063734892221865</id><published>2010-05-04T13:59:00.000-07:00</published><updated>2010-05-04T14:33:11.842-07:00</updated><title type='text'>How to delete a post from a Wordpress database</title><content type='html'>For some reason the data that I inserted into a post got corrupted and I was unable to delete or edit it within the Wordpress console. So to manually delete a post from the database just do this update:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;update (name of posts table) set post_status = 'trash'  where id = (ID of offending post)&lt;/div&gt;&lt;div&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/7692299817745629887-5443063734892221865?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/5443063734892221865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=5443063734892221865' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/5443063734892221865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/5443063734892221865'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/05/how-to-delete-post-from-wordpress.html' title='How to delete a post from a Wordpress database'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-7582252800420935338</id><published>2010-03-03T06:41:00.000-08:00</published><updated>2010-03-03T06:55:50.205-08:00</updated><title type='text'>Unable to see SD card on Blackberry</title><content type='html'>I was helping someone today to put some documents on their Blackberry Bold 9000 and for some reason when I connected it to my PC I a drive letter was assigned to the Blackberry itself but not the SD card. Doing a bit of Googling it seems that this is a hige problem for users and there were hundreds of hits for this exact problem -- including people trying to use the Roxio Media Manager. In any case, &lt;a href="http://forums.crackberry.com/f5/roxio-media-manager-not-reading-sd-card-4718/"&gt;one post&lt;/a&gt; had the answer that worked for me and here is the step by step solution:&lt;br /&gt;&lt;br /&gt;1. Click Start&gt;Run  and then type: compmgmt.msc&lt;br /&gt;2. Select Disk Management&lt;br /&gt;3. In the right panel you should see both the Blackberry and the SD card as separate devices&lt;br /&gt;4. Right click the SD card and select: Change Drive Letter and Paths&lt;br /&gt;5. Click "Change" and then select the drive letter you want to assign to the device. Make sure that you do not assign an already assigned drive letter. If in doubt, right click your My Computer icon on the desktop and choose Map Network drive, then open the dropdown for the drives and note one of the unassigned drive letters.&lt;br /&gt;6. Click OK&lt;br /&gt;&lt;br /&gt;Hopefully you'll now be able to see the SD card and can treat it like any other USB drive. All in all this is way better than using the Roxio Media Manager app(which is a 200MB+ download!). But in any case once you've assigned the drive properly Roxio should now be able to access the drive as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-7582252800420935338?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/7582252800420935338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=7582252800420935338' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/7582252800420935338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/7582252800420935338'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/03/unable-to-see-sd-card-on-blackberry.html' title='Unable to see SD card on Blackberry'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-4587511314973439486</id><published>2010-02-20T00:02:00.001-08:00</published><updated>2010-02-20T00:10:06.290-08:00</updated><title type='text'>Comparing two objects in jQuery</title><content type='html'>Had a strange problem in comparing two objects in js. I am dynamically creating a number of divs, adding them to the DOM and also placing them into an array in order to keep tack of what divs are hidden or shown at a given time. Later, I tried to loop through all of the divs and compare them using the === operator but they never returned true -- even though both objects were divs and even showed the same innerHTML.&lt;br /&gt;&lt;br /&gt;Anway, a Google search turned up a &lt;a href="http://www.codesmell.org/blog/2009/08/jquery-equals/"&gt;suggestion &lt;/a&gt;to add this function to the jQuery prototype:&lt;br /&gt;&lt;br /&gt;           $.fn.equals = function(compareTo) {              &lt;br /&gt;                 if (!compareTo || !compareTo.length || this.length!=compareTo.length)              &lt;br /&gt;                 {              &lt;br /&gt;                   return false;              &lt;br /&gt;                 }              &lt;br /&gt;                 for (var i=0; i&lt;this&gt;&lt;br /&gt;                   if (this[i]!==compareTo[i]) {              &lt;br /&gt;                     return false;              &lt;br /&gt;                   }              &lt;br /&gt;                 }              &lt;br /&gt;                 return true;              &lt;br /&gt;               }&lt;br /&gt;&lt;br /&gt;Problem fixed!&lt;/this&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-4587511314973439486?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/4587511314973439486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=4587511314973439486' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/4587511314973439486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/4587511314973439486'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/02/comparing-two-objects-in-jquery.html' title='Comparing two objects in jQuery'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-802048376946200200</id><published>2010-02-16T07:47:00.000-08:00</published><updated>2010-02-16T09:48:03.871-08:00</updated><title type='text'>More problems with the AS3 Loader Class</title><content type='html'>I've built an AS3 preloader so a Flash app can preload assets before starting. The app uses a number of Loaders to load about 15 swfs and when the LoaderEvent.INIT is fired it increments the index. When all of the assets have loaded, it starts the app and adds the contents of the Loaders to the display list:&lt;br /&gt;&lt;br /&gt;myclip.addChild(MovieClip(myLoader.content);&lt;br /&gt;&lt;br /&gt;However, when the app is run from the web occasionally it throws an error that a myLoader.content is null -- so it can't be added to the display list.&lt;br /&gt;&lt;br /&gt;I assume that this means that a false INIT event is being fired -- or the player is not always seeing that the content is available to add.&lt;br /&gt;&lt;br /&gt;In any event, I wound up setting a Timer that waits 2 seconds before adding the content to the display list. So far this seems to solve the problem for me -- but not the bug....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-802048376946200200?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/802048376946200200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=802048376946200200' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/802048376946200200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/802048376946200200'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/02/more-problems-with-as3-loader-class.html' title='More problems with the AS3 Loader Class'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-4027332103958398872</id><published>2010-02-06T09:52:00.000-08:00</published><updated>2010-02-06T10:02:26.840-08:00</updated><title type='text'>Great javascript editor - Aptana Studio</title><content type='html'>I have been using Dreamweaver for over 10 years and never thought I would need  another html code editor -- and ponied up the price for updates every few years. But now that I'm spending increasing time doing javascript development I found that it just wasn't that good for code completion/hinting/documentation etc. After a bit of searching I came across &lt;a href="http://www.aptana.com/"&gt;Aptana Studio&lt;/a&gt; and absolutely love it. It's built on Eclipse and has everything I could hope for js development -- including being able to install plugins for various frameworks like JQuery, DoJo and more. Plus you can even add a plugin for AIR development.&lt;br /&gt;&lt;br /&gt;To install the JQuery plugin just go to:&lt;br /&gt;&lt;br /&gt;Help&gt;Install Aptana features&gt;Ajax&gt;JQuery Support&lt;br /&gt;&lt;br /&gt;Did I mention that its free?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-4027332103958398872?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/4027332103958398872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=4027332103958398872' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/4027332103958398872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/4027332103958398872'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/02/great-javascript-editor-aptana-studio.html' title='Great javascript editor - Aptana Studio'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-1841681216138798267</id><published>2010-01-28T10:26:00.001-08:00</published><updated>2010-01-28T10:32:08.998-08:00</updated><title type='text'>IE7 javascript error in for each loops</title><content type='html'>One of the reasons I like Flash is the fact that one piece of code will work on every browser. But not so with javascript. Case in point:&lt;br /&gt;&lt;br /&gt;If you have an array (langArray) in javascript and want to loop through it the common way is this:&lt;br /&gt;&lt;br /&gt;for each(var item in langArray){&lt;br /&gt;...&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;but this causes IE 7 to choke. Instead you have to use the more verbose:&lt;br /&gt;&lt;br /&gt;for(var item=0;item&lt;langArray.length;i++) {&lt;br /&gt;  var item = langArray[i];&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/7692299817745629887-1841681216138798267?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/1841681216138798267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=1841681216138798267' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/1841681216138798267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/1841681216138798267'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/01/ie7-javascript-error-in-for-each-loops.html' title='IE7 javascript error in for each loops'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-6914829248534189901</id><published>2010-01-21T04:28:00.000-08:00</published><updated>2010-01-21T04:47:19.212-08:00</updated><title type='text'>Flash elements disappear in full screen mode</title><content type='html'>I was surprised to find that a button and a dropdown list disappeared when I went full screen on a Flash app. Turns out that if you use an FLVPlayerback component it forces everything else on screen to disappear if you go fullscreen. Nice feature unless you don't want that to happen.&lt;br /&gt;&lt;br /&gt;To fix it:&lt;br /&gt;&lt;br /&gt;myFlvPlayback.fullScreenTakeOver = false;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Thanks Adobe forums :-)&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-6914829248534189901?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/6914829248534189901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=6914829248534189901' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6914829248534189901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6914829248534189901'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/01/flash-elements-disappear-in-full-screen.html' title='Flash elements disappear in full screen mode'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-351968438772633913</id><published>2010-01-07T01:23:00.000-08:00</published><updated>2010-01-07T01:52:08.402-08:00</updated><title type='text'>Working with AS3 Video cuepoints</title><content type='html'>I have been working with cuePoints in flash video and so far have been unable to add actionscript cuePoints and then seek to them. (Update: see solution below)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Encode a video: "myVideo.flv" without embedded cuePoints&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Attach the video to a FLV playback component "my_FLVPlybk"&lt;/li&gt;&lt;li&gt;Add cuepoints like this: my_FLVPlybk.addASCuePoint(15, "Cue1");&lt;/li&gt;&lt;li&gt;Set up an event Listener to see if the cuepoints are there:&lt;/li&gt;&lt;/ul&gt;my_FLVPlybk.addEventListener(MetadataEvent.CUE_POINT, cp_listener);&lt;br /&gt;&lt;br /&gt;function cp_listener(eventObject:MetadataEvent):void {&lt;br /&gt;        trace("Elapsed time in seconds: " + my_FLVPlybk.playheadTime);&lt;br /&gt;        trace("Cue point name is: " + eventObject.info.name);&lt;br /&gt;        trace("Cue point type is: " + eventObject.info.type);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;When you run the app, it all works expected. Once the cuepoints are reached it traces out each point. However when you try to go to the cuepoint using this method:&lt;br /&gt;&lt;br /&gt;my_FLVPlybk.seekToNavCuePoint("Cue1");&lt;br /&gt;&lt;br /&gt;It fails with this error:&lt;br /&gt;&lt;br /&gt;VideoError: 1003: Invalid seek&lt;br /&gt;    at fl.video::FLVPlayback/seekToNavCuePoint()&lt;br /&gt;&lt;br /&gt;Now, this last bit of code works fine if you embed navigation cuepoints in the video itself -- using Adobe Media Encoder (FLV only -- F4V seems not to support cuepoints--at least not well), but according to Adobe it should be possible to add the cuepoints and reference them through actionscript only. In this particular case its not a problem for me since its easier to add the cuepoints to the encoded video, but if anyone has come up with a solution, please post it!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;***************************&lt;br /&gt;&lt;br /&gt;Update: I found the solution on another forum (http://bit.ly/8EdgdN):&lt;br /&gt;&lt;br /&gt;The answer is to locate the cuePoint using findCuePoint() -- which returns an associative array of the point -- and then get the value of "time".  At this point you can just do a seek. The final code would be like this:&lt;br /&gt;&lt;br /&gt;my_FLVPlybk.seek(my_FLVPlybk.findCuePoint("Cue4", CuePointType.ACTIONSCRIPT)["time"]);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-351968438772633913?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/351968438772633913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=351968438772633913' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/351968438772633913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/351968438772633913'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2010/01/working-with-as3-video-cuepoints.html' title='Working with AS3 Video cuepoints'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-5461061095475463852</id><published>2009-12-16T05:41:00.001-08:00</published><updated>2009-12-16T05:45:13.206-08:00</updated><title type='text'>Making sense out of MVC in Flex</title><content type='html'>Now that the video project is nearly out of the way, I'm anxious to get back more to Flex and to do this MVC is a top priority. Looking around the web there are a lot of tutorials but most focus on using frameworks like Cairngorm and PureMVC and very light info on the concepts of MVC and how they are implemented in AS3. Fortunately I stumbled upon this one--from the writers of an OReilly book on the subject -- and it's so good I'm thinking about buying the book:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.as3dp.com/category/design-patterns/mvc/"&gt;http://www.as3dp.com/category/design-patterns/mvc/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-5461061095475463852?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/5461061095475463852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=5461061095475463852' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/5461061095475463852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/5461061095475463852'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/12/making-sense-out-of-mvc-in-flex.html' title='Making sense out of MVC in Flex'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-2858388850129673151</id><published>2009-11-10T06:39:00.000-08:00</published><updated>2009-11-10T07:09:10.162-08:00</updated><title type='text'>Subtitle issues in DVD Studio Pro</title><content type='html'>After a lot of experimenting, we have settled on the following subtitle settings for the NTSC and PAL versions of the DVD.&lt;br /&gt;&lt;br /&gt;PAL: Helvetica Bold 34pt&lt;br /&gt;NTSC: Arial Bold 29pt&lt;br /&gt;&lt;br /&gt;We found that when we used Helvetica Bold for the NTSC version, the lower case "w" was a lot smaller than the other letters and looked very odd. Also the dot on the lower case "i" was not clear so it looked more like an "l".&lt;br /&gt;&lt;br /&gt;We also liked that the top stem of the "t" was angled down a bit, making it a bit easier to read. Going back we might have used Arial for the PAL version too but we didn't have the time to test it.&lt;br /&gt;&lt;br /&gt;For Persian text we found that the only good way of getting subtitles to look good was to do them in Photoshop -- one by one. We used a black font with a bold yellow outline, saved it as a png and imported into DVDSP. This will show up as a white letter and black outline. Make sure the outline is thick enough.&lt;br /&gt;&lt;br /&gt;To do this for both NTSC and PAL:&lt;br /&gt;&lt;br /&gt;1. Create the subtitle at 1024x576 (PAL 16:9). White background, black letter, yellow outline. Make sure to create guides for the title safe and keep the subtitle within this area.&lt;br /&gt;&lt;br /&gt;2. Keep the subtitles in a separate folder and save backups--you'll use this set of subs to create the compressed NTSC and PAL subtitles.&lt;br /&gt;&lt;br /&gt;3. Once you have all of the subs do a batch convert of them and resize them to 720x576. This will give you the PAL subtitles.&lt;br /&gt;&lt;br /&gt;4. The do another batch conversion of the original set and resize them to 720x480. This is the required size for NTSC.&lt;br /&gt;&lt;br /&gt;As far as our timing between the subtitles, we used a 4 frame gap -- but in retrospect we could have used 3 or 2 if necessary. It was also a happy accident that we did all of this on the PAL timeline (at 25 frames per second) and we were able to use the exact same stl file for NTSC. We didn't test this but I'm pretty sure that DVDSP would cough up an stl file for a PAL project that used the 29 frames per second timing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-2858388850129673151?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/2858388850129673151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=2858388850129673151' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/2858388850129673151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/2858388850129673151'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/11/subtitle-isues-for-dvd-studio-pro.html' title='Subtitle issues in DVD Studio Pro'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-519285006183618100</id><published>2009-10-16T08:03:00.000-07:00</published><updated>2009-10-16T08:09:38.228-07:00</updated><title type='text'>Keylistener failing in Flex with creationComplete</title><content type='html'>Just a quick note. It appears that the stage does not get initialized in a Flex app until the applicationComplete event is fired (not creationComplete).&lt;br /&gt;&lt;br /&gt;So if you have an init() function that sets up the listener like this:&lt;br /&gt;&lt;br /&gt;private function init():void{&lt;br /&gt;  stage.addEventListener(KeyboardEvent.KEY_DOWN, myKeyDownHandler);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;calling it from the application tag like this will fail:&lt;br /&gt;&lt;br /&gt;&lt;application creationcomplete="init()"&gt;&lt;br /&gt;&lt;br /&gt;but this will work:&lt;br /&gt;&lt;br /&gt;&lt;application applicationcomplete="init()"&gt;&lt;/application&gt;&lt;/application&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-519285006183618100?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/519285006183618100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=519285006183618100' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/519285006183618100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/519285006183618100'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/10/keylistener-in-flex.html' title='Keylistener failing in Flex with creationComplete'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-1088941196012812512</id><published>2009-10-16T01:13:00.000-07:00</published><updated>2009-10-16T01:58:39.861-07:00</updated><title type='text'>AS3 writeUTF vs writeMultiByte with diacriticals, curly quotes and other special characters</title><content type='html'>I'm working on an Air app that allows a user to modify blocks of video subtitle timecodes. The user can  open an stl file, splits the file into an arrayCollection and puts it into a datagrid. They can then select a block of timecodes and adjust them based on the modified start time. This will be a huge timesaver since the film we had completed required a re-edit and we have thousands of subtitles that will now need to be changed as a  result.&lt;br /&gt;&lt;br /&gt;In any event, when the work is done the user can save the file to the system. In the save process, I naturally used the writeUTF() method but found that although it's supposed to save using utf-8 encoding, things like diacritics, question marks, curly apostrophes and quotes were broken in the resulting file.&lt;br /&gt;&lt;br /&gt;So what should have looked like this: “This is a quote”&lt;br /&gt;Looked like this: â€œThis was a quoteâ€o&lt;br /&gt;&lt;br /&gt;However, if you use the writeMultiByte() method and set the encoding to utf-8 it works perfectly.&lt;br /&gt;&lt;br /&gt;So instead of : fileStream.writeUTF(myText);&lt;br /&gt;try: fileStream.writeMultiByte(myText,"utf-8");&lt;br /&gt;&lt;br /&gt;Since Google came up empty for search for the answer to this problem I though I would post this. Maybe it will help someone else....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-1088941196012812512?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/1088941196012812512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=1088941196012812512' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/1088941196012812512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/1088941196012812512'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/10/as3-writeutf-vs-writemultibyte-with.html' title='AS3 writeUTF vs writeMultiByte with diacriticals, curly quotes and other special characters'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-2274420670064554949</id><published>2009-10-14T23:07:00.000-07:00</published><updated>2009-10-14T23:13:57.925-07:00</updated><title type='text'>Great replaceAll in AS3</title><content type='html'>Simple and powerful. Found at:&lt;br /&gt;&lt;a href="http://snipplr.com/view/10998/replace-all/"&gt;&lt;br /&gt;http://snipplr.com/view/10998/replace-all/&lt;/a&gt;&lt;br /&gt;&lt;div class="de1"&gt;&lt;span class="kw2"&gt;&lt;span style="font-family:monospace;"&gt;&lt;br /&gt;var theContent:String = "Test String with lots of t's"&lt;br /&gt;trace(replace(theContent, "t", "z"));&lt;br /&gt;&lt;br /&gt;function replace(str:String, fnd:String, rpl:String):String{&lt;br /&gt;   return str.split(fnd).join(rpl);&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-2274420670064554949?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/2274420670064554949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=2274420670064554949' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/2274420670064554949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/2274420670064554949'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/10/great-replaceall-in-as3.html' title='Great replaceAll in AS3'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-3770979743996811274</id><published>2009-09-28T02:11:00.000-07:00</published><updated>2009-09-28T02:27:22.977-07:00</updated><title type='text'>"This PNG contains additional data for Adobe Fireworks, which will be discarded upon save."</title><content type='html'>This prompt appeared when I had modified a number of files with Fireworks and then tried to execute a batch command in Photoshop on the files:&lt;br /&gt;&lt;br /&gt;"This PNG contains additional data for Adobe Fireworks, which will be discarded upon save."&lt;br /&gt;&lt;br /&gt;And although I clicked ok for the first file, it appeared again for each one--rendering the batch process useless. I couldn't find a solution in Google, so it seems that the only logical way to solve the problem was to run the batch using a Fireworks command instead. And it is just as easy to  create a "command" in FW than an "action" in PS:&lt;br /&gt;&lt;br /&gt;1. Open a file in Fireworks&lt;br /&gt;2. Open the History dialog box&lt;br /&gt;3. Make sure the History list is clear&lt;br /&gt;4. Go through whatever steps you wantto modify the image as needed&lt;br /&gt;5. In the History panel, highlight the steps that you want to set as the command&lt;br /&gt;6. In the History options drop down select "Save as Command"&lt;br /&gt;7. Give your command a descriptive name&lt;br /&gt;8. Select File&gt;Batch Process&lt;br /&gt;9. Select the files you want to run the command against&lt;br /&gt;10. In the next step (Batch Process dialog) open the Commands list and select the command you made.&lt;br /&gt;11. Run it&lt;br /&gt;12. Done!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-3770979743996811274?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/3770979743996811274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=3770979743996811274' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/3770979743996811274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/3770979743996811274'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/09/this-png-contains-additional-data-for.html' title='&quot;This PNG contains additional data for Adobe Fireworks, which will be discarded upon save.&quot;'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-1901251408090544512</id><published>2009-09-27T07:52:00.000-07:00</published><updated>2009-09-28T02:10:56.433-07:00</updated><title type='text'>NDF and DF problems in converting subtitles for use in Final Cut Pro and DVD Studio Pro</title><content type='html'>It has proven to be extremely complicated to do subtitles for this project using DVD Studio Pro and Final Cut Pro. The latest wrinkle was to export the STL file back into Final Cut pro using Subbits. The program works well--but is not well documented so a lot comes down to trial and error.&lt;br /&gt;&lt;br /&gt;The subtitles STL file we created for DVD Studio pro worked out fine but when we took the exact same file and converted it to XML using Subbits, the subtitles slowly got out of synch as the film advanced. The solution required us to adjust the STL in Subbits using the "Recalculate NDF to DF" option (a completely undocumented feature in the Subbits manual). On top of that when you choose the option  it prompts you with the alert: "This will shift all timecodes down from 30fps to 29.97 fps. Are you sure you want to continue?" but since we are using PAL this makes no sense.&lt;br /&gt;&lt;br /&gt;However, chosing this option -- despite the erroneous warning -- solved the out of synch issue with FCP.&lt;br /&gt;&lt;br /&gt;** Update: It appears that this solution only fixed one out of the 4 subtitle STLs that we were working with. The others simply needed to have the Subbits settings for the project set to PAL instead of NTSC. (Clcik Edit&gt;Preferences&gt;PAL). Don't have the time to figure out why the two STLs needed to be processed differently--could have been a FCP setting instead. All in all though I still say Subbits is the best -- and lowest cost -- solution to the problem. I hope Apple will just create a more logical work flow to work with subtitles in FCP and DVD Studio Pro in their next version!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-1901251408090544512?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/1901251408090544512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=1901251408090544512' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/1901251408090544512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/1901251408090544512'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/09/ndf-and-df-problems-in-converting.html' title='NDF and DF problems in converting subtitles for use in Final Cut Pro and DVD Studio Pro'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-6695321705827976291</id><published>2009-09-20T00:50:00.000-07:00</published><updated>2009-09-20T00:53:46.286-07:00</updated><title type='text'>Use Nero to make an ISO image</title><content type='html'>We have a DVD that we are creating and want to make an ISO image of it that can be downloaded over the internet. However, Nero Essentials doesn't make it very clear how to do it (I suppose to limit piracy). However a thread at this forum &lt;&lt;a href="http://forum.my.nero.com/index.php?showtopic=658"&gt;http://forum.my.nero.com/index.php?showtopic=658&lt;/a&gt;&gt; gave instructions on how to do it which I've modified below to cover Nero 7 Essentials (this version has a different interface than the one in the forum post) :&lt;br /&gt;&lt;br /&gt;1. Open Nero Express Essentials&lt;br /&gt;2. Click the arrow button on the far left of the Nero window to expose the Advanced panel (I had never noticed this arrow button before)&lt;br /&gt;3. Place your DVD in the DVD player&lt;br /&gt;4. Select "Copy Audio CD Tracks"&lt;br /&gt;5. It will list the DVD track as a single track with a start, length, mode listing and the "Total" field will indicate something like: "1 Track, 343:25:23(3019 MB)"&lt;br /&gt;6. Change the Output file format to "ISO image file (*.iso)&lt;br /&gt;7. Set the name and path where you want the .iso to save&lt;br /&gt;8. Click "Go"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-6695321705827976291?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/6695321705827976291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=6695321705827976291' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6695321705827976291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6695321705827976291'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/09/use-nero-to-burn-iso-image.html' title='Use Nero to make an ISO image'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-6926379029184254114</id><published>2009-09-17T22:48:00.001-07:00</published><updated>2009-09-17T23:27:14.318-07:00</updated><title type='text'>Importing stl files into Final Cut Pro and DVD Studio Pro</title><content type='html'>Surprisingly, the workflow to import subtitles into DVD Studio Pro and Final Cut Pro are entirely different. After all, the programs are both from Apple so you would think that they would work well together.&lt;br /&gt;&lt;br /&gt;In any event, we made hundreds of subtitles in .stl format -- because this is the preferred method to import subtitles into DVD Studio Pro. But Final Cut Pro requires an xml format for importing subtitles -- and  DVD Studio Pro does not allow you to export their subtitles out!&lt;br /&gt;&lt;br /&gt;So we had to find a way to convert the stl into the xml format for Final Cut Pro. Thank goodness for Subbits:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.videotoolshed.com/?page=products&amp;amp;pID=12"&gt;http://www.videotoolshed.com/?page=products&amp;amp;pID=12&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For $200 it allows you to open various subtitle formats and then export them into other formats -- including Final Cut Pro, Avid and more -- including the xml format required for flash video subtitling. It's also a decent subtitler on its own. Great solution.&lt;br /&gt;&lt;span style="font-size:78%;"&gt;(Disclaimer--I am in no way related to the creator of Subbits -- as proven by the bugs listed below)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can also use TitleExchange for conversions:&lt;br /&gt;&lt;a href="http://www.spherico.com/filmtools/TitleExchange/index.html"&gt;&lt;br /&gt;http://www.spherico.com/filmtools/TitleExchange/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;...and it even lets you convert 50 subtitles at a time for free. This can  save you buying it for small projects, but can be very time consuming if you are in a large project and have iterations. TitleExchange is also a converter only--whereas Subbits includes a full featured subtitler.&lt;br /&gt;&lt;br /&gt;A few more things (bugs) about Subbits. You'll find that it allows you to open files with other character sets--such as Persian-- but you can't view or edit the text in the interface --since the characters show up as rectangles. But it still does the conversion properly.&lt;br /&gt;&lt;br /&gt;The Mac version also seemed a bit more buggy than the one for PC:&lt;br /&gt;&lt;br /&gt;1. It converted diacriticals into HTML encoded entities.&lt;br /&gt;2. It took the comma that separated the end time from the subtitle -- in the stl file -- and made it the first character in the subtitle. So all of the subtitles looked like this: ", We thought it would be best to..."&lt;br /&gt;&lt;br /&gt;So make sure to test the free demo thoroughly before you buy it. I decided to buy the PC version since it seemed to read the stl files better than the Mac version.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-6926379029184254114?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/6926379029184254114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=6926379029184254114' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6926379029184254114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6926379029184254114'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/09/importing-stl-files-into-final-cut-prp.html' title='Importing stl files into Final Cut Pro and DVD Studio Pro'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-4265243567836761365</id><published>2009-09-17T22:37:00.000-07:00</published><updated>2009-09-17T22:48:31.163-07:00</updated><title type='text'>Subtitling issues using stl files and DVD Studio Pro</title><content type='html'>We are working on a film project and are now in the process of doing the DVD authoring in DVD Studio Pro 4. There are a lot of subtitles so we decided to create an stl file using a spreadsheet. The structure is as follows:&lt;br /&gt;&lt;br /&gt;Column 1: Start time &lt;00:00:00:00&gt;&lt;br /&gt;Column 2: comma &lt;,&gt;&lt;br /&gt;Column 3: End time &lt;00:00:00:00&gt;&lt;br /&gt;Column 4: comma &lt;,&gt;&lt;br /&gt;Column 5: Subtitle text&lt;br /&gt;&lt;br /&gt;Once we are done with the file we copy and paste it into notepad and then save it as as .stl file using UTF-8 encoding.&lt;br /&gt;&lt;br /&gt;Things generally have worked well with this process aside from one quite significant issue:  If the subtitle starts with certain special characters -- in English this includes a quotation mark -- the character does not import into DVD Studio Pro -- it just disappears. In the case of Persian, the first character of &lt;span style="font-style: italic;"&gt;every&lt;/span&gt; subtitle -- no matter what it was -- would not be imported.&lt;br /&gt;&lt;br /&gt;Fortunately the fix is simple. Just make sure to add a space at the beginning of a subtitle that starts with an offending character. This seems to fool the importer into allowing the character to import.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-4265243567836761365?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/4265243567836761365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=4265243567836761365' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/4265243567836761365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/4265243567836761365'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/09/subtitling-issues-using-stl-files-and.html' title='Subtitling issues using stl files and DVD Studio Pro'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-6284776266625951890</id><published>2009-09-13T05:58:00.000-07:00</published><updated>2009-09-13T05:59:47.682-07:00</updated><title type='text'>After effects video tutorials</title><content type='html'>Here is a GREAT site to learn After Effects!:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.videocopilot.net/"&gt;http://www.videocopilot.net/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-6284776266625951890?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/6284776266625951890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=6284776266625951890' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6284776266625951890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6284776266625951890'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/09/after-effects-video-tutorials.html' title='After effects video tutorials'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-4072530536254622398</id><published>2009-08-29T22:09:00.000-07:00</published><updated>2009-08-29T22:15:37.773-07:00</updated><title type='text'>How to lock a layer in After Effects and still be able to edit it</title><content type='html'>I have been working with After Effects to modify a film clip that needed an animated mask to hide part of the image. However, every once in a while I would select the layer by accident and move it--which if you don't catch your mistake immediately, messes up your entire animation. Anyway, a bit of Googling and I found this brilliant (and simple solution here):&lt;br /&gt;&lt;br /&gt;http://generalspecialist.com/2008/03/locking-after-effects-layers-so-they.asp&lt;br /&gt;&lt;br /&gt;The short version is to select the layer in question, open the expressions panel for the "position" property and place the current position of the layer in brackets like this [123,23]. This simple script resets the position of the layer back to the original every time you mistakenly move it. BRILLIANT!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-4072530536254622398?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/4072530536254622398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=4072530536254622398' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/4072530536254622398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/4072530536254622398'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/08/how-to-lock-layer-in-after-effects-and.html' title='How to lock a layer in After Effects and still be able to edit it'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-1441188624831813246</id><published>2009-08-15T03:17:00.000-07:00</published><updated>2009-08-15T03:21:02.351-07:00</updated><title type='text'>inDesign pixelated photos while printing</title><content type='html'>I am working on an InDesign project that uses a lot of image. I kept having a problem where the images would look fine on screen but when I printed the file some of the photos were pixelated (but not all of them).&lt;br /&gt;&lt;br /&gt;Fortunately I found a forum post with the answer:&lt;br /&gt;&lt;br /&gt;Choose Print&gt;Settings&gt;Graphics&lt;br /&gt;and then under Images set "Send Data" to "All"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-1441188624831813246?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/1441188624831813246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=1441188624831813246' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/1441188624831813246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/1441188624831813246'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/08/indesign-pixelated-photos-while.html' title='inDesign pixelated photos while printing'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-1339790051585714042</id><published>2009-06-17T01:21:00.000-07:00</published><updated>2009-08-29T22:17:15.874-07:00</updated><title type='text'>Create MOV from Flash freezes - SOLUTION</title><content type='html'>I was trying to create a MOV file from Flash CS4 and the progress bar filled up and froze while doing "Recording Flash Content". Thanks to this post &lt;a href="http://www.kirupa.com/forum/showthread.php?t=275007"&gt;http://www.kirupa.com/forum/showthread.php?t=275007&lt;/a&gt; it turns out that I had additional keyframes after a stop() action and had chosen to export until the end of the timeline was reached.&lt;br /&gt;&lt;br /&gt;But since the stop action occurred before the end of the timeline was reached then of course it froze. There are two workaround. One is to remove the stop() action or just set the timeframe that you want to stop exporting. So in this case I just set to to only export 2 minutes.&lt;br /&gt;&lt;br /&gt;Brilliant.. thanks Kirupa forum!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-1339790051585714042?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/1339790051585714042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=1339790051585714042' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/1339790051585714042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/1339790051585714042'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/06/create-mov-from-flash-freezes-solution.html' title='Create MOV from Flash freezes - SOLUTION'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-1899788587636861412</id><published>2009-03-09T07:12:00.001-07:00</published><updated>2009-03-09T07:19:33.563-07:00</updated><title type='text'>Saving filesize in a Flex app</title><content type='html'>I'm starting to use modules to try and get the filesize down in Baha'i Explorer. This has helped bring the initial load down from 380kb to 280kb. Although the separate modules add up to more than the original size, it does make it a quicker to load initially. Two other things to keep in mind to keep the file sie down are these compiler options:&lt;br /&gt;&lt;br /&gt;-optimize=true;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;                        &lt;p&gt;If set to true, it enables the ActionScript optimizer. This optimizer reduces file size and increases performance by optimizing the SWF file's bytecode. The default value is false.&lt;/p&gt;&lt;p&gt; In my case setting it to true saved 50kb&lt;/p&gt;&lt;p&gt;Also, make sure to set the debug option to false when you are deploying :&lt;br /&gt;&lt;/p&gt;&lt;p&gt;-debug=false&lt;br /&gt;&lt;/p&gt;&lt;p&gt;This can save nearly 100kb.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;For additional compiler options: &lt;a href="http://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Book_Parts&amp;amp;file=compilers_123_24.html#157203"&gt;click here &gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-1899788587636861412?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/1899788587636861412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=1899788587636861412' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/1899788587636861412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/1899788587636861412'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/03/saving-filesize-in-flex-app.html' title='Saving filesize in a Flex app'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-7409234494309420783</id><published>2009-02-22T06:21:00.001-08:00</published><updated>2009-02-22T06:32:12.735-08:00</updated><title type='text'>How to set  focus on a Flex app (and how to reset it after losing it)</title><content type='html'>If you are running a Flex app and click on another app, you'll lose focus from the Flex app. In most programs in order to regain focus you just reclick the app and off you go. However Flash does not regain focus automatically unless the user clicks on some element that has an onClick event listener set up for it. This can be a problem especially if you have an app that is supposed to run using keyboard controls only (like a slideshow).&lt;br /&gt;&lt;br /&gt;In order to regain focus, make sure that your main component on the stage -- like the canvas that holds your app -- has a click listener set up like this:&lt;br /&gt;&lt;br /&gt;click="enableKeyListener(event)"&lt;br /&gt;&lt;br /&gt;and then you can have a function that is called like this:&lt;br /&gt;&lt;br /&gt;public function enableKeyListener(evt:Event):void{   &lt;br /&gt;        application.addEventListener(KeyboardEvent.KEY_DOWN,keyUpListener);&lt;br /&gt;       world.setFocus();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;You'll note that the enableKeyListener function is called by the application on creationComplete and explicity calls setFocus() on an element that exists on the stage. And it needs to do this again if you want to regain focus. AFAIK there is no setFocus() method in the stage object so you need to choose an element that is on the stage instead.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-7409234494309420783?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/7409234494309420783/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=7409234494309420783' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/7409234494309420783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/7409234494309420783'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/02/how-to-set-focus-on-flex-app-and-how-to.html' title='How to set  focus on a Flex app (and how to reset it after losing it)'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-188538850252804234</id><published>2009-02-21T03:55:00.001-08:00</published><updated>2009-02-21T03:58:01.731-08:00</updated><title type='text'>Turn off labels on a Flex chart</title><content type='html'>If you don't want the labels along the side and bottom of a chart in Flex to show, set the "showLabels" property of the axis renderer to false like this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;mx:horizontalAxisRenderer&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;mx:AxisRenderer showLabels="false"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/mx:horizontalAxisRenderer&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;mx:verticalAxisRenderer&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;mx:AxisRenderer showLabels="false"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/mx:verticalAxisRenderer&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-188538850252804234?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/188538850252804234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=188538850252804234' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/188538850252804234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/188538850252804234'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/02/trun-off-labels-on-flex-chart.html' title='Turn off labels on a Flex chart'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-8261153018332362773</id><published>2009-02-18T00:06:00.000-08:00</published><updated>2009-02-18T00:12:19.410-08:00</updated><title type='text'>Creating full screen Flex apps</title><content type='html'>I'm not sure why Adobe doesn't just add this as an option to FlexBuilder but in order to allow your Flex app to go fullscreen you need to follow these steps:&lt;br /&gt;&lt;br /&gt;1. Go here to download html templates for fullscreen support: http://www.adobe.com/devnet/flashplayer/articles/full_screen_mode.html&lt;br /&gt;2. Delete all of the files in the html-template folder in your Flex project and place the contents of either the "full-screen-support-with-history" or "full-screen-support" folders from the zip file&lt;br /&gt;3. Add this to the application tag in your Flex project: preinitialize="systemManager.stage.scaleMode = 'showAll'"&lt;br /&gt;4. Call this when you want the app to go fullscreen: systemManager.stage.displayState = StageDisplayState.FULL_SCREEN;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-8261153018332362773?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/8261153018332362773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=8261153018332362773' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8261153018332362773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8261153018332362773'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/02/creating-full-screen-flex-apps.html' title='Creating full screen Flex apps'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-1649469286488165577</id><published>2009-02-17T23:24:00.001-08:00</published><updated>2009-02-17T23:29:45.834-08:00</updated><title type='text'>Embedding an swf into Flex will remove all of the timeline code</title><content type='html'>It appears that if you try to load an swf file into Flex using the SWFLoader you can access functions and variables inside the swf from Flex by using this syntax: mySWFLoader.content.myvariable.&lt;br /&gt;&lt;br /&gt;However if you use the embed directive in the SWFLoader, all timeline code is lost, meaning that you can't access functions, use gotoAndStop(), etc...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-1649469286488165577?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/1649469286488165577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=1649469286488165577' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/1649469286488165577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/1649469286488165577'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/02/embedding-swf-into-flex-will-remove-all.html' title='Embedding an swf into Flex will remove all of the timeline code'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-75149664540568276</id><published>2009-02-01T13:06:00.000-08:00</published><updated>2009-02-03T02:28:48.541-08:00</updated><title type='text'>RSL error 1 of 1 / error #2048 and Vista</title><content type='html'>A user reported a problem using a Facebook Flex app that uses Runtime Shared Libraries. On Vista/IE they tried to load the app and got this error : RSL error 1 of 1  / Error #2048&lt;br /&gt;&lt;br /&gt;In Googling the error, most everyone said that the server needs a cross domain file -- but that is in place and I'm not able to replicate the issue in WinXP(Firefox and IE) or Mac(Firefox).&lt;br /&gt;&lt;br /&gt;One forum (http://www.adobeforums.com/webx/.59b6ed13) indicated that a MIME type was needed for the .swz file so I put this in the .htaccess file: AddType application/x-swz .swz&lt;br /&gt;&lt;br /&gt;But that didn't fix it either.&lt;br /&gt;&lt;br /&gt;Finally I was looking at the date stamp for the framework_3.0.0.477.swf and framework_3.0.0.477.swz files and found that the ones on the server were older than the ones in the bin-debug directory of Flex (the server ones were 4 months while the latest ones were 2 months old). Anyway, I pushed the newer ones to the server and the app loaded perfectly.&lt;br /&gt;&lt;br /&gt;Odd that this would only appear with Vista/IE. I was not able to test it with Vista/Firefox...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-75149664540568276?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/75149664540568276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=75149664540568276' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/75149664540568276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/75149664540568276'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/02/rsl-error-1-of-1-error-2048-and-vista.html' title='RSL error 1 of 1 / error #2048 and Vista'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-406261354285003882</id><published>2009-01-31T23:54:00.000-08:00</published><updated>2009-02-01T00:25:13.813-08:00</updated><title type='text'>Using the Share-button to post multimedia (audio, video and flash) in FBML</title><content type='html'>I have been frustrated in trying to find out how to add multimedia using the share button. The FBML fb:share-button documentation (http://wiki.developers.facebook.com/index.php/Fb:share-button) provides an example of sharing video, but does not give all of the meta information that you can use if you want to share other media types -- they just link to another page which hides the info -- and it is only revealed if you click on the rather innocuous link: "How do I make sure the Share Preview works?". arghhh...&lt;br /&gt;&lt;br /&gt;I had gone to that page numerous times and it was only in desperation I discovered it. Anyway, here is the "hidden" info:&lt;br /&gt;&lt;br /&gt;&lt;div style="padding: 5px; background: rgb(34, 34, 34) none repeat scroll 0% 0%; overflow: scroll; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style="font-weight: bold;"&gt;Multimedia Tags&lt;/span&gt;&lt;br /&gt;&lt;p&gt;The ideal way for you to connect video and media files to the share link is to make the URL in the link point to an html page that contains the &amp;lt;meta&amp;gt;/&amp;lt;link&amp;gt; tags described above (title, description, image_src) along with some additional &amp;lt;meta&amp;gt;/&amp;lt;link&amp;gt; tags:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Audio (required)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;meta name="title" content="page_title"&amp;gt;&lt;br /&gt;&amp;lt;meta name="description" content="audio_description"&amp;gt;&lt;br /&gt;&amp;lt;link rel="image_src" href="audio_image_src_url"&amp;gt;&lt;br /&gt;&amp;lt;link rel="audio_src" href="audio_src_url"&amp;gt;&lt;br /&gt;&amp;lt;meta name="audio_type" content="Content-Type header field"&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Audio (optional)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;meta name="audio_title" content="audio_title (eg. song name)"&amp;gt;&lt;br /&gt;&amp;lt;meta name="audio_artist" content="audio_artist_name"&amp;gt;&lt;br /&gt;&amp;lt;meta name="audio_album" content="audio_album_name"&amp;gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Video* (required)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;meta name="title" content="video_title"&amp;gt;&lt;br /&gt;&amp;lt;meta name="description" content="video_description"&amp;gt;&lt;br /&gt;&amp;lt;link rel="image_src" href="video_screenshot_image_src_url"&amp;gt;&lt;br /&gt;&amp;lt;link rel="video_src" href="video_src_url"&amp;gt;*&lt;br /&gt;&amp;lt;meta name="video_height" content="video_height"&amp;gt;&lt;br /&gt;&amp;lt;meta name="video_width" content="video_width"&amp;gt;&lt;br /&gt;&amp;lt;meta name="video_type" content="Content-Type header field"&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Video (example)&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Here is an example Flash Video embed:&lt;br /&gt;&lt;br /&gt;&amp;lt;embed src="http://www.example.com/player.swf" flashvars="video_id=123456789" type="application/x-shockwave-flash" width="300" height="200"&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;For that video, the appropriate metadata would look like this:&lt;br /&gt;&lt;p&gt;&amp;lt;link rel="video_src" href="http://www.example.com/player.swf?video_id=123456789"&amp;gt;&lt;br /&gt;&amp;lt;meta name="video_height" content="200"&amp;gt;&lt;br /&gt;&amp;lt;meta name="video_width" content="300"&amp;gt;&lt;br /&gt;&amp;lt;meta name="video_type" content="application/x-shockwave-flash"&amp;gt;&amp;lt;meta name="video_type" content="application/x-shockwave-flash"&amp;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/7692299817745629887-406261354285003882?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/406261354285003882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=406261354285003882' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/406261354285003882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/406261354285003882'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/01/using-share-button-to-post-multimedia.html' title='Using the Share-button to post multimedia (audio, video and flash) in FBML'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-912919817444875828</id><published>2009-01-30T00:11:00.000-08:00</published><updated>2009-01-30T00:19:01.877-08:00</updated><title type='text'>Beware of Facebook documentation and blogs</title><content type='html'>After working on a Facebook app for some time now I have finally come to the conclusion that you can't trust either the documentation or blog posts on how to make something work. It appears that Facebook changes the way things work on a regular basis -- and don't document them very well -- thus breaking your code or making those easy tutorials you found from last year completely useless. Perfect case in point is how to create infinite sessions :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-912919817444875828?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/912919817444875828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=912919817444875828' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/912919817444875828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/912919817444875828'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/01/beware-of-facebook-documentation-and.html' title='Beware of Facebook documentation and blogs'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-2405986699389797373</id><published>2009-01-27T05:53:00.000-08:00</published><updated>2009-02-03T03:59:18.255-08:00</updated><title type='text'>Facebook-updating a profile box using a cron and using an "infinite session"</title><content type='html'>I have a profile box that was created for a Facebook app -- one for a narrow page (when the box appears on the left side of your profile page) and the other for the boxes tab. The box displays the most recent blog post and a randomly selected video -- so it needs to be updated every day. The content is the same for everyone so there was no need to grab the users id and loop through a record set and update each one individually.&lt;br /&gt;&lt;br /&gt;Anyway, I looked all over to find out how to do this and didn't seem to get any clear answers. The problem was how to run a cron when the server can't log you into Facebook to rebuild the profile pages. This required creating an infinite session -- but Facebook has changed how you do this in the past year and there are many blog posts that contradict each other on it.&lt;br /&gt;&lt;br /&gt;After several failed attempts (the cron would work for a day and then fail), I found this recent blog post: http://www.emcro.com/blog/2009/01/facebook-infinite-session-keys-no-more/&lt;br /&gt;&lt;br /&gt;I followed his instructions on getting an infinite session and now this is how it now looks:&lt;br /&gt;&lt;br /&gt;$appapikey = 'app api key';&lt;br /&gt;$appsecret = 'app secret key&lt;your secret="" code=""&gt;';&lt;br /&gt;$infiniteSessionkey = '&lt;you infinite="" sesssion="" key=""&gt;app session key';&lt;br /&gt;$facebook = new Facebook($appapikey, $appsecret);&lt;br /&gt;$userid = your userid&lt;your persoanal="" userid=""&gt;;&lt;br /&gt;&lt;br /&gt;// log into facebook using the userid and infinite session key&lt;br /&gt;$facebook-&gt;api_client-&gt;user = $userid;&lt;br /&gt;$facebook-&gt;api_client-&gt;session_key = $facebook_infinite_session_key;&lt;br /&gt;$facebook-&gt;api_client-&gt;expires = 0;&lt;br /&gt;&lt;br /&gt;// how that you're logged in you can call fbml_refreshRefUrl() to reset the contents&lt;br /&gt;$facebook-&gt;api_client-&gt;fbml_refreshRefUrl("http://www.youyrsite.com/facebook/profile-narrow.php");&lt;br /&gt;&lt;br /&gt;You can then just run a cron on your server that calls the page periodically to refresh the profile box:&lt;br /&gt;/usr/bin/wget -O - -q -t 1 http://www.mysiteurl.com/facebook/refresh-profile-apps.php&lt;br /&gt;&lt;br /&gt;UPDATE (Feb 3, 2009): It appears that I made it work by pure accident. If you notice the code above (which I had copied and pasted) I set the session_key to be equal to a non-existent variable:&lt;br /&gt;&lt;br /&gt; &lt;/your&gt;&lt;/you&gt;&lt;/your&gt;$facebook-&gt;api_client-&gt;session_key = $facebook_infinite_session_key;&lt;br /&gt;&lt;br /&gt;So the session key was being set to nothing. When I changed it to use the infinite session key I went through all the trouble of getting, it said that the session had expired. In fact if you comment out the line entirely it still works. I'm thinking that the trick is the following line that sets the expires to 0:&lt;br /&gt;&lt;br /&gt;$facebook-&gt;api_client-&gt;expires = 0;&lt;br /&gt;&lt;br /&gt;I'll have to experiment a bit more with this since its likely Facebook will plug this hole up sooner or later.&lt;br /&gt;&lt;br /&gt;Also, a recent comment from a Facebook employee to the blog mentioned above links to a number of docs that were posted to the Facebook Developer blog that deal with what used to be called "infinite sessions" but are now "offline access":&lt;br /&gt;&lt;br /&gt;*************************&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developers.facebook.com/news.php?blog=1&amp;amp;story=116" rel="nofollow"&gt;http://developers.facebook.com/news.php?blog=1&amp;amp;story=116&lt;/a&gt;&lt;br /&gt;&lt;a href="http://developers.facebook.com/news.php?blog=1&amp;amp;story=130" rel="nofollow"&gt;http://developers.facebook.com/news.php?blog=1&amp;amp;story=130&lt;/a&gt;&lt;br /&gt;&lt;a href="http://developers.facebook.com/news.php?blog=1&amp;amp;story=132" rel="nofollow"&gt;http://developers.facebook.com/news.php?blog=1&amp;amp;story=132&lt;/a&gt;&lt;br /&gt;&lt;a href="http://developers.facebook.com/news.php?blog=1&amp;amp;story=135" rel="nofollow"&gt;http://developers.facebook.com/news.php?blog=1&amp;amp;story=135&lt;/a&gt; &lt;p&gt;The initial doc for it (mentioned in those posts):&lt;br /&gt;&lt;a href="http://wiki.developers.facebook.com/index.php/New_Design_Platform_Changes#Changes_to_Session_Keys" rel="nofollow"&gt;http://wiki.developers.facebook.com/index.php/New_Design_Platform_Changes#Changes_to_Session_Keys&lt;/a&gt;&lt;/p&gt; &lt;p&gt;A FAQ about changes to authentication:&lt;br /&gt;&lt;a href="http://wiki.developers.facebook.com/index.php/New_Design_User_Login" rel="nofollow"&gt;http://wiki.developers.facebook.com/index.php/New_Design_User_Login&lt;/a&gt;&lt;br /&gt;&lt;a href="http://wiki.developers.facebook.com/index.php/Authorizing_Applications" rel="nofollow"&gt;http://wiki.developers.facebook.com/index.php/Authorizing_Applications&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The easy way to get an “infinite session” is to prompt your users for offline access, as described here (and again, announced in those blog posts):&lt;br /&gt;&lt;a href="http://wiki.developers.facebook.com/index.php/Extended_permissions" rel="nofollow"&gt;http://wiki.developers.facebook.com/index.php/Extended_permissions&lt;/a&gt;&lt;/p&gt;&lt;p&gt;*************************&lt;/p&gt;&lt;p&gt;Unfortunately, no one updated the official docs when they made these changes, so searching for "infinite sessions" in the Wiki brings up none of this new info...&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-2405986699389797373?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/2405986699389797373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=2405986699389797373' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/2405986699389797373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/2405986699389797373'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/01/facebook-updating-profile-box-using.html' title='Facebook-updating a profile box using a cron and using an &quot;infinite session&quot;'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-1684691326619457256</id><published>2009-01-24T21:25:00.000-08:00</published><updated>2009-01-24T21:26:53.001-08:00</updated><title type='text'>Flex error : Only local-with-filesystem and trusted local &gt; SWF files may access local resources</title><content type='html'>Set this compiler flag to fix it: -use-network=false&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-1684691326619457256?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/1684691326619457256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=1684691326619457256' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/1684691326619457256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/1684691326619457256'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/01/flex-error-only-local-with-filesystem.html' title='Flex error : Only local-with-filesystem and trusted local &gt; SWF files may access local resources'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-7392931894454533808</id><published>2009-01-14T06:25:00.001-08:00</published><updated>2009-01-24T21:28:22.978-08:00</updated><title type='text'>Nice flex video player</title><content type='html'>Setting up a video display in Flex is easy but there is no prebuilt controller (not sure why that is...). Anyway, here was a good one for free:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.fxcomponents.com/flex-video-player/"&gt;http://www.fxcomponents.com/flex-video-player/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Update (jan 23 2009) this is not consistent scrubber -- as longer videos don't scrub properly...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-7392931894454533808?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/7392931894454533808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=7392931894454533808' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/7392931894454533808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/7392931894454533808'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/01/nice-flex-video-player.html' title='Nice flex video player'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-2002648681660810863</id><published>2009-01-14T06:13:00.000-08:00</published><updated>2009-01-14T06:16:16.850-08:00</updated><title type='text'>Expand Flex tree by clicking row</title><content type='html'>This is cool, useful and easy. It allows the user to opne a tree branch by clicking anywhere in the parent row (not just the arrow icon):&lt;br /&gt;&lt;br /&gt;import mx.events.ListEvent;&lt;br /&gt;&lt;br /&gt;private function tree_itemClick(evt:ListEvent):void {&lt;br /&gt;  var item:Object = Tree(evt.currentTarget).selectedItem;&lt;br /&gt;  if (mytree.dataDescriptor.isBranch(item)) {&lt;br /&gt;     mytree.expandItem(item, !mytree.isItemOpen(item), true);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;mx:Tree id="mytree"&lt;br /&gt;...&lt;br /&gt;itemClick="tree_itemClick(event);" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-2002648681660810863?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/2002648681660810863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=2002648681660810863' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/2002648681660810863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/2002648681660810863'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2009/01/expand-flex-treee-by-clicking-row.html' title='Expand Flex tree by clicking row'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-4920454917270548095</id><published>2008-12-04T04:42:00.000-08:00</published><updated>2008-12-04T05:06:51.559-08:00</updated><title type='text'>Dynamically loading embedded images in AS3</title><content type='html'>Huge kudos for a &lt;a href="http://www.ultrashock.com/forums/actionscript/as3-dynamic-class-name-87321.html"&gt;post found on UltraShock&lt;/a&gt; that saved me today when I was on a crazy deadline to finish something:&lt;br /&gt;&lt;br /&gt;I had recently completed a project that was built as a flash projector file. Originally the movie used external .jpg's that loaded at runtime, but to make it safer to distribute it was decided that all of the jpgs had to be embedded into the swf and loaded from there.&lt;br /&gt;&lt;br /&gt;The actionscript stored all of the image names in an array and called them in sequence to load into a movieclip. To do this I just used a Loader() object. However when moving the assets into the swf I couldn't (quickly) find a simple way to load them dynamically anymore. &lt;br /&gt;&lt;br /&gt;The first step was to turn each image into its own class with the filename as the class name -- so IMG_45.jpg was turned into a class (using the linkage panel) called IMG_45, etc. So far so good. But then we got stumped on how to load it dynamically. While I could have made them all movieclips, put them all on the timeline and called: this['IMG_45'] -- but that would have required that all 60 high res images be placed on the stage and probably killed performance. &lt;br /&gt;&lt;br /&gt;In the end I had about 15 minutes to find a way to load the specific class when all I had was a the name of it -- as a string.&lt;br /&gt;&lt;br /&gt;Anyway, some Googling found this brilliant function that solved it in 5 minutes instead:&lt;br /&gt;&lt;br /&gt;import flash.display.Bitmap;&lt;br /&gt;import flash.display.BitmapData;&lt;br /&gt;import flash.utils.getDefinitionByName;&lt;br /&gt;&lt;br /&gt;var bitmapData:BitmapData = getBitmapData(myImg);&lt;br /&gt;var bitmap:Bitmap = new Bitmap( bitmapData );    this.addChild(bitmap);&lt;br /&gt;&lt;br /&gt;function getBitmapData( className:String ):BitmapData{&lt;br /&gt;   var obj:BitmapData;&lt;br /&gt;   var cls:Class = getClass( className );&lt;br /&gt; &lt;br /&gt;   try{&lt;br /&gt;    obj = new cls( 0, 0 );&lt;br /&gt;   }catch(err:Error){} &lt;br /&gt;   &lt;br /&gt;   return obj;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function getClass( className:String ):Class{&lt;br /&gt;  return getDefinitionByName(className) as Class;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Awesome -- truly!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-4920454917270548095?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/4920454917270548095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=4920454917270548095' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/4920454917270548095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/4920454917270548095'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/12/dynamically-loading-embedded-images-in.html' title='Dynamically loading embedded images in AS3'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-6022674307987244226</id><published>2008-12-04T04:38:00.000-08:00</published><updated>2008-12-04T04:41:47.267-08:00</updated><title type='text'>stopAllSounds() in as3</title><content type='html'>FYI - The old stopAllSounds() method in Actionscript 2 has been replaced with the static method SoundMixer.stopAll()&lt;br /&gt;&lt;br /&gt;You implement it this way:&lt;br /&gt;&lt;br /&gt;import flash.media.SoundMixer;&lt;br /&gt;&lt;br /&gt;SoundMixer.stopAll();&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-6022674307987244226?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/6022674307987244226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=6022674307987244226' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6022674307987244226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6022674307987244226'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/12/stopallsounds-in-as3.html' title='stopAllSounds() in as3'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-7420586935597288002</id><published>2008-12-02T02:40:00.000-08:00</published><updated>2008-12-02T02:50:46.643-08:00</updated><title type='text'>Facebook: can't next fb:name inside of a meta tag of an fb:share-button</title><content type='html'>This won't work:&lt;br /&gt;&lt;div style="overflow:scroll;background:#666666;padding:5px" &gt;&lt;br /&gt;&amp;lt;fb:share-button class=&amp;quot;meta&amp;quot;&amp;gt; &lt;br&gt;&lt;br /&gt;&amp;lt;meta name=&amp;quot;medium&amp;quot; content=&amp;quot;blog&amp;quot;/&amp;gt;&lt;br&gt;&lt;br /&gt;&amp;lt;meta name=&amp;quot;title&amp;quot; content=&amp;quot;&amp;lt;fb:name uid=&amp;lt;?php echo $userid ?&amp;gt; useyou=false /&amp;gt; found this great video&amp;quot;/&amp;gt;&lt;br&gt;&lt;br /&gt;&amp;lt;meta name=&amp;quot;video_type&amp;quot; content=&amp;quot;application/x-shockwave-flash&amp;quot;/&amp;gt;&lt;br&gt;&lt;br /&gt;&amp;lt;meta name=&amp;quot;video_height&amp;quot; content=&amp;quot;345&amp;quot;/&amp;gt;&lt;br&gt;&lt;br /&gt;&amp;lt;meta name=&amp;quot;video_width&amp;quot; content=&amp;quot;473&amp;quot;/&amp;gt;&lt;br&gt;&lt;br /&gt;&amp;lt;meta name=&amp;quot;description&amp;quot; content=&amp;quot;Cleaning the coastline&amp;quot;/&amp;gt;&lt;br&gt;&lt;br /&gt;&amp;lt;link rel=&amp;quot;image_src&amp;quot; href=&amp;quot;http://mysite.com/myimage.jpg&amp;quot;/&amp;gt;&lt;br&gt;&lt;br /&gt;&amp;lt;link rel=&amp;quot;video_src&amp;quot; href=&amp;quot;http://mysite.com/myimage.flv&amp;quot;/&amp;gt;&lt;br&gt;&lt;br /&gt;&amp;lt;link rel=&amp;quot;target_url&amp;quot; href=&amp;quot;http://mysite.com&amp;quot;/&amp;gt;&lt;br&gt;&lt;br /&gt;&amp;lt;/fb:share-button&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Now you are probably wondering why I wouldn't just set the name var in php and print that instead but this was being used as the return call from ajax and I wanted to try and use the fb:name tag just like any other fb tag. But it doesn't work. So it appears that "some" fb tags can be nested but not this one (or just not in this way).&lt;br /&gt;&lt;br /&gt;As a workaround I sent the name along with the other params in the ajax call and just built the whole string on the server instead:&lt;br /&gt;&lt;br /&gt;&lt;div style="overflow:scroll;background:#666666;padding:5px"&gt;&lt;br /&gt;&amp;lt;?php&lt;br&gt;&lt;br /&gt;$username = $_GET['username']; &lt;br&gt;&lt;br /&gt;    $itemId = $_GET['itemId'];&lt;br&gt;&lt;br /&gt;    $itemDescription = $_GET['itemDescription'];&lt;br&gt;&lt;br /&gt;    $itemURL = $_GET['itemURL'];&lt;br&gt;&lt;br /&gt;    $itemImage = $_GET['itemImage'];&lt;br&gt;&lt;br /&gt;    $itemType = $_GET['itemType'];&lt;/p&gt;&lt;br /&gt;if($itemType=='video'){&lt;br&gt;&lt;br /&gt;        &lt;br&gt;&lt;br /&gt;    echo '&amp;lt;fb:share-button class=&amp;quot;meta&amp;quot;&amp;gt; &amp;lt;meta name=&amp;quot;medium&amp;quot; content=&amp;quot;blog&amp;quot;/&amp;gt; &amp;lt;meta name=&amp;quot;title&amp;quot; content=&amp;quot;' . $username . '  found this great video on Baha\'i Explorer&amp;quot;/&amp;gt;&amp;lt;meta name=&amp;quot;video_type&amp;quot; content=&amp;quot;application/x-shockwave-flash&amp;quot;/&amp;gt;&amp;lt;meta name=&amp;quot;video_height&amp;quot; content=&amp;quot;345&amp;quot;/&amp;gt; &amp;lt;meta name=&amp;quot;video_width&amp;quot; content=&amp;quot;473&amp;quot;/&amp;gt; &amp;lt;meta name=&amp;quot;description&amp;quot; content=&amp;quot;'. $itemTitle . '&amp;quot;/&amp;gt; &amp;lt;link rel=&amp;quot;image_src&amp;quot; href=&amp;quot;http://i3.ytimg.com/vi/'. $itemId . '/default.jpg&amp;quot;/&amp;gt; &amp;lt;link rel=&amp;quot;video_src&amp;quot; href=&amp;quot;http://www.youtube.com/v/' . $itemId . '&amp;amp;hl=en&amp;amp;fs=1&amp;quot;/&amp;gt; &amp;lt;link rel=&amp;quot;target_url&amp;quot; href=&amp;quot;' . $itemURL .'&amp;quot;/&amp;gt; &amp;lt;/fb:share-button&amp;gt;';&lt;br&gt;&lt;br /&gt;}&lt;br&gt;&lt;br /&gt;&amp;nbsp;&lt;br&gt;&lt;br /&gt;?&amp;gt;&lt;br&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/7692299817745629887-7420586935597288002?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/7420586935597288002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=7420586935597288002' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/7420586935597288002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/7420586935597288002'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/12/facebook-cant-next-fbname-inside-of.html' title='Facebook: can&apos;t next fb:name inside of a meta tag of an fb:share-button'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-862265760361644761</id><published>2008-12-02T00:40:00.000-08:00</published><updated>2008-12-02T01:22:24.932-08:00</updated><title type='text'>Facebook share pod causes flash to become invisible</title><content type='html'>Another problem with Facebook and Flash playing together. Using the fb:share-button: when the user clicks it the share pod appears in IE but it also makes the flash on the page disappear. This only happens in IE. I've tried setting the fb:swf wmode param to transparent but it doesn't help. Very frustrating...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;update:&lt;/span&gt; I thought of a really cheap (but workable) hack. I've made a screenshot of the flash app and then covered it with a 80% black tint and made a .jpg. This is used as the background of the div that surrounds the flash movie. This way, when a user clicks on the share and the flash disappears the disabled grayed out image shows instead -- making it "look" like everything is fine. Of course the state is different (different text is showing for instance) but the user is focused on the share pod anyway. &lt;br /&gt;&lt;br /&gt;I'm not thrilled with it but it will work for the time being until I can figure out how to have flash make calls directly to the server. Perhaps I should be skipping to Facebook Connect??&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-862265760361644761?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/862265760361644761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=862265760361644761' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/862265760361644761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/862265760361644761'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/12/facebook-share-pod-causes-flash-to.html' title='Facebook share pod causes flash to become invisible'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-7857114040011746330</id><published>2008-11-30T06:46:00.001-08:00</published><updated>2008-11-30T06:50:10.683-08:00</updated><title type='text'>Facebook error: "Errors while loading page from application Runtime errors:  URLExceptionEmpty URLs not allowed here"</title><content type='html'>I got this error while coding a canvas page: &lt;br /&gt;&lt;br /&gt;"Errors while loading page from application Runtime errors: URLExceptionEmpty URLs not allowed here"&lt;br /&gt;&lt;br /&gt;It turns out that I had an image tag that I wanted to start empty and then set the src at a later time using javascript:&lt;br /&gt;&lt;br /&gt;&amp;lt;img id=&amp;quot;myimg&amp;quot; src=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;&lt;br /&gt;But the error above gets thrown when you try to leave the img src blank. So as a  workaround I've placed a transparent spacer image instead and now it works fine...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-7857114040011746330?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/7857114040011746330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=7857114040011746330' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/7857114040011746330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/7857114040011746330'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/11/facebook-error-errors-while-loading.html' title='Facebook error: &quot;Errors while loading page from application Runtime errors:  URLExceptionEmpty URLs not allowed here&quot;'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-6399409568987381526</id><published>2008-11-29T07:23:00.000-08:00</published><updated>2008-11-29T07:36:45.056-08:00</updated><title type='text'>Form.submit does not work in Facebook FBJS</title><content type='html'>Just a note: Facebook apparently does not support the ability to submit a form using javascript -- or fbjs -- (form.submit). Thus a user &lt;span style="font-weight:bold;"&gt;must&lt;/span&gt; click something in order for it to submit a form. &lt;br /&gt;&lt;br /&gt;This came up because I'm working on a Facebook app in Flex that needs to post items to the user's feed. The Facebook AS3 API (http://code.google.com/p/facebook-actionscript-api/) appears to no longer work completely -- or at least the google code page indicates that development has stopped on it -- and I'm getting very gun shy about developing too tightly against a Facebook API that changes too quickly. As a result, I've decided to use javascript to pass values out of Flash and into hidden form fields on the facebook canvas page. The problem is that I can't call a function from flash that can also submit the form. So it seems that the best work around will be to create a button that shows above or below the Flex app that a user can click when they want to share an video or audio clip on their feed. The form will be updated with the proper values from Flex whenever a user changes their audio or video selection. It's not the cleanest implementation but the tests so far prove that it can work...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-6399409568987381526?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/6399409568987381526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=6399409568987381526' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6399409568987381526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6399409568987381526'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/11/formsubmit-does-not-work-in-facebook.html' title='Form.submit does not work in Facebook FBJS'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-2449232476332416556</id><published>2008-11-29T01:52:00.000-08:00</published><updated>2008-11-29T04:55:52.876-08:00</updated><title type='text'>Making sense out of Facebook feeds - Part one: Template Bundles</title><content type='html'>I'm trying to make posting content to a Facebook feed work and have run into quite a few problems finding a good tutorial that actually works. So I'm posting these notes for myself and anyone else who might find them useful:&lt;br /&gt;&lt;br /&gt;In order to publish a item from a Facebook application to a users feed you need to follow a couple of steps:&lt;br /&gt;&lt;br /&gt;1. &lt;b&gt;Create a "Template Bundle"&lt;/b&gt;: This is a template that contains up to three types of feed templates, a title only (one line), a title and short content (short story) or a longer amount of content (full story). The template contain "tokens" which are essentially placemarks where dynamic content will be inserted once a user actually publishes content to their feed using this template. Tokens have this format {*name-of-token*}. {*actor*} and {*target*} are two reserved tokens and if used will be replaced with the name of the facebook user {*actor*} and/or the target of the action {*target*} such as : "Joe tagged Joanie". There are additional reserved words that can't be used for token names such as "flash", "images", "mp3" and "video".&lt;br /&gt;&lt;br /&gt;Here is an example of a php page that creates and registers a template bundle. In this example we will use the {*actor*} token and also create a another token called {*author*}:&lt;br /&gt;&lt;br /&gt;&lt;div style="overflow:scroll;background:#333333;padding:5px" &gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;?php&lt;br&gt;&lt;br /&gt;// create the different feed templates&lt;br&gt;&lt;br /&gt;// one line feed template&lt;br&gt;&lt;br /&gt;  $one_line_story = array('{*actor*} saw a great video from {*author*}!');&lt;br&gt; &lt;br /&gt;//short story template &lt;br&gt;&lt;br /&gt;  $short_story = array(&lt;br&gt;&lt;br /&gt;  'template_title' =&amp;gt; '{*actor*} saw a great short video from {*author*}!',&lt;br&gt; &lt;br /&gt;  'template_body' =&amp;gt; 'Check this video out &amp;gt;'&lt;br&gt;&lt;br /&gt;  ); &lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;br /&gt;//full story template &lt;br&gt;&lt;br /&gt;  $full_story = array(&lt;br&gt;&lt;br /&gt;  'template_title' =&amp;gt; '{*actor*} saw a great full video from {*author*}!',&lt;br&gt;&lt;br /&gt;  'template_body' =&amp;gt; 'Check it out! I found on &amp;lt;a href=&amp;quot;http://www.youtube.com&amp;quot;&amp;gt;YouTube&amp;lt;/a&amp;gt;: &amp;lt;br/&amp;gt;'&lt;br&gt;&lt;br /&gt;  );&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;br /&gt;// now register the bundle&lt;br&gt;&lt;br /&gt;  $res = $facebook-&amp;gt;api_client-&amp;gt;feed_registerTemplateBundle($one_line_story, $short_story, $full_story);&lt;br&gt;&lt;br /&gt;// this is the template bundle id&lt;br&gt;&lt;br /&gt;echo $res&lt;br&gt;&lt;br /&gt;?&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;2. Once you've registered this bundle you can save the id you got in the last line: &lt;pre&gt; echo $res &lt;/pre&gt; or go to the Facebook Developer "Registered Templates Console" (http://developers.facebook.com/tools.php?templates) and get the ID for the particular template you want to use later.&lt;br /&gt;&lt;br /&gt;3. Now you are ready to set the feed. &lt;br /&gt;&lt;br /&gt;4. Lets say that you have a canvas page where you post a number of videos from YouTube and CNN. On the page you want to allow the user to let people know which one they looked at--such as: "Bill watched a video from CNN".  To do this you need to create a form on your page with a required tag fbtype=&amp;quot;feedStory&amp;quot and the action param that points to a php page that will process the feed content and post it for you:&lt;br /&gt;&lt;div style="overflow:scroll;background:#333333;padding:5px" &gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;form fbtype=&amp;quot;feedStory&amp;quot; action=&amp;quot;http://apps.facebook.com/myapp/set-feed-item.php&amp;quot;&amp;gt; &lt;br&gt;&lt;br /&gt;&amp;lt;select size=2 name=&amp;quot;author&amp;quot;&amp;gt; &lt;br&gt;&lt;br /&gt;&amp;lt;option value=&amp;quot;&amp;quot; selected=&amp;quot;true&amp;quot;&amp;gt;Select an author&amp;lt;/option&amp;gt; &lt;br&gt;&lt;br /&gt;&amp;lt;option value=&amp;quot;CNN&amp;quot; &amp;gt; CNN &amp;lt;/option&amp;gt; &lt;br&gt;&lt;br /&gt;&amp;lt;option value=&amp;quot;YouTube&amp;quot;&amp;gt; YouTube&amp;lt;/option&amp;gt;&lt;br&gt;&lt;br /&gt;&amp;lt;/select&amp;gt; &lt;br&gt;&lt;br /&gt;&amp;lt;input type=&amp;quot;submit&amp;quot; label=&amp;quot;Submit&amp;quot; /&amp;gt; &amp;lt;/form&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;5. Now here is the php processing page: &lt;br /&gt;&lt;br /&gt;&lt;div style="overflow:scroll;background:#333333;padding:5px" &gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;?php&lt;br&gt;&lt;br /&gt;$feedReturn = array(&lt;br&gt;&lt;br /&gt;  'content'=&amp;gt; array(&lt;br&gt;&lt;br /&gt;  'feed'=&amp;gt; array(&lt;br&gt;&lt;br /&gt;  'template_id'=&amp;gt;100566785645,&lt;br&gt;&lt;br /&gt;  'template_data'=&amp;gt; array (&lt;br&gt;&lt;br /&gt;  'author'=&amp;gt;$_POST['author']&lt;br&gt;&lt;br /&gt;  // add additional tokens here&lt;br /&gt;&lt;br /&gt;)&lt;br&gt;&lt;br /&gt;) &lt;br&gt;&lt;br /&gt;),&lt;br&gt;&lt;br /&gt;'method'=&amp;gt;'feedStory'&lt;br&gt;&lt;br /&gt;);&lt;br /&gt;echo json_encode($feedReturn);&lt;br&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Once the user has submitted the form from the canvas page, this page will process the information and post the feed. However, this sample will only post text. While I have successfully implemented adding an image to a short story feed post, I have been unable to add flash, videos and mp3s - despite following the Facebook documentation closely. Hopefully I will be able to figure this out shortly and add to this post later...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-2449232476332416556?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/2449232476332416556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=2449232476332416556' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/2449232476332416556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/2449232476332416556'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/11/making-sense-out-of-facebook-feeds-part.html' title='Making sense out of Facebook feeds - Part one: Template Bundles'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-3599353837857488990</id><published>2008-11-28T05:27:00.000-08:00</published><updated>2008-11-28T05:47:21.134-08:00</updated><title type='text'>Finally figured out how to have Flash call Javascript in Facebook!</title><content type='html'>This took some doing. My goal was to have a Flash as3 movie (built in Flex) to communicate with Javascript on a Facebook canvas page. Here are the steps (quickly):&lt;br /&gt;&lt;br /&gt;1. On the Facebook Canvas page insert a &amp;lt;fb:fbjs-bridge/&amp;gt; tag ABOVE your embedded flash movie (very important that it is ABOVE).&lt;br /&gt;2. Insert the &amp;lt;fb:swf /&amp;gt; as indicated in the Facebook docs. Facebook will automatically pass a localConnection name via flashvars into the swf (the var is called "fb_local_connection").&lt;br /&gt;3. In your flash movie get the localConnection name that Facebook passed in:&lt;br /&gt;&lt;div style="overflow: scroll;background:#666666;padding:3px;"&gt;&lt;pre&gt;private var connectionName:String = Application.application.parameters.fb_local_connection;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;4. Facebook exposes the Javascript that has been placed on a Canvas page by providing the function "callFBJS" in the bridge flash movie. This function requires two arguments:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;callFBJS(myFunctionName:String,myArgs:Array)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;5. With this info you can make the connection and call the javascript function:&lt;br /&gt;&lt;div style="overflow: scroll;background:#666666;padding:3px;"&gt;&lt;br /&gt;&lt;pre&gt;connection.send(connectionName,"callFBJS",myFunctionName,myArgs);&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Here is the sample code of a AS3 Flex app that call a js function on the canvas page called: showInvite();&lt;br /&gt;&lt;br /&gt;&lt;div style="overflow: scroll;background:#666666;padding:3px;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:ns1="components.*" creationComplete="init();"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;mx:Script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;![CDATA[&lt;br /&gt;&lt;br /&gt;import flash.net.LocalConnection;&lt;br /&gt;&lt;br /&gt;private var connection:LocalConnection = new LocalConnection();&lt;br /&gt;&lt;br /&gt;private var connectionName:String = "";&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;private function init():void{&lt;br /&gt;&lt;br /&gt;connectionName = Application.application.parameters.fb_local_connection;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;private function callFBJS(methodName:String,args:Array):void {&lt;br /&gt;&lt;br /&gt;if (connectionName!=""){&lt;br /&gt;&lt;br /&gt;connection.allowDomain("apps.facebook.com", "apps.*.facebook.com");&lt;br /&gt;&lt;br /&gt;connection.send(connectionName,"callFBJS",methodName,args);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;private function showInvite():void{&lt;br /&gt;&lt;br /&gt;var args:Array = new Array("arg1","arg2");&lt;br /&gt;&lt;br /&gt;callFBJS("showInvite",args);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;]]&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/mx:Script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;mx:Button x="40" y="10" label="click" click="showInvite()"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/mx:Application&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;For more info on this evolving drama (Facebook changes stuff all the time it appears): &lt;a href="http://wiki.developers.facebook.com/index.php/Fb:fbjs-bridge"&gt;http://wiki.developers.facebook.com/index.php/Fb:fbjs-bridge&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-3599353837857488990?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/3599353837857488990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=3599353837857488990' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/3599353837857488990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/3599353837857488990'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/11/finally-figured-out-how-to-have-flash.html' title='Finally figured out how to have Flash call Javascript in Facebook!'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-413291661629108912</id><published>2008-11-28T04:49:00.000-08:00</published><updated>2008-11-28T04:54:51.237-08:00</updated><title type='text'>Facebook and Flash -- problem with fbjs-bridge</title><content type='html'>I'm learning the hard way how much of a pain it is to develop apps for Facebook. Documentation is quite bad, there are very few good tutorials-- and they change things without saying anything.&lt;br /&gt;&lt;br /&gt;Here is a GREAT example. I'm trying to use their fb:fwjs-bridge to allow an swf file to communicate with js on the facebnook page -- using a localConnection. But it turns out that it completely fails if you don't place the fb:fbjs-bridge tag ABOVE your own swf file tag (fb:swf). If you put it below, nothing works.&lt;br /&gt;&lt;br /&gt;Makes NO sense but there it is.....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-413291661629108912?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/413291661629108912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=413291661629108912' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/413291661629108912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/413291661629108912'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/11/facebook-and-flash-problem-with-fbjs.html' title='Facebook and Flash -- problem with fbjs-bridge'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-2324772240034257411</id><published>2008-11-23T23:57:00.001-08:00</published><updated>2008-11-24T00:19:56.246-08:00</updated><title type='text'>Save the hassle -- code FBML in blocks</title><content type='html'>After struggling with using a series of inline fbml blocks in order to create a narrow and wide version of a profile box, I've decided to just do two different versions each surrounding each with either&amp;lt;fb:wide&amp;gt;&amp;lt;fb:/wide&amp;gt; or &amp;lt;fb:narrow&amp;gt;&amp;lt;fb:/narrow&amp;gt; tags. This saves having the complicated inline tags every line or so. It also allows me to use the style block since that is also inside the FBML tag.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-2324772240034257411?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/2324772240034257411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=2324772240034257411' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/2324772240034257411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/2324772240034257411'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/11/save-hassle-code-fbml-in-blocks.html' title='Save the hassle -- code FBML in blocks'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-7098930686739927708</id><published>2008-11-23T23:04:00.001-08:00</published><updated>2008-11-23T23:18:20.988-08:00</updated><title type='text'>Cannot use FBML in css style block</title><content type='html'>I'm learning a lot about facebook right now -- especially that there are not a lot of good resources whe you want to do more complex coding with it. The tutorials mostly skim the surface of the easiest integration -- or provide you wiht code that you have to deconstruct. Even the OReilly "Essential" book is a joke--it give a few pages of intro and then just provides the API in book form.&lt;br /&gt;&lt;br /&gt;In any event, here is a css tip: you cannot use FBML is a style block. For instance, if you have a div like this:&lt;br /&gt;&lt;br /&gt;&amp;lt;div class="content"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;and you define the style in a block:&lt;br /&gt;&lt;br /&gt;&amp;lt;style&amp;gt;&lt;br /&gt;  .content{&lt;br /&gt;    width:400px;&lt;br /&gt;  }&lt;br /&gt;&amp;lt;/style&amp;gt;&lt;br /&gt;&lt;br /&gt;you can't use FBML to change the property based on something like the width of the profile box it appears in:&lt;br /&gt;&lt;br /&gt;&amp;lt;style&amp;gt;&lt;br /&gt;  .content{&lt;br /&gt;&amp;lt;fb:wide&amp;gt; width:400px;&amp;lt;/fb:wide&amp;gt;&lt;br /&gt;&amp;lt;fb:narrow&amp;gt; width:100px;&amp;lt;/fb:narrow&amp;gt;&lt;br /&gt;  }&lt;br /&gt;&amp;lt;/style&amp;gt;&lt;br /&gt;&lt;br /&gt;Instead, you'll need to use inline styles --or enclose the tag itself in the fbml code:&lt;br /&gt;&lt;br /&gt;&amp;lt;fb:wide&amp;gt; &amp;lt;div id="content" style="width:400px"&amp;gt;&amp;lt;/fb:wide&amp;gt;&lt;br /&gt;&amp;lt;fb:narrow&amp;gt; &amp;lt;div id="content" style="width:100px"&amp;gt;&amp;lt;/fb:narrow&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-7098930686739927708?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/7098930686739927708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=7098930686739927708' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/7098930686739927708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/7098930686739927708'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/11/cannot-use-fbml-in-css-style-block.html' title='Cannot use FBML in css style block'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-7772443652104336752</id><published>2008-11-20T07:22:00.001-08:00</published><updated>2008-11-20T07:38:44.614-08:00</updated><title type='text'>Facebook and Flash -- getting an embedded Flash app to  work with getURL() or navigateToURL()</title><content type='html'>Long story short, you can't use getURL() or  navigateToURL() with Flash when you embed the piece with fb:swf. &lt;fb:swf&gt; The Flash security sandbox prohibits this in a flash movie loaded from a different domain. You can use an iframe but that causes other issues with Facebook. The folks at Facebook decided to resolve this by using a localConnection instead.&lt;br /&gt;&lt;br /&gt;To use it add this FBML tag to the page where your FB:swf tag is:&lt;br /&gt;&lt;br /&gt;fb:fbjs_bridge&lt;br /&gt;&lt;fb:fbjs_bridge&gt;&lt;br /&gt;I then created a util function called getURL() to remind me of the good old days. This function first checks to see if it can make the navigateToURL() directly and if not uses the lc instead. This way the same movie will work as a standalone and on Facebook too:&lt;br /&gt;&lt;br /&gt;       public static function getURL(thisURL:String):void{          &lt;br /&gt;           var request:URLRequest = new URLRequest(thisURL);&lt;br /&gt;           try{&lt;br /&gt;               navigateToURL(request);&lt;br /&gt;           }catch(er:Error){&lt;br /&gt;               // for Facebook&lt;br /&gt;               var conn: LocalConnection = new LocalConnection(); ;&lt;br /&gt;               conn.send("callFBJS", "document.setLocation",[thisURL]);          &lt;br /&gt;           }          &lt;br /&gt;&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;Here is more info onthe genesis of the problem:&lt;br /&gt;&lt;br /&gt;http://bugs.developers.facebook.com/show_bug.cgi?id=994#c28&lt;/fb:fbjs_bridge&gt;&lt;/fb:swf&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-7772443652104336752?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/7772443652104336752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=7772443652104336752' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/7772443652104336752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/7772443652104336752'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/11/facebook-and-flash-getting-embedded.html' title='Facebook and Flash -- getting an embedded Flash app to  work with getURL() or navigateToURL()'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-1431376386271150459</id><published>2008-11-20T07:19:00.000-08:00</published><updated>2008-11-20T07:21:52.885-08:00</updated><title type='text'>Facebook errors: fb:redirect: redirect forbidden</title><content type='html'>I'm working on putting a flash app onto facebook and had this error when I tried to use a page  in a tab:&lt;br /&gt;&lt;br /&gt;fb:redirect: redirect forbidden by flavor TabFBMLFlavor on the profile tab.&lt;br /&gt;&lt;br /&gt;A bit of searching revealed that you can't require ogin: $userid = $facebook-&gt;require_login();&lt;br /&gt;&lt;br /&gt;Unless you check to see if the userid is null:&lt;br /&gt;&lt;br /&gt;$userid = $facebook-&gt;get_profile_user();&lt;br /&gt;if(is_null($userid)){&lt;br /&gt;    $userid = $facebook-&gt;require_login();&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-1431376386271150459?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/1431376386271150459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=1431376386271150459' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/1431376386271150459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/1431376386271150459'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/11/facebook-errors-fbredirect-redirect.html' title='Facebook errors: fb:redirect: redirect forbidden'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-5352241503816954819</id><published>2008-11-03T01:40:00.000-08:00</published><updated>2008-11-03T01:45:33.071-08:00</updated><title type='text'>Outline around a Flash movie in Firefox -- with SWFObject</title><content type='html'>Suprisingly this one took a while to find the answer to. I embedded a flash movie using SWFObject and found that once a user clicked on the movie, a dotted line appeared around the edge of the swf (in Firefox). I tried adding "outline:none" to the css for the div but it didn't help. The only thing that worked was to add this to the javascript right after creating the swfObject:&lt;br /&gt;&lt;br /&gt;swfobject.createCSS("#growth","outline:none");&lt;br /&gt;(where growth was the name of the target div)&lt;br /&gt;&lt;br /&gt;So here was the full code for the swfObject:&lt;br /&gt;&lt;br /&gt;swfobject.embedSWF("web-v2.swf", "growth", "1024", "768", "9.0.124","expressInstall.swf", flashvars, params, attributes);&lt;br /&gt;&lt;br /&gt;swfobject.createCSS("#growth","outline:none");&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-5352241503816954819?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/5352241503816954819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=5352241503816954819' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/5352241503816954819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/5352241503816954819'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/11/outlien-around-flash-movie-in-firefox.html' title='Outline around a Flash movie in Firefox -- with SWFObject'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-6492208603202429095</id><published>2008-10-20T07:25:00.000-07:00</published><updated>2008-10-20T07:29:46.101-07:00</updated><title type='text'>Dreamweaver CS3 crashes after Daylight Savings Time ends</title><content type='html'>Wow--talk about an obscure bug. I've been working with php in Dreamweaver CS3 and kept getting file errors sporadically that caused the program to crash. The problems were not present in the CS4 trial and was about to give up and reinstall CS2 in the hope that it wouldn't have the same problem.&lt;br /&gt;&lt;br /&gt;But then I came across this &lt;a href="http://kb.adobe.com/selfservice/viewContent.do?externalId=kb402776&amp;amp;sliceId=1"&gt;technote&lt;/a&gt; on a discussion board: "Dreamweaver CS3 crashes after Daylight Savings Time ends" -- and it just so happens that daylight Savings Time ended in Israel a few weeks ago.&lt;br /&gt;&lt;br /&gt;Sure, enough I applied the fix and no more crashes!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-6492208603202429095?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/6492208603202429095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=6492208603202429095' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6492208603202429095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6492208603202429095'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/10/dreamweaver-cs3-crashes-after-daylight.html' title='Dreamweaver CS3 crashes after Daylight Savings Time ends'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-480263168686250141</id><published>2008-10-17T00:02:00.000-07:00</published><updated>2008-10-17T00:07:54.865-07:00</updated><title type='text'>Adobe announces inContext editor</title><content type='html'>This is a very col new service from Adobe -- the inContext Editor service allows the non-technical person to edit their website without a web designers help. :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://labs.adobe.com/technologies/incontextediting/"&gt;http://labs.adobe.com/technologies/incontextediting/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I have been a big fan of &lt;a href="http://www.adobe.com/products/contribute/"&gt;Contribute&lt;/a&gt; -- but now Adobe has raised the bar higher by letting designers focus more on design and development and leave even simple typo fixes and changes to the client.&lt;br /&gt;&lt;br /&gt;And its done in Flex :)&lt;br /&gt;&lt;a href="http://labs.adobe.com/technologies/incontextediting/"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-480263168686250141?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/480263168686250141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=480263168686250141' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/480263168686250141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/480263168686250141'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/10/adobe-announces-incontext-editor.html' title='Adobe announces inContext editor'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-5486053380569012827</id><published>2008-10-12T07:28:00.001-07:00</published><updated>2008-10-12T07:38:51.020-07:00</updated><title type='text'>Digest mismatch with RSL framework_3.0.0</title><content type='html'>After launching a brand new Flex app, I had a user report that they got this error when they tried to open the app:&lt;br /&gt;&lt;br /&gt;"Digest mismatch with RSL framework_3.0.0.477.swf. Redeploy the matching RSL or relink your application with the matching library"&lt;br /&gt;&lt;br /&gt;This very cryptic message related to the feature in Flex3 to have Runtime Sharing Libraries (or RSL's) -- essentially shared libraries of the framework so you don't have to export your swf with everything in it. This awesome feature cuts down on file size dramatically. If the user has visited another site that uses the same library it will save them having to download it again since the framework has been cached inside of Flash Player.&lt;br /&gt;&lt;br /&gt;In any event, after some searching I found some pretty intense suggestions to fix this error but I also found this article on Adobe.com:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://labs.adobe.com/wiki/index.php/Flex_3:Feature_Introductions:Flex_3_RSLs" target="_blank"&gt;http://labs.adobe.com/wiki/&lt;wbr&gt;index.php/Flex_3:Feature_&lt;wbr&gt;Introductions:Flex_3_RSLs&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;which indicates that RSLs &lt;span style="font-style: italic;"&gt;require&lt;/span&gt; Flash Player 9.0.60. After asking the user to update their Flash player, the problem was fixed.&lt;br /&gt;&lt;br /&gt;Hopefully this might save another person who gets the same error and only finds very complicated solutions on Google for this error. Start with this approach and if that doesn't work you can try the others...&lt;br /&gt;&lt;br /&gt;and good luck...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-5486053380569012827?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/5486053380569012827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=5486053380569012827' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/5486053380569012827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/5486053380569012827'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/10/digest-mismatch-with-rsl-framework300.html' title='Digest mismatch with RSL framework_3.0.0'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-8418608036160336645</id><published>2008-10-06T06:16:00.000-07:00</published><updated>2008-10-06T06:21:24.181-07:00</updated><title type='text'>Sound problem fixed in Flashplayer 10</title><content type='html'>After finally discovering the root of the problem I was having with the Sound object (see below) I decided to try the beta for flash player 10 and found that the bug has been fixed!! So this just means that I can continue the development of the app and just let users know that the fix can be applied by installing the new player (which will no doubt be released in a very short time -- now that CS4 was announced)...&lt;br /&gt;&lt;br /&gt;...phew... I was beginning to debate about building the player in AS2 and embedding it the Flex app -- and that would have been a major pain!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-8418608036160336645?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/8418608036160336645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=8418608036160336645' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8418608036160336645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8418608036160336645'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/10/sound-problem-fixed-in-flashplayer-10.html' title='Sound problem fixed in Flashplayer 10'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-3814332773156717581</id><published>2008-10-06T05:20:00.000-07:00</published><updated>2008-10-06T05:37:58.401-07:00</updated><title type='text'>More problems with the Sound object in AS3</title><content type='html'>Well it appears that the Sound object in AS3 needs a lot more work! After lengthy trial and error (and some Googling) I have found that the Sound object works in direct proportion to the bitrate of the clip. The playback works fine but the problems come in when you want to scrub or pause the track. The target is 128KBPs. If you make sure your tracks are at that target, you'll be ok -- but anything lower cause the sound.position to set incorrectly.&lt;br /&gt;&lt;br /&gt;In any event, this is a very significant bug. Kudos to Steven Sacks for helping me understand why I less hair this week!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.stevensacks.net/2008/08/07/bug-with-sound-channel-position-and-mp3s-less-than-128kbps"&gt;http://www.stevensacks.net/2008/08/07/bug-with-sound-channel-position-and-mp3s-less-than-128kbps&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-3814332773156717581?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/3814332773156717581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=3814332773156717581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/3814332773156717581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/3814332773156717581'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/10/more-problems-with-sound-object-in-as3.html' title='More problems with the Sound object in AS3'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-7093944792657188670</id><published>2008-10-01T10:51:00.001-07:00</published><updated>2008-10-01T11:03:56.880-07:00</updated><title type='text'>Sound complete event problem in AS3 (with some mp3 files)</title><content type='html'>Ok, another frustrating one. It appears that the Sound.complete event in AS3 does not work properly. Here is what is happening:&lt;br /&gt;&lt;br /&gt;I'm building an MP3 player and want to include a progress bar that allows a user to scrub the track. Since the Sound object can't tell at the beginning how long the track is until its fully loaded, I'm using the rss feed tag to initially set the duration. Once the sound has fully loaded I have an event handler that  gets called by the Complete event. This usually works -- but I have found that for SOME mp3 files (not sure why its only some of them) when the event.COMPLETE fires the Sound.length shows that the sound is TWICE as long as it really is. A second later it return sthe proper value but that means I can't rely on the event to determine what the true length of the file is.&lt;br /&gt;&lt;br /&gt;At least I know where to put the hack in (I'll probably wait a second or two and THEN sent the final duration)&lt;br /&gt;&lt;br /&gt;Since I didn't get any other Google hits for this exact error (although others have reported errors with the Sound object--including the COMPLETE event), I thought I'd blog it.&lt;br /&gt;&lt;br /&gt;Hope it helps somebody else...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-7093944792657188670?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/7093944792657188670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=7093944792657188670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/7093944792657188670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/7093944792657188670'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/10/sound-complete-event-problem-in-as3.html' title='Sound complete event problem in AS3 (with some mp3 files)'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-5909111075680861309</id><published>2008-09-22T05:37:00.001-07:00</published><updated>2008-09-22T05:39:39.429-07:00</updated><title type='text'>SimpleXML</title><content type='html'>parsing XML with Flex/AS3 is a breeze but I need to do some work with php and it isn't quote as straightforward as i had hoped. In any event, the best bet seems to be to use simpleXML. And here is a pretty good tutorial:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://debuggable.com/posts/parsing-xml-using-simplexml:480f4dfe-6a58-4a17-a133-455acbdd56cb"&gt;http://debuggable.com/posts/parsing-xml-using-simplexml:480f4dfe-6a58-4a17-a133-455acbdd56cb&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm still trying to get used to how to use custom namespaces but i'm close (i hope!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-5909111075680861309?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/5909111075680861309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=5909111075680861309' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/5909111075680861309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/5909111075680861309'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/09/simplexml.html' title='SimpleXML'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-6149211722817394008</id><published>2008-08-28T00:51:00.000-07:00</published><updated>2008-08-28T00:52:15.058-07:00</updated><title type='text'>The future of the web</title><content type='html'>This is the most amazing thing I have seen in years:&lt;br /&gt;&lt;br /&gt;http://labs.mozilla.com/2008/08/introducing-ubiquity/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-6149211722817394008?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/6149211722817394008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=6149211722817394008' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6149211722817394008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6149211722817394008'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/08/future-of-web.html' title='The future of the web'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-6218385975406848656</id><published>2008-08-20T05:42:00.000-07:00</published><updated>2008-08-20T05:57:35.261-07:00</updated><title type='text'>Problems adding AS3 created objects to Flex Components</title><content type='html'>I have spent the better part of a day discovering that adding actionscript created UIComponents to the display list of a flex component will cause the component to not set the scrollbars properly. &lt;br /&gt;&lt;br /&gt;Here is what I had:&lt;br /&gt;&lt;br /&gt;1. An mx:Canvas object added to the stage using the &lt;mx:Canvas /&gt; tag&lt;br /&gt;2. An AS3 class called ImageHolder that was extended from UIComponent&lt;br /&gt;3. A loop to adds a series of 28 images into the Canvas, setting the x and y props so that they were spaced into rows of 4.&lt;br /&gt;&lt;br /&gt;When I ran it, the objects would start to add properly but when it got to the bottom row of the canvas (where the rest of the images would have to be hidden inside the container) the images showed on above the canvas and then suddenly get hidden by the container -- as though they were on top of the canvas and not inside of it. In addition the scrollbar would not properly scroll to the last row of images -- essentially hiding the from view. I assume this is because the Canvas component was not recognizing that those last items were there and wouldn't resize again.&lt;br /&gt;&lt;br /&gt;After trying a number of different approaches, I finally decided to create a custom component that was based on a canvas and add the images to it instead. Once I did this and added this Component to the Canvas it worked perfectly.&lt;br /&gt;&lt;br /&gt;It probably says somewhere in the docs that you should use components as a building blocks instead of creating actionscript objects, but I just assumed that they would play nice together...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-6218385975406848656?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/6218385975406848656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=6218385975406848656' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6218385975406848656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6218385975406848656'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/08/problems-adding-as3-created-objects-to.html' title='Problems adding AS3 created objects to Flex Components'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-6438035407372718211</id><published>2008-08-19T05:05:00.000-07:00</published><updated>2008-08-19T05:46:39.728-07:00</updated><title type='text'>Nice data visualization for Flash</title><content type='html'>This is a pretty awesome framework:&lt;br /&gt;&lt;br /&gt;http://flare.prefuse.org/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-6438035407372718211?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/6438035407372718211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=6438035407372718211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6438035407372718211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6438035407372718211'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/08/nice-data-visualization-for-flash.html' title='Nice data visualization for Flash'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-8906953004429189536</id><published>2008-08-06T06:28:00.000-07:00</published><updated>2008-08-06T06:30:47.767-07:00</updated><title type='text'>creating a browser window in a flex app</title><content type='html'>Here is a very cool way of creating a browser window -- using an iframe -- inside of flex:&lt;br /&gt;&lt;br /&gt;http://deitte.com/archives/2006/08/finally_updated.htm&lt;br /&gt;&lt;br /&gt;It also points out in the update why this is not the best way to go about this problem -- primarily because of accessibility (it can't be accessed by screen readers) -- but it is useful if really needed....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-8906953004429189536?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/8906953004429189536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=8906953004429189536' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8906953004429189536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8906953004429189536'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/08/creating-browser-window-in-flex-app.html' title='creating a browser window in a flex app'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-5562425336532422279</id><published>2008-07-08T23:50:00.000-07:00</published><updated>2008-07-08T23:51:23.222-07:00</updated><title type='text'>Awesome resource for css and javascript</title><content type='html'>Just another note to myself. Here is a great javascript and CSS resource:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.quirksmode.org/"&gt;Quirksmode.org&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-5562425336532422279?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/5562425336532422279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=5562425336532422279' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/5562425336532422279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/5562425336532422279'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/07/awesome-resource-for-css-and-javascript.html' title='Awesome resource for css and javascript'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-4958759485370992881</id><published>2008-07-08T23:32:00.000-07:00</published><updated>2008-07-08T23:46:00.706-07:00</updated><title type='text'>PHP email with attachments -- and how to do sendAndLoad in AS3</title><content type='html'>I took a bit of a break after the marathon 2 months to get this DVD ready and worked on a wordpress site -- and learned a lot about reconfiguring it to do what I really wanted. In any event, I'm back to working on the final steps of porting the Flash DVD to the Web. This has posed all sorts of Flash AS3 challenges as we are trying to make it usable for both high and low bandwidth users. &lt;br /&gt;&lt;br /&gt;One new feature for the web version will be to allow users to email a copy of a selected photo to a friend. Of course, this meant learning how to use the AS3 version of sendAndLoad -- and also how to do file attachments in php email.&lt;br /&gt;&lt;br /&gt;These links have come in handy for both of these:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.peterelst.com/blog/2007/11/28/actionscript-30-wheres-my-loadvars/"&gt;How to do sendAndLoad in AS3 &gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;How to do file attachments in PHP email - &lt;a href="http://www.drquincy.com/resources/tutorials/webserverside/sendemailattachmentphp/"&gt;option 1&gt;&lt;/a&gt; |&lt;a href="http://www.litfuel.net/tutorials/mail2.htm"&gt; option 2 &gt;&lt;/a&gt; | &lt;span style="text-decoration: underline;"&gt;option&lt;/span&gt;&lt;a href="http://phpmailer.codeworxtech.com/index.php?pg=tutorial#1"&gt; 3 &gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So far I've implemented the php code in option 1 and found it quite easy. I'll try the html version in option 2 if I get time. Option 3 is to PHPMailer. I'd like to try it someday but generally prefer to learn the code rather than implement a class built by someone else...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-4958759485370992881?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/4958759485370992881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=4958759485370992881' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/4958759485370992881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/4958759485370992881'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/07/php-email-with-attachments-and-how-to.html' title='PHP email with attachments -- and how to do sendAndLoad in AS3'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-8250030979237691954</id><published>2008-05-19T08:37:00.000-07:00</published><updated>2008-05-19T08:57:21.575-07:00</updated><title type='text'>Odd behavior with E4X filtering in AS3</title><content type='html'>This one drove me nuts today and so I thought I'd better blog it. I was trying to create a function that to filter an xml file using E4X and locate a node with a specific "photoid" attribute:&lt;sub&gt;&lt;photo photoid="123"&gt;&lt;/photo&gt;&lt;/sub&gt;&lt;br /&gt;&lt;br /&gt;First I tried to get retrieve the node with the correct id by filtering:&lt;br /&gt;&lt;br /&gt;&lt;sub&gt;var myList:XMLList = pdXML..photo.(@photoid=="123");&lt;/sub&gt;&lt;br /&gt;&lt;br /&gt;but, it appears that unless the XMLList has more than one item it won't trace anything out when you do this:&lt;br /&gt;&lt;br /&gt;&lt;sub&gt;trace(myList.toString()); //shows nothing&lt;br /&gt;trace(myList); //also shows nothing&lt;/sub&gt;&lt;br /&gt;&lt;br /&gt;...even though the list clearly has one item in it:&lt;br /&gt;&lt;br /&gt;&lt;sub&gt;trace(myList.length()); //returns 1&lt;/sub&gt;&lt;br /&gt;&lt;br /&gt;The only way that it will show the node attribute value is when you refer specifically to the attribute in the trace statement like this:&lt;br /&gt;&lt;br /&gt;&lt;sub&gt;trace(myList.@photoid); // shows "123"&lt;/sub&gt;&lt;br /&gt;&lt;br /&gt;If the xmlList has more than one node it traces fine using toString(). But the thing that JUST occurred to me is that I SHOULD have used toXMLString()-- which (as I just correctly tested) traces the single node correctly. Even so, the xmlList should trace  properly even without using the toString() or toXMLString() methods -- like this: trace(myList);&lt;br /&gt;&lt;br /&gt;In any event, I'm not sure if this is a bug or a feature but it sure was a frustrating way to spend an afternoon...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-8250030979237691954?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/8250030979237691954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=8250030979237691954' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8250030979237691954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8250030979237691954'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/05/odd-behavior-with-e4x-filtering-in-as3.html' title='Odd behavior with E4X filtering in AS3'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-3105595396893890097</id><published>2008-05-16T11:30:00.000-07:00</published><updated>2008-05-16T11:32:27.416-07:00</updated><title type='text'>Tutorials for skinning Flex components</title><content type='html'>Here is a blog posting that points to a number of tutorials on how to skin Flex components. I'm not ready to review them now but they will probably come in handy later ;-)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ntt.cc/2008/05/03/over-15-strongly-recommand-tutorials-you-must-read-for-creating-skins-and-themes-ui-design-in-flex.html"&gt;Click Here &gt; &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-3105595396893890097?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/3105595396893890097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=3105595396893890097' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/3105595396893890097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/3105595396893890097'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/05/tutorials-for-skinning-flex-components.html' title='Tutorials for skinning Flex components'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-6837933099794956653</id><published>2008-05-14T07:40:00.001-07:00</published><updated>2008-05-14T07:43:31.035-07:00</updated><title type='text'>Bandwidth and debugging tool</title><content type='html'>Here is a GREAT tool for testing and debugging:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.charlesproxy.com/"&gt;http://www.charlesproxy.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It lets you throttle your bandwidth to test how your page(or flash) works for different users -- plus it allows you to monitor the download times of various objects and the backend communication between flash and your server. VERY useful!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-6837933099794956653?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/6837933099794956653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=6837933099794956653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6837933099794956653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/6837933099794956653'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/05/bandwidth-and-debugging-tool.html' title='Bandwidth and debugging tool'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-8391131910460279785</id><published>2008-05-12T07:01:00.000-07:00</published><updated>2008-05-12T07:08:22.061-07:00</updated><title type='text'>Playing with AS3 Drawing</title><content type='html'>I've been going through Colin Moocks' AS3 book and trying out some of the examples (along with getting distracted by trying related things). In this piece I tried to create a dynamic randomized drawing window. The colors are pulled randmly from an array, and the app randomly draws 3-9 lines to form an object and also randomly selects the alpha prop. After 6 objects are drawn it deletes the lowest one in the display list. People have been doing this kind of thing for a long time but this was fun to do with AS3:&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="400" width="400"&gt;&lt;br /&gt;   &lt;param name="movie" value="http://www.studioclassics.com/flash/curvedLine.swf"&gt;&lt;br /&gt;   &lt;param name="quality" value="high"&gt;&lt;br /&gt;   &lt;embed src="http://www.studioclassics.com/flash/curvedLine.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" height="400" width="400"&gt;&lt;/embed&gt;&lt;br /&gt; &lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-8391131910460279785?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/8391131910460279785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=8391131910460279785' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8391131910460279785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8391131910460279785'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/05/playing-with-as3-drawing.html' title='Playing with AS3 Drawing'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7692299817745629887.post-8143589192525033616</id><published>2008-05-04T00:14:00.000-07:00</published><updated>2008-05-04T00:15:05.580-07:00</updated><title type='text'>Good article on Flex performance management</title><content type='html'>&lt;a href="http://www.insideria.com/2008/04/flex-ria-performance-considera.html"&gt;Flex RIA Performance Considerations Part 2: Application Startup&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7692299817745629887-8143589192525033616?l=cloudnebula.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cloudnebula.blogspot.com/feeds/8143589192525033616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7692299817745629887&amp;postID=8143589192525033616' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8143589192525033616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7692299817745629887/posts/default/8143589192525033616'/><link rel='alternate' type='text/html' href='http://cloudnebula.blogspot.com/2008/05/good-article-on-flex-performance.html' title='Good article on Flex performance management'/><author><name>Brian</name><uri>http://www.blogger.com/profile/06362948233510514193</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://www.studioclassics.com/blogimages/nemo.jpg'/></author><thr:total>0</thr:total></entry></feed>
