<?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-5586452099862540857</id><updated>2011-11-27T18:38:06.449-05:00</updated><title type='text'>The Flex Non-Docs</title><subtitle type='html'>For all those secrets in Flex, those that aren't known, those that aren't published, or those that are just hard to find for some unknown reason, like percentWidth.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>48</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-2274861651194130072</id><published>2007-06-24T11:14:00.000-04:00</published><updated>2007-06-24T12:10:01.037-04:00</updated><title type='text'>3rdParty.libraries</title><content type='html'>&lt;a href="http://code.google.com/p/as3httpclient/"&gt;as3httpclient&lt;/a&gt; - extend HTTP/HTTPS API (Abdul Qabiz)&lt;br /&gt;&lt;a href="http://code.google.com/p/israfil-mojo/"&gt;israfil-mojo&lt;/a&gt; - Maven 2 plugin (Israfil Consulting Services)&lt;br /&gt;&lt;a href="http://code.google.com/p/xpath-as3/"&gt;xpath-as3&lt;/a&gt; - XPath (Peter Hall)&lt;br /&gt;&lt;a href="http://code.google.com/p/as3-rpclib/"&gt;as3-rpclib&lt;/a&gt; - an RPC library (akeemphilbert)&lt;br /&gt;&lt;a href="http://code.google.com/p/flexlib/"&gt;flexlib&lt;/a&gt; - Component Library (Adobe People)&lt;br /&gt;&lt;a href="http://code.google.com/p/as3corelib/"&gt;as3corelib&lt;/a&gt; - Utility Library (Adobe People) *May be integrated into flex 3&lt;br /&gt;&lt;a href="http://www.aswing.org/"&gt;ASwing&lt;/a&gt; - GUI Framework (Team)&lt;br /&gt;&lt;a href="http://code.google.com/p/adobe-php-sdk/"&gt;adobe-php-sdk&lt;/a&gt; - (Mike Potter - Adobe, et al)&lt;br /&gt;&lt;a href="http://code.google.com/p/as3flexunitlib/"&gt;as3flexunitlib&lt;/a&gt; - Unit Testing Framework (Adobe)&lt;br /&gt;&lt;a href="http://code.google.com/p/as3xmpp/"&gt;as3xmpp&lt;/a&gt; - XMPP Library (Daniel Dura)&lt;br /&gt;&lt;br /&gt;Sites:&lt;br /&gt;http://www.riaforge.org&lt;br /&gt;http://osflash.org&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-2274861651194130072?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/2274861651194130072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=2274861651194130072' title='43 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/2274861651194130072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/2274861651194130072'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/06/3rdpartylibraries.html' title='3rdParty.libraries'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>43</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-7902581130282948527</id><published>2007-05-27T12:04:00.000-04:00</published><updated>2007-05-27T12:34:17.423-04:00</updated><title type='text'>metadata.Embed</title><content type='html'>General Properties:&lt;br /&gt;&lt;blockquote&gt;_column&lt;br /&gt;_file&lt;br /&gt;_line&lt;br /&gt;_pathsep&lt;br /&gt;_resolvedSource&lt;br /&gt;exportSymbol (name given to symbol which can be referenced your app?)&lt;br /&gt;mimeType (Documented)&lt;br /&gt;source (Documented)&lt;br /&gt;symbol (Documented)&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-7902581130282948527?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/7902581130282948527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=7902581130282948527' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/7902581130282948527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/7902581130282948527'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/05/metadataembed.html' title='metadata.Embed'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-7324835424982332497</id><published>2007-05-27T11:49:00.000-04:00</published><updated>2007-05-27T11:58:26.583-04:00</updated><title type='text'>metadata.Deprecated</title><content type='html'>Deprecated appears to function the same way as Exclude/ExcludeClass.  Adding the Deprecated tag to a class, method, or property removes the item from the asdocs.  It also removes the item from the Content Assist of FlexBuilder although it can still be used if manually typed.  I expected the compiler to throw a warning telling me that I was using a deprecated function, but I could not get this to occur.&lt;br /&gt;&lt;br /&gt;Based on what I've found, I'd expect the tag to be used in one of the following ways:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;[Deprecated] // no additional data&lt;br /&gt;[Deprecated("This use is Deprecated")] // a message to display with the warning&lt;br /&gt;[Deprecated(replacement="Use function x instead")] // identification of item that replaced deprecated item&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-7324835424982332497?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/7324835424982332497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=7324835424982332497' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/7324835424982332497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/7324835424982332497'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/05/metadatadeprecated.html' title='metadata.Deprecated'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-2847608061017474149</id><published>2007-05-20T12:30:00.000-04:00</published><updated>2007-05-20T12:49:12.251-04:00</updated><title type='text'>mx.rpc.soap.WebService.ActionScriptExample</title><content type='html'>&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;mx:Application xmlns:mx=&amp;quot;http://www.adobe.com/2006/mxml&amp;quot; layout=&amp;quot;absolute&amp;quot; applicationComplete=&amp;quot;creationApplicationListener(event)&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;mx:Script&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;![CDATA[&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;import mx.events.FlexEvent;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;import mx.rpc.events.FaultEvent;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;import mx.rpc.events.ResultEvent;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;import mx.rpc.soap.LoadEvent;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;import mx.rpc.soap.WebService;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public var _webService:WebService; // web service&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public var _webServiceLoaded:Boolean = false; // flag noting when wsdl has been loaded&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public function initWebService():void {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// initializes webservice&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!_webService) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_webService = new WebService();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// assign wsdl url&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_webService.wsdl = &amp;quot;http://www.domain.com/HelloWorld/Service.asmx?WSDL&amp;quot;; // replace this url&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// add listeners&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_webService.addEventListener(LoadEvent.LOAD, load_listener);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_webService.addEventListener(ResultEvent.RESULT, result_listener);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_webService.addEventListener(FaultEvent.FAULT, fault_listener);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// load wsdl&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_webService.loadWSDL();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public function callHelloWorld():void {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;initWebService();    // init webservice&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (_webServiceLoaded) {  // is wsdl is loaded&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_webService.HelloWorld(); // call web service method called &amp;quot;HelloWorld&amp;quot; with no parameters&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {      // else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;callLater(callHelloWorld); // wait a frame and try again&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public function load_listener(event:LoadEvent):void {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_webServiceLoaded = true; // mark wsdl as loaded so we know we can use the web service&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public function result_listener(event:ResultEvent):void {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trace(event.result); // traces result of webservice method which in this example is &amp;quot;Hello World&amp;quot;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public function fault_listener(event:FaultEvent):void {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trace(event.fault); // traces information about failure &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public function creationApplicationListener(event:FlexEvent):void {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// once application is loaded, call web service&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;callHelloWorld();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]]&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/mx:Script&amp;gt;&lt;br /&gt;&amp;lt;/mx:Application&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-2847608061017474149?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/2847608061017474149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=2847608061017474149' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/2847608061017474149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/2847608061017474149'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/05/mxrpcsoapwebserviceactionscriptexample.html' title='mx.rpc.soap.WebService.ActionScriptExample'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-7900320289512597297</id><published>2007-05-14T19:16:00.000-04:00</published><updated>2007-06-02T21:39:47.275-04:00</updated><title type='text'>FAQ.limitations</title><content type='html'>flash.display.BitmapData has a a 2880 limitation on both its width and height. (&lt;a href="http://livedocs.adobe.com/flex/201/langref/flash/display/BitmapData.html"&gt;LiveDocs Reference&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Children of the flash.dispay.Stage (and there are unconfirmed reports that children of all all flash.display.DisplayObjectContainers) have a minimum/maximum x/y value of +/-8191.  Exceeding this limitation causes the child to not be displayed. (&lt;a href="http://www.mail-archive.com/flexcoders@yahoogroups.com/msg62017.html"&gt;Reference&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;"The minimum swf is about 135." I'm guessing this is for a Flash swf and not a flex swf.  (&lt;a href="http://www.mail-archive.com/flexcoders@yahoogroups.com/msg63373.html"&gt;Reference&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;The maximum upload/download file size &lt;span style="font-style: italic;"&gt;officially&lt;/span&gt; supported by FileReference is 100 MB (&lt;a href="http://livedocs.adobe.com/flex/201/langref/flash/net/FileReference.html#download%28%29"&gt;LiveDocs&lt;/a&gt;).  It has been widely reported that Flex/Flash unofficially will allow much larger file sizes without any problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-7900320289512597297?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/7900320289512597297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=7900320289512597297' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/7900320289512597297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/7900320289512597297'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/05/faqlimitations.html' title='FAQ.limitations'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-1356282939938498099</id><published>2007-05-12T22:29:00.000-04:00</published><updated>2007-05-20T12:59:01.382-04:00</updated><title type='text'>toplevel.XML.toString()</title><content type='html'>The short version:  If the XML node is a simple text node, the text of the node is returned.  Otherwise the entire node is returned as a String.  To always return the entire node, use &lt;code&gt;XML.toXMLString()&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;The long version: &lt;a href="http://livedocs.adobe.com/flex/201/langref/XML.html#toString()"&gt;check XML.toString() on the livedocs&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-1356282939938498099?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/1356282939938498099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=1356282939938498099' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/1356282939938498099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/1356282939938498099'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/05/toplevelxmltostring.html' title='toplevel.XML.toString()'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-9145500293792445136</id><published>2007-05-12T21:52:00.000-04:00</published><updated>2007-05-14T19:16:52.156-04:00</updated><title type='text'>toplevel.XML.Traversing XML structures</title><content type='html'>I have found Adobe's documentation on "&lt;a href="http://livedocs.adobe.com/flex/201/html/13_Working_with_XML_169_08.html"&gt;Traversing XML Structures&lt;/a&gt;" to cause a little confusion.  Nothing Adobe says is wrong.  There aren't any features that they've hidden from you.  But if you only read parts of the documentation you can get confused fairly easily.&lt;br /&gt;&lt;br /&gt;Confusion can be boiled down to one concept in the "Accessing parent and child nodes" substopic. To paraphrase, if you have the variable:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;var myXML:XML = &amp;lt;order&amp;gt;&amp;lt;book&amp;gt;&amp;lt;title&amp;gt;Dictionary&amp;lt;/title&amp;gt;&amp;lt;/book&amp;gt;&amp;lt;/order&amp;gt;;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;since there is only one book tag and that book tag has only one child, you don't have to use indexes when traversing the XML.  In other words, you can use either of the following:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;myXML.book[0].title[0];&lt;br /&gt;myXML.book.title;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Well it depends on how you are using the variables.  The top statement returns an object of XML type.  The bottom statement returns an object of XMLList type.  This can be important depending on what you are using the result for.  For example, let's say you are trying to determine if &lt;code&gt;myXML.book[0]&lt;/code&gt; has any title children, you have a few options.  Two of them are:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;var test1:Boolean = (myXML.book[0].title[0] != null);&lt;br /&gt;var test1:Boolean = (myXML.book[0].title.length() != 0);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Notice that if &lt;code&gt;myXML.book[0]&lt;/code&gt; has no children and you try to check that is has children using &lt;code&gt;(myXML.book[0].title != null)&lt;/code&gt;, the check will always evaluate to true because the left side of the statement will always evaluate to an XMLList even if the XMLList has a length of 0.&lt;br /&gt;&lt;br /&gt;This is more important because almost all XML and XMLList functions (such as the attribute (@), decendent (..), etc) work this way and return XMLLists.  The only common function that returns an XML object is getting an XML node by index.  So if you're having trouble using these function, make sure this confusion isn't what is tripping you up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-9145500293792445136?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/9145500293792445136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/9145500293792445136'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/05/toplevelxmltraversing-xml-structures.html' title='toplevel.XML.Traversing XML structures'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-2824319639789835672</id><published>2007-05-05T15:38:00.000-04:00</published><updated>2007-05-05T15:52:17.860-04:00</updated><title type='text'>flash.text.TextField.pasteRichText()</title><content type='html'>Definition: &lt;code&gt;internal function pasteRichText(richText:String):Boolean&lt;/code&gt;&lt;br /&gt;&lt;code&gt;richText&lt;/code&gt; in &lt;a href="http://nondocs.blogspot.com/2007/05/flashtexttextfieldflashrichtext.html"&gt;flashrichtext&lt;/a&gt; format.&lt;br /&gt;&lt;br /&gt;This function is only used if &lt;code&gt;TextField.useRichTextClipboard&lt;/code&gt; is true and the text to be pasted was copied from a field where &lt;code&gt;useRichTextClipboard&lt;/code&gt; was true.&lt;br /&gt;&lt;br /&gt;This funcation is called when the user pastes flashrichtext into a TextField and appears to simply be a proxy function for &lt;code&gt;&lt;a href="http://nondocs.blogspot.com/2007/05/flashtexttextfieldinsertxmltext.html"&gt;insertXMLText()&lt;/a&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;To override this function see &lt;a href="http://nondocs.blogspot.com/2007/04/how-tohack-internal-namespace.html"&gt;How To.Hack the "internal" namespace&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-2824319639789835672?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/2824319639789835672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=2824319639789835672' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/2824319639789835672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/2824319639789835672'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/05/flashtexttextfieldpasterichtext.html' title='flash.text.TextField.pasteRichText()'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-746107283432108173</id><published>2007-05-05T15:07:00.000-04:00</published><updated>2007-05-05T15:37:50.955-04:00</updated><title type='text'>flash.text.TextField.copyRichText()</title><content type='html'>Definition: &lt;code&gt;internal function copyRichText():String&lt;/code&gt;&lt;br /&gt;The value returned is in &lt;a href="http://nondocs.blogspot.com/2007/05/flashtexttextfieldflashrichtext.html"&gt;flashrichtext&lt;/a&gt; format.&lt;br /&gt;&lt;br /&gt;This function is only used if &lt;code&gt;TextField.useRichTextClipboard&lt;/code&gt; is true.&lt;br /&gt;&lt;br /&gt;This function does not appear to actually perform the copy function.  Instead it simply returns the value to copy which is just the result of &lt;code&gt;&lt;a href="http://nondocs.blogspot.com/2007/05/flashtexttextfieldgetxmltext.html"&gt;getXMLText&lt;/a&gt;(selectionBeginIndex,selectionEndIndex)&lt;/code&gt;.  This means that you cannot programmatically force a copy using this function.  If this function returns null, plain text is copied.&lt;br /&gt;&lt;br /&gt;To override this function see &lt;a href="http://nondocs.blogspot.com/2007/04/how-tohack-internal-namespace.html"&gt;How To.Hack the "internal" namespace&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-746107283432108173?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/746107283432108173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=746107283432108173' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/746107283432108173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/746107283432108173'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/05/flashtexttextfieldcopyrichtext.html' title='flash.text.TextField.copyRichText()'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-1165992935137561892</id><published>2007-05-05T14:44:00.000-04:00</published><updated>2007-05-05T14:56:58.155-04:00</updated><title type='text'>flash.text.TextField.insertXMLText()</title><content type='html'>Definition: &lt;code&gt;insertXMLText(beginIndex:int, endIndex:int, richText:String, pasting:Boolean=false):void&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This function replaces the text between &lt;code&gt;beginIndex&lt;/code&gt; and &lt;code&gt;endIndex&lt;/code&gt; with &lt;code&gt;richText&lt;/code&gt;.  &lt;code&gt;richText&lt;/code&gt; must be in &lt;a href="http://nondocs.blogspot.com/2007/05/flashtexttextfieldflashrichtext.html"&gt;flashrichtext&lt;/a&gt; format.&lt;br /&gt;&lt;br /&gt;This function is implemented using &lt;code&gt;setTextFormat()&lt;/code&gt;, &lt;code&gt;setSelection()&lt;/code&gt;, and &lt;code&gt;replaceText()&lt;/code&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-1165992935137561892?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/1165992935137561892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=1165992935137561892' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/1165992935137561892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/1165992935137561892'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/05/flashtexttextfieldinsertxmltext.html' title='flash.text.TextField.insertXMLText()'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-3542242056373254342</id><published>2007-05-05T14:40:00.000-04:00</published><updated>2007-05-05T14:44:33.897-04:00</updated><title type='text'>flash.text.TextField.getXMLText()</title><content type='html'>Definition: &lt;code&gt;getXMLText(beginIndex:int=0, endIndex:int=int.MAX_VALUE):String&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This function returns the the given range of text in &lt;a href="http://nondocs.blogspot.com/2007/05/flashtexttextfieldflashrichtext.html"&gt;richTextFormat&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This function uses &lt;a href="http://nondocs.blogspot.com/2007/05/flashtexttextfieldgettextruns.html"&gt;getTextRuns()&lt;/a&gt; to determine the formating and &lt;a href="http://nondocs.blogspot.com/2007/05/flashtexttextfieldgetrawtext.html"&gt;getRawText()&lt;/a&gt; to determine the text.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-3542242056373254342?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/3542242056373254342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=3542242056373254342' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/3542242056373254342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/3542242056373254342'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/05/flashtexttextfieldgetxmltext.html' title='flash.text.TextField.getXMLText()'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-6285724359089940127</id><published>2007-05-05T14:33:00.000-04:00</published><updated>2007-05-05T14:39:39.022-04:00</updated><title type='text'>flash.text.TextField.getRawText()</title><content type='html'>This function returns the entire text of the TextField as an unformatted String.  In other words, it appears to be the same as the &lt;code&gt;text&lt;/code&gt; property.  I can only assume that this function somehow accesses the internal representation of the TextField, while the &lt;code&gt;text&lt;/code&gt; property accesses some cached version of the text, however I have nothing to back this up at the moment.  Neither &lt;code&gt;text&lt;/code&gt; nor &lt;code&gt;getRawText()&lt;/code&gt; are implemented using each other.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-6285724359089940127?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/6285724359089940127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=6285724359089940127' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/6285724359089940127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/6285724359089940127'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/05/flashtexttextfieldgetrawtext.html' title='flash.text.TextField.getRawText()'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-3886012248582269939</id><published>2007-05-05T11:05:00.000-04:00</published><updated>2007-05-05T14:30:29.082-04:00</updated><title type='text'>flash.text.TextField.flashrichtext</title><content type='html'>flashrichtext is an xml schema that flash sometimes adheres to when passing around formated text.&lt;br /&gt;&lt;br /&gt;An example of the flashrichtext format of "&lt;u&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Hello &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;World&lt;/span&gt;&lt;/u&gt;" looks like this:&lt;br /&gt;&lt;code&gt;&amp;lt;flashrichtext version="1"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;textformat font="Arial" size="14" color="0" bold="false" italic="false" underline="true" url="" target="" align="left" leftmargin="0" rightmargin="0" indent="0" leading="2" blockindent="0" kerning="false" letterspacing="0" display="block"&amp;gt;(Hello )&amp;lt;/textformat&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;textformat font="Arial" size="14" color="16711680" bold="false" italic="false" underline="true" url="" target="" align="left" leftmargin="0" rightmargin="0" indent="0" leading="2" blockindent="0" kerning="false" letterspacing="0" display="block"&amp;gt;(World)&amp;lt;/textformat&amp;gt;&lt;br /&gt;&amp;lt;/flashrichtext&amp;gt;&lt;/code&gt;&lt;br /&gt;As you can see, the root node is "flashrichtext."  Each child node represents a run of text  (a continuous segment of text which has a single text format).  The attributes of the node define the format using the same formating names as flash.text.TextFormat, and the text of the node is the text itself surrounded by parentheses.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-3886012248582269939?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/3886012248582269939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=3886012248582269939' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/3886012248582269939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/3886012248582269939'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/05/flashtexttextfieldflashrichtext.html' title='flash.text.TextField.flashrichtext'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-1532102839791506868</id><published>2007-05-05T10:37:00.000-04:00</published><updated>2007-05-05T10:48:41.089-04:00</updated><title type='text'>flash.text.TextField.getTextRuns()</title><content type='html'>&lt;code&gt;Definition: getTextRuns(beingIndex:int = 0, endIndex:int = int.MAX_VALUE):Array&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;getTextRuns returns an Array of &lt;a href="http://nondocs.blogspot.com/2007/05/flashtexttextrun.html"&gt;flash.text.TextRun&lt;/a&gt; objects.  A TextRun represents a continuous segment of text which has a single text format.  In other words, this function parses text in a TextField by its formating.  All you have to do is iterate through the Array that is returned.  There is no setter equivalent (i.e. setTextRuns()).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-1532102839791506868?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/1532102839791506868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=1532102839791506868' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/1532102839791506868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/1532102839791506868'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/05/flashtexttextfieldgettextruns.html' title='flash.text.TextField.getTextRuns()'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-973153889785522045</id><published>2007-05-05T10:19:00.000-04:00</published><updated>2007-05-05T14:31:39.017-04:00</updated><title type='text'>flash.text.TextRun</title><content type='html'>Generally, you don't instantiate this class yourself.  Instead you retrieve and Array of TextRun objects by calling flash.text.TextField.getTextRuns(beginIndex:int, endIndex:int).  A text run simply represents a continuous segment of text which has a single text format.  So the string "&lt;span style="color: rgb(255, 0, 0);"&gt;12&lt;/span&gt;&lt;u&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;34&lt;/span&gt;56&lt;/u&gt;789" would have 4 TextRuns: "&lt;span style="color: rgb(255, 0, 0);"&gt;12&lt;span style="color: rgb(0, 0, 0);"&gt;", "&lt;/span&gt;&lt;/span&gt;&lt;u&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;34&lt;/span&gt;&lt;/u&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;", "&lt;/span&gt;&lt;/span&gt;&lt;u&gt;56&lt;/u&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;", "&lt;/span&gt;&lt;/span&gt;789".&lt;br /&gt;&lt;br /&gt;The estimated source of the TextRun class is:&lt;br /&gt;&lt;code&gt;public dynamic class TextRun extends Object {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public beginIndex:int;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public endIndex:int;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public textFormat:flash.text.TextFormat;&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;For more information see &lt;a href="http://nondocs.blogspot.com/2007/05/flashtexttextfieldgettextruns.html"&gt;flash.text.TextField.getTextRuns()&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-973153889785522045?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/973153889785522045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=973153889785522045' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/973153889785522045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/973153889785522045'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/05/flashtexttextrun.html' title='flash.text.TextRun'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-7016827299525655261</id><published>2007-05-03T22:57:00.000-04:00</published><updated>2007-05-12T23:20:48.362-04:00</updated><title type='text'>FAQ.text</title><content type='html'>TextArea, TextInput, Label, Text (all in the mx.controls package) all use mx.core.UITextField to render text.  If there was a method that you wish were in one of these text controls, it may be in flash.text.TextField (which is the grandparent of UITextField). There is a lot of information about how text operates in flash under &lt;a class="toggle"&gt;"flash.text.TextField&lt;/a&gt;" on this site.  But before you look through the undocumented features (see the navigation menu to your right), check the documented ones &lt;a href="http://livedocs.adobe.com/flex/201/langref/flash/text/TextField.html"&gt;here.&lt;/a&gt;  Documented highlights include:&lt;br /&gt;&lt;blockquote&gt;getCharBoundries, getCharIndexAtPoint, getFirstCharInParagraph, getLineIndexAtPoint, getLineIndexOfChar, getLineLength, getLineMetrics, getLineOffset, getLineText, getParagraphLength&lt;/blockquote&gt;You can access the UITextField of these mx controls by extending the control and accessing the protected &lt;code&gt;textField&lt;/code&gt; property or you can call &lt;code&gt;mx_internal::getTextField()&lt;/code&gt;.  See &lt;a href="http://nondocs.blogspot.com/2007/04/mxcoremxinternal.html"&gt;mx.core.mx_internal&lt;/a&gt; for how the later works.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-7016827299525655261?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/7016827299525655261/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=7016827299525655261' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/7016827299525655261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/7016827299525655261'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/05/faqtext.html' title='FAQ.text'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-4156315672734613580</id><published>2007-05-03T19:31:00.000-04:00</published><updated>2007-05-03T19:32:06.848-04:00</updated><title type='text'>Other.law.blogging</title><content type='html'>I don't have many comments on this, but the following article is good:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.avivadirectory.com/blogger-law"&gt;http://www.avivadirectory.com/blogger-law&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-4156315672734613580?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/4156315672734613580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=4156315672734613580' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/4156315672734613580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/4156315672734613580'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/05/otherlawblogging.html' title='Other.law.blogging'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-8305198017842820608</id><published>2007-05-01T20:22:00.000-04:00</published><updated>2007-05-21T12:39:30.521-04:00</updated><title type='text'>SDK.mxmlc/compiler</title><content type='html'>The advanced options for the compiler aren't in the docs.  But Renaun Erickson has a list of them &lt;a href="http://renaun.com/blog/2006/08/09/84/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Yet another list of things that I have to figure out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-8305198017842820608?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/8305198017842820608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=8305198017842820608' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/8305198017842820608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/8305198017842820608'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/05/sdkmxmlccompiler.html' title='SDK.mxmlc/compiler'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-2768980187126296009</id><published>2007-04-29T12:35:00.000-04:00</published><updated>2007-04-29T13:08:39.194-04:00</updated><title type='text'>How To.Hack the "internal" namespace</title><content type='html'>If you're looking for for information on &lt;code&gt;mx_internal&lt;/code&gt; go see &lt;a href="http://nondocs.blogspot.com/2007/04/mxcoremxinternal.html"&gt;mx.core.mx_internal&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This isn't so much undocumented as it is a hack.  I wouldn't do it, but it's still fun.&lt;br /&gt;&lt;br /&gt;Actually this technique seems pretty obvious once it occurs to you.  Since something under the internal namespace can only be accessed from within the same package, just put your own class with proxy functions in that package.&lt;br /&gt;&lt;br /&gt;So the obvious question becomes, what if the the internal function you want to access is in an swc?  If this is a case you can't just insert a class into it.  But you can create mimic the package structure in your own project and put the class there.  This will work fine.&lt;br /&gt;&lt;br /&gt;So let's say you want to call &lt;code&gt;form.invalidateLabelWidth()&lt;/code&gt; which happens to be marked internal.  In your own project simply create the directory structure, mx.containers.  In this new containers folder put create a class "FormInternalProxy", and then create the function:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;public static function invalidateLabelWidth(form:Form):void {&lt;br /&gt;   form.invalidateLabelWidth();&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;It's that simple.  I'm still looking into if something like this can be used to access private functions, but so far class naming conflicts seem to prevent it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-2768980187126296009?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/2768980187126296009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=2768980187126296009' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/2768980187126296009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/2768980187126296009'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/how-tohack-internal-namespace.html' title='How To.Hack the &quot;internal&quot; namespace'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-7592407053948606098</id><published>2007-04-28T22:49:00.000-04:00</published><updated>2007-04-29T12:35:30.875-04:00</updated><title type='text'>SDK.swfxprinter</title><content type='html'>Joe Berkovitz has reported on a little tool that dumps information about an swf (or swc) into a tidy XML.  His post is here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://joeberkovitz.com/blog/2007/04/08/secret-life-of-swfs/"&gt;http://joeberkovitz.com/blog/2007/04/08/secret-life-of-swfs/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But what can we do with this new found feature?&lt;br /&gt;&lt;br /&gt;The -showoffset option allows us to see many bytes each class takes up in the file (which can be very useful for optimization), and the location in the file.  The location is information flash and the flex compiler may need by I haven't found a way for the location to be useful to us yet.&lt;br /&gt;&lt;br /&gt;The -asm option returns (in very complex XML form) the definitions of the classes, methods and properties regardless of the namespace of entities.  This could be good for hacking someone else's compiled classes, but only for functions that aren't private and not documented, and most good programmers won't leave those types of functions lying around unless they really need to.  (Additionally, there are usually other, more efficient, ways to find these functions in my opinion, such as seeing what "Content Assist" comes up with.)  Additionally, this only gives you the definition, we still don't know how to use the newly found entities.&lt;br /&gt;&lt;br /&gt;I tried running this on the globalplayer.swc and very little interesting came out of it.  There don't appear to be any hidden namespaces.  There are a couple functions hidden in the internal (not mx_internal) namespace, but half of these have proxy functions in the public namespace and the other half involve low level features such as adding event listeners that I can't find a reason to mess with.&lt;br /&gt;&lt;br /&gt;All in all, it's an interesting tool, but I'm still looking for more uses.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-7592407053948606098?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/7592407053948606098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=7592407053948606098' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/7592407053948606098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/7592407053948606098'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/sdkswfxprinter.html' title='SDK.swfxprinter'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-2739190484594036430</id><published>2007-04-25T21:28:00.000-04:00</published><updated>2007-04-25T23:32:09.139-04:00</updated><title type='text'>metadata.PercentProxy</title><content type='html'>PercentProxy is very simple.  As you probably know, UIComponents allow you to define the width and height in MXML as pixels or percent:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;mx:UIComponent width=&amp;quot;50&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;mx:UIComponent width=&amp;quot;75%&amp;quot;/&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This is accomplished because the 'width' property/accessors in UIComponent has the metatag &lt;code&gt;[PercentProxy("percentWidth")]&lt;/code&gt; which redirects any width value set in MXML with &lt;code&gt;'%'&lt;/code&gt; on the end to the percentWidth property.  So in the examples above, &lt;code&gt;"50"&lt;/code&gt; sets &lt;code&gt;width&lt;/code&gt; to 50 and &lt;code&gt;"75%"&lt;/code&gt; sets &lt;code&gt;percentWidth&lt;/code&gt; to 75.&lt;br /&gt;&lt;br /&gt;Below is an example of creating a percent proxy for the amount of rows to be shown based on a list's dataprovider length:&lt;br /&gt;&lt;br /&gt;MyList.as:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;package &lt;br /&gt;{ &lt;br /&gt; import mx.controls.List;&lt;br /&gt;&lt;br /&gt; public class MyList extends List&lt;br /&gt; { &lt;br /&gt;  &lt;br /&gt;  [PercentProxy("rowsPercent")]&lt;br /&gt;  override public function get rowCount():int {&lt;br /&gt;   return super.rowCount;&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  override public function set rowCount(value:int):void {&lt;br /&gt;   super.rowCount = value;&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  public function get rowsPercent():Number {&lt;br /&gt;   return 100 * (rowCount / dataProvider.length);&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  public function set rowsPercent(value:Number):void {&lt;br /&gt;   rowCount = dataProvider.length * (value/100);&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt; }&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;ListTest.mxml:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;mx:Application xmlns:mx=&amp;quot;http://www.adobe.com/2006/mxml&amp;quot; layout=&amp;quot;horizontal&amp;quot; xmlns:local=&amp;quot;*&amp;quot;&amp;gt;&lt;br /&gt;   &amp;lt;local:MyList width=&amp;quot;100&amp;quot;&amp;gt;&lt;br /&gt;      &amp;lt;mx:Array&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row1&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row2&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row3&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row4&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row5&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row6&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row7&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row8&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row9&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row10&amp;lt;/mx:String&amp;gt;&lt;br /&gt;      &amp;lt;/mx:Array&amp;gt;&lt;br /&gt;   &amp;lt;/local:MyList&amp;gt;&lt;br /&gt;   &amp;lt;local:MyList width=&amp;quot;100&amp;quot; rowCount=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;      &amp;lt;mx:Array&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row1&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row2&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row3&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row4&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row5&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row6&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row7&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row8&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row9&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row10&amp;lt;/mx:String&amp;gt;&lt;br /&gt;      &amp;lt;/mx:Array&amp;gt;&amp;lt;/local:MyList&amp;gt; &lt;br /&gt;   &amp;lt;local:MyList  width=&amp;quot;100&amp;quot; rowCount=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;      &amp;lt;mx:Array&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row1&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row2&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row3&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row4&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row5&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row6&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row7&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row8&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row9&amp;lt;/mx:String&amp;gt;&lt;br /&gt;         &amp;lt;mx:String&amp;gt;row10&amp;lt;/mx:String&amp;gt;&lt;br /&gt;      &amp;lt;/mx:Array&amp;gt;&lt;br /&gt;   &amp;lt;/local:MyList&amp;gt;&lt;br /&gt;&amp;lt;/mx:Application&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-2739190484594036430?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/2739190484594036430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=2739190484594036430' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/2739190484594036430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/2739190484594036430'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/metadatapercentproxy.html' title='metadata.PercentProxy'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-3143640014020892255</id><published>2007-04-24T22:17:00.000-04:00</published><updated>2007-04-24T22:34:55.508-04:00</updated><title type='text'>metadata.SWF</title><content type='html'>In ActionScript projects you can set the width, height, background color and frame rate of the project by using the SWF tag.  It should be placed directly before the root class  This, like many other undocumented metatags, is a shortcut for compiler parameters. Example:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;[SWF(width="800", height="600" frameRate="30", backgroundColor="#FFFFFF")]&lt;br /&gt;public class MyRootClass extends Sprite {&lt;br /&gt;...&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;An Adobe reference can be found &lt;a href="http://www.morearty.com/blog/2006/06/27/setting-the-width-and-height-of-a-pure-actionscript-application/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-3143640014020892255?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/3143640014020892255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=3143640014020892255' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/3143640014020892255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/3143640014020892255'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/metadataswf.html' title='metadata.SWF'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-2747801979066415738</id><published>2007-04-22T22:28:00.001-04:00</published><updated>2007-05-12T23:13:06.727-04:00</updated><title type='text'>metadata.Frame</title><content type='html'>The closest thing we have to official documentation of the Frame metatag is at &lt;a href="http://blogs.adobe.com/rgonzalez/2006/06/modular_applications_part_2.html"&gt;http://blogs.adobe.com/rgonzalez/2006/06/modular_applications_part_2.html&lt;/a&gt;.  Important highlights include, "Note that the metadata is actually just an inline alias for the 'frames" compiler configuration option, which lets you explicitly specify the frame classes.' and "The rules [for the Frame tag] are a bit weird."  &lt;br /&gt;&lt;br /&gt;Examples from the mx framework are:&lt;br /&gt;&lt;code&gt;[Frame(factoryClass="mx.managers.SystemManager")] //mx.core.Application&lt;br /&gt;[Frame(factoryClass="mx.core.FlexApplicationBootstrap")] // mx.core.SimpleApplication&lt;br /&gt;[Frame(factoryClass="mx.core.FlexModuleFactory")] // mx.modules.Module and mx.modules.ModuleBase&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Really you should read Roger's post if you want to know what's going on, but I'll give you the short version:  The factory class defines the loader of the application /module which will load the application/module after the factory is initialized.  So for Application, the factory class is defined as mx.managers.SystemManager.  So when you start a flex application, SystemManager is instantiated which initializes many things and then starts the Application.&lt;br /&gt;&lt;br /&gt;So this tells us about the factoryClass property, but we still have the extraClass property to discuss.  You'll notice that the generated Class for your application (if you use the -keep-generated-actionscript option on your compiler) contains:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;[Frame(extraClass="_{MyApp}_FlexInit")]&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;So here's what it is as best as I can figure out.  This is also a inline shortcut for the compiler...almost.  The -includes class option allows you to link classes to your project.  Using this compiler option means you don't have to explicitly import the included class nor explicitly force code to link to the included class to use functions such as flash.utils.getDefinitionByName().  &lt;br /&gt;&lt;br /&gt;The extraClass tag does the same thing with one exception.  The compiler option also causes default styles to be generated on compile (from framework.swc I think), while the inline tag does not generate these defaults.  So if you want use the extraClass property of the Frame metatag, make sure you are not linking to a file which has default styles in the mx framework.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-2747801979066415738?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/2747801979066415738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=2747801979066415738' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/2747801979066415738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/2747801979066415738'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/metadataframe_22.html' title='metadata.Frame'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-8604120775783482789</id><published>2007-04-21T22:55:00.000-04:00</published><updated>2007-04-21T23:29:46.176-04:00</updated><title type='text'>metadata.Transient</title><content type='html'>I've never seen an authoritative source fully explain Transient, but we have a lot of things that give us the main idea.  It appears data marked as Transient is ignored in many cases, mostly having to do with Flex Data Services.  The short description of this tag appears to be that if you don't want a property saved or used by FDS, mark it as Transient.  Here's the supporting evidence:&lt;br /&gt;&lt;br /&gt;Peter Farland of Adobe has stated while referring to RemoteObject:&lt;br /&gt;"If you're worried that you'll need to send this type back to the server and you don't want these newly added dynamic properties to be sent to the server, then [...] you could simply declare that a particular concrete property on your client type was "transient" using [Transient] metadata - these properties wouldn't be included when instances were sent back to the server." (&lt;a href="http://www.mail-archive.com/flexcoders@yahoogroups.com/msg57899.html"&gt;full message here&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Additionally, Seth Hodgson of Adobe stated:&lt;br /&gt;"Try tagging the properties that you don't want managed in your [Managed] AS class as [&lt;span id="st" name="st" class="st"&gt;Transient&lt;/span&gt;]. This should prevent changes to them from being logged/committed." (&lt;a href="http://www.mail-archive.com/flexcoders@yahoogroups.com/msg38984.html"&gt;full message here&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;The only reference in the mx package is in mx.utils.ObjectUtil.getClassInfo().  This method returns information about a class and one of the parameters of the method defines whether or not to ignore properties marked by the Transient tag.&lt;br /&gt;&lt;br /&gt;The docs refer the concept of transience but they do not refer to the Transient tag specifically.&lt;br /&gt;&lt;br /&gt;*Interesting note: "transient" is a reserved word for possible future use.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-8604120775783482789?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/8604120775783482789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=8604120775783482789' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/8604120775783482789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/8604120775783482789'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/metadatatransient.html' title='metadata.Transient'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-7515054817711046534</id><published>2007-04-21T20:35:00.000-04:00</published><updated>2007-05-26T19:13:04.939-04:00</updated><title type='text'>metadata.MaxChildren</title><content type='html'>ButtonBar, LinkBar, and TabBar all have the metatag:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;[MaxChildren(0)]&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I think it's a legacy artifact (i.e. It does nothing).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-7515054817711046534?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/7515054817711046534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=7515054817711046534' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/7515054817711046534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/7515054817711046534'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/metadatamaxchildren.html' title='metadata.MaxChildren'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-3204498071795385442</id><published>2007-04-21T19:52:00.000-04:00</published><updated>2007-07-16T21:49:36.670-04:00</updated><title type='text'>mx.automation</title><content type='html'>The automation package allows for automated testing of Flex Applications.  QTP, the software to create and run the automated tests, currently ships only with Flex Data Services.  It  may technically be possible to use the mx.automation package without QTP, there is no official support for using mx.automation without using QTP.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-3204498071795385442?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/3204498071795385442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=3204498071795385442' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/3204498071795385442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/3204498071795385442'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/mxautomation.html' title='mx.automation'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-5774922360345360276</id><published>2007-04-21T19:35:00.000-04:00</published><updated>2007-04-22T19:00:20.531-04:00</updated><title type='text'>FAQ.Errors</title><content type='html'>I'm going to write up some errors that I commonly find, but for a more complete list you can look at (and contribute to) &lt;a href="http://editthis.info/flexerrorcodes/Main_Page"&gt;http://editthis.info/flexerrorcodes/Main_Page&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-5774922360345360276?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/5774922360345360276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=5774922360345360276' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/5774922360345360276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/5774922360345360276'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/flexfaqerrors.html' title='FAQ.Errors'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-2921193540174931166</id><published>2007-04-21T19:21:00.000-04:00</published><updated>2007-05-12T23:22:33.150-04:00</updated><title type='text'>FAQ.Errors.TypeError: Error #1034</title><content type='html'>If you are attempting to add a child to a mx.core.Container, the child must implement the interface mx.core.IUIComponent.  Exactly 2 classes directly implement this interface.  These are mx.core.UIComponent and mx.core.UITextField.  Additionally, IAxisRenderer, IDeferredInstantiationUIComponent, IListItemRenderer, IMenuBarItemRenderer, IToolTip subclass IUIComponent so classes implementing these interfaces can be added to Containers as well.  There are two ways to fix this problem:&lt;br /&gt;&lt;br /&gt;1. Add the child component that you are trying to add to a UIComponent (or other component that implements IUIComponent) and then add the UIComponent to the Container.&lt;br /&gt;&lt;br /&gt;2. Use a different child component.  i.e. If the child was a Loader, use SWFLoader instead.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-2921193540174931166?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/2921193540174931166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=2921193540174931166' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/2921193540174931166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/2921193540174931166'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/flexfaqerrorstypeerror-error-1034.html' title='FAQ.Errors.TypeError: Error #1034'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-9076911746313414230</id><published>2007-04-20T22:33:00.000-04:00</published><updated>2007-04-21T00:04:07.680-04:00</updated><title type='text'>flash.display.MovieClip</title><content type='html'>There's a method 'movieClip.addFrameScript.'  Content Assist defines the function as:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;movieClip.addFrameScript(rest:Array):void&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;but it appears to be used in this manner:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;movieClip.addFrameScript(frameNumber:int, frameExecutionCompleteListener:Function):void&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-9076911746313414230?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/9076911746313414230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=9076911746313414230' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/9076911746313414230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/9076911746313414230'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/flashdisplaymovieclip.html' title='flash.display.MovieClip'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-6434734185184433122</id><published>2007-04-09T22:00:00.000-04:00</published><updated>2007-04-09T22:02:19.733-04:00</updated><title type='text'>flash.debugger.enterDebugger()</title><content type='html'>This function is the same as setting a breakpoint.  It has no effect on code running in non-debug mode:&lt;br /&gt;&lt;a href="http://livedocs.adobe.com/labs/as3preview/langref/flash/debugger/package-detail.html"&gt;http://livedocs.adobe.com/labs/as3preview/langref/flash/debugger/package-detail.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-6434734185184433122?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/6434734185184433122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=6434734185184433122' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/6434734185184433122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/6434734185184433122'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/flashdebuggerenterdebugger.html' title='flash.debugger.enterDebugger()'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-4896399869330801211</id><published>2007-04-09T21:53:00.000-04:00</published><updated>2007-04-09T21:56:55.954-04:00</updated><title type='text'>adobe.utils</title><content type='html'>"The adobe.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;utils&lt;/span&gt; package contains functions and classes used by Flash authoring tool developers":&lt;br /&gt;&lt;a href="http://livedocs.adobe.com/labs/as3preview/langref/adobe/utils/package-detail.html"&gt;http://livedocs.adobe.com/labs/as3preview/langref/adobe/utils/package-detail.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Flex programmers shouldn't be interested in this, but now at least you can stop wondering what it is.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-4896399869330801211?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/4896399869330801211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=4896399869330801211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/4896399869330801211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/4896399869330801211'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/adobeutils.html' title='adobe.utils'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-4238982608549418032</id><published>2007-04-09T21:37:00.001-04:00</published><updated>2007-05-20T13:08:43.572-04:00</updated><title type='text'>FAQ.MouseEvents</title><content type='html'>1. Why won't my component register mouse events?&lt;br /&gt;&lt;ol&gt;&lt;li&gt;For mouse events to fire, the mouseEnabled property of the object must equal true.&lt;/li&gt;&lt;li&gt;If a parent of your component has mouseChildren set to false, none of the children will receive the mouse events.&lt;/li&gt;&lt;li&gt;Children receive mouseEnabled events before there parents and have the opportunity to halt these events by calling event.stopPropagation() or event.stopImmediatePropagation().  In this case your component will never hear the mouse event.  The easiest way to test for this is to set mouseChildrenEnabled to false because then the children will not process the event and will not have an opportunity to halt it.  If the event fires after doing this, one of the children is halting the event.&lt;/li&gt;&lt;li&gt;The mouse must be over the hit area of the component for an event to fire.  By default, the hit area consists of all of the drawn pixels in the component, not the rectangular bounds of the component.  To redefine the hit area without changing the appearance, you can either set the hitArea property or you can draw transparent pixels using the Graphics class:&lt;br /&gt;&lt;code&gt;component.graphics.beginFill(0,0); // set graphics to draw transparent pixels&lt;br /&gt;component.graphics.drawRect(0,0,component.width,component.height); // draw transparent pixels over entirety of component&lt;/code&gt;&lt;/li&gt;&lt;li&gt;It is possible that a "shield" component is in front of the intended mouse target.  If the "shield" component has mouseEnabled = true and has transparently drawn pixels as explained in answer 4 above, this component will intercept the mouse events.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-4238982608549418032?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/4238982608549418032/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=4238982608549418032' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/4238982608549418032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/4238982608549418032'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/flexfaqmouseevents.html' title='FAQ.MouseEvents'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-5499460116736607216</id><published>2007-04-09T21:34:00.000-04:00</published><updated>2007-04-22T18:59:06.123-04:00</updated><title type='text'>How To.Get the URL of the SWF</title><content type='html'>&lt;code&gt;var appURL:String = Application.application.url;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-5499460116736607216?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/5499460116736607216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=5499460116736607216' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/5499460116736607216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/5499460116736607216'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/flexhowtoget-url-of-swf.html' title='How To.Get the URL of the SWF'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-1539544765510710016</id><published>2007-04-08T23:02:00.000-04:00</published><updated>2007-10-22T22:50:39.558-04:00</updated><title type='text'>How To.Instantiate Class From Class Name</title><content type='html'>One frequently asked question is how to instantiate a Class if you don't know the Class until runtime.  The "&lt;a href="http://livedocs.adobe.com/flex/201/langref/operators.html"&gt;new&lt;/a&gt;" operator simply operates on a Class.  There's no reason that class has to be hard coded.  It could be a variable of &lt;a href="http://livedocs.adobe.com/flex/201/langref/Class.html"&gt;Class&lt;/a&gt; type.  The trick then becomes setting the variable.  Often this is done by using &lt;a href="http://livedocs.adobe.com/flex/201/langref/flash/utils/package.html"&gt;getDefintionByName&lt;/a&gt;() as below:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" applicationComplete="init()"&amp;gt;&lt;br /&gt;  &amp;lt;mx:Script&amp;gt;&lt;br /&gt;     &amp;lt;![CDATA[&lt;br /&gt;        import flash.utils.getDefinitionByName;&lt;br /&gt;        import myPackage.mySubPackage.MyClass;  // all classes you may want to instantiate should be imported.&lt;br /&gt;        import myPackage.mySubPackage.MyClass2;  // all classes you may want to instantiate should be imported.&lt;br /&gt;    &lt;br /&gt;        public var dummy:MyClass;  // forces "MyClass" to be linked in by the complier";&lt;br /&gt;        public var dummy:MyClass2;  // forces "MyClass2" to be linked in by the complier";&lt;br /&gt;&lt;br /&gt;        public function init():void {&lt;br /&gt;           var className:String;&lt;br /&gt;           if (true) { // really this should be a useful conditional&lt;br /&gt;              className = "myPackage.mySubPackage.MyClass";  //use fully qualified name&lt;br /&gt;           } else {&lt;br /&gt;              className = "myPackage.mySubPackage.MyClass2";  //use fully qualified name&lt;br /&gt;           }&lt;br /&gt;           var definition:Class = getDefinitionByName(className) as Class; // get class&lt;br /&gt;           var myInstance:Object = new definition();  // create new instance of the class of type MyClass&lt;br /&gt;        }&lt;br /&gt;      ]]&amp;gt;&lt;br /&gt;&amp;lt;/mx:Script&amp;gt;&lt;br /&gt;&amp;lt;/mx:Application&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;However this requires you to have the fully qualified name.  Sometimes this isn't practical.  You could thus do something simpler which requires a little more hard coding:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" applicationComplete="init()"&amp;gt;&lt;br /&gt;  &amp;lt;mx:Script&amp;gt;&lt;br /&gt;     &amp;lt;![CDATA[&lt;br /&gt;        import flash.utils.getDefinitionByName;&lt;br /&gt;        import myPackage.mySubPackage.MyClass;&lt;br /&gt;        import myPackage.mySubPackage.MyClass2;&lt;br /&gt;&lt;br /&gt;        public function init():void {&lt;br /&gt;           var definition:Class;&lt;br /&gt;           if (true) { // really this should be a useful conditional&lt;br /&gt;              definition = myClass;&lt;br /&gt;           } else {&lt;br /&gt;              definition = myClass2&lt;br /&gt;           }&lt;br /&gt;           var myInstance:Object = new definition();  // create new instance of the class of type &lt;/code&gt;&lt;br /&gt;&lt;code&gt;MyClass&lt;/code&gt;&lt;code&gt;            }&lt;br /&gt;      ]]&amp;gt;&lt;br /&gt;&amp;lt;/mx:Script&amp;gt;&lt;br /&gt;&amp;lt;/mx:Application&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Lastly, any classes that are dynamically instantiated have to have been compiled into the SWF (or retrieved from a module/RSL/etc).  Simply importing a Class does not accomplish this. (Importing is simply a way so you don't have to write the package name in front of the class every time.)  There are three main ways (that I know of) to link a Class into a project. &lt;br /&gt;&lt;br /&gt;The first is the method is to use the Class somewhere in the code.  Examples of this include (as above) defining a variable of the class type or assigning the Class to a variable of type Class.  Another example is rschmidt's comment below that you can instantiate an array that holds the classes.&lt;br /&gt;&lt;br /&gt;The second method is to use the extraClass property of the &lt;a href="http://nondocs.blogspot.com/2007/04/metadataframe_22.html"&gt;Frame&lt;/a&gt; or Mixin tag.  Warning, these methods may cause linkage problems.&lt;br /&gt;&lt;br /&gt;Lastly, you can use the &lt;a href="http://livedocs.adobe.com/flex/201/html/compilers_123_24.html"&gt;compiler&lt;/a&gt; options (how boring).&lt;br /&gt;&lt;br /&gt;Personally, I think I prefer rschmidt's method.  It's the most economical with code (and probably other resources as well).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-1539544765510710016?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/1539544765510710016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=1539544765510710016' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/1539544765510710016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/1539544765510710016'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/flexhowtoinstantiate-class-from-class.html' title='How To.Instantiate Class From Class Name'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-5641017573712052163</id><published>2007-04-06T21:28:00.000-04:00</published><updated>2007-04-28T11:34:50.229-04:00</updated><title type='text'>Other.site.suggestions</title><content type='html'>Post your suggests for site design/improvement here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-5641017573712052163?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/5641017573712052163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=5641017573712052163' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/5641017573712052163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/5641017573712052163'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/sitesuggestions.html' title='Other.site.suggestions'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-1357620159212380926</id><published>2007-04-06T18:31:00.000-04:00</published><updated>2007-04-21T22:43:58.106-04:00</updated><title type='text'>metadata.Mixin</title><content type='html'>From Alex Harui of Adobe:&lt;br /&gt;"...use at your own risk.  [mixin] puts the class in a list of things to get called back by systemManager at startup."&lt;br /&gt;&lt;br /&gt;The function that gets called is:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;public static function init(root:DisplayObject):void&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This gets called by SystemManager or FlexModuleFactory after the Flex Application or module is initialized.&lt;br /&gt;&lt;br /&gt;Some indirect discussion of mixin can be found in the "Building and Deploying Flex 2 Applications" docs in Chapter 14: "Creating Applications for Testing."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-1357620159212380926?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/1357620159212380926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=1357620159212380926' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/1357620159212380926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/1357620159212380926'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/metadatamixin.html' title='metadata.Mixin'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-463556661017973239</id><published>2007-04-06T18:20:00.000-04:00</published><updated>2007-04-06T18:26:13.036-04:00</updated><title type='text'>metadata.ExcludeClass</title><content type='html'>This on is real simple.  "[ExcludeClass]" means that the class and its methods/properties/etc won't show up in intellisense.  You can still import it, you can still use it, it's just harder to find.  If you come across a class in the mx package marked with [ExcludeClass], then you're probably not supposed to use it directly.  My personal guess is that these classes aren't stable and could change with any update.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-463556661017973239?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/463556661017973239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=463556661017973239' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/463556661017973239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/463556661017973239'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/metadataexcludeclass.html' title='metadata.ExcludeClass'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-1740340796590351133</id><published>2007-04-06T17:13:00.000-04:00</published><updated>2007-04-21T22:31:32.423-04:00</updated><title type='text'>metadata.Exclude</title><content type='html'>From Gordon Smith of Adobe:&lt;br /&gt;"Use [Exclude] metadata to exclude properties, methods, events, styles, or effects that don't apply to the subclass."&lt;br /&gt;&lt;br /&gt;However, this seems to only apply to the MXML designer.  If you look at the source code in the mx package, all excluded functions and properties are also overridden to do nothing so that actionscript code can't use them and the asdoc tags are marked as private so they don't show up in the docs.&lt;br /&gt;The exclude tag only applies to what is inherited, so if an excluded function/variable is extended, then the exclude tag will not stop that newly redefined variable to be propagated to it's decedents.   The exclude tag will need to be redeclared in a decedent to reinstate the exclusion.  The "direction" property in Box, HBox and GridItem is a good example of this.&lt;br /&gt;&lt;br /&gt;mx.containers.&lt;a href="http://livedocs.adobe.com/flex/201/langref/mx/containers/GridItem.html"&gt;GridItem&lt;/a&gt;, which extends HBox, appears to have an example of each kind.  Here's an example for each "kind" from GridItem.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;[Exclude(name="direction", kind="property")]&lt;br /&gt;[Exclude(name="setFocus", kind="method")]&lt;br /&gt;[Exclude(name="focusIn", kind="event")] // notice this references the event type FocusEvent.FOCUS_IN&lt;br /&gt;[Exclude(name="horizontalGap", kind="style")]&lt;br /&gt;[Exclude(name="focusInEffect", kind="effect")] &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Documentation relating to ASDocs can be found &lt;a href="http://livedocs.adobe.com/flex/201/html/asdoc_127_3.html#192223"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-1740340796590351133?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/1740340796590351133/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=1740340796590351133' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/1740340796590351133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/1740340796590351133'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/metadataexclude.html' title='metadata.Exclude'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-1300083216674891599</id><published>2007-04-06T12:29:00.000-04:00</published><updated>2007-04-22T18:58:45.259-04:00</updated><title type='text'>How To</title><content type='html'>If you have something you want answered, add a comment here.&lt;br /&gt;If you see a question you want to answer, email it to me and I'll put it up and credit you.&lt;br /&gt;&lt;br /&gt;My Questions:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Undocumented metadata tags (&lt;a href="http://nondocs.blogspot.com/2007/04/metadata.html"&gt;list&lt;/a&gt;)&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-1300083216674891599?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/1300083216674891599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=1300083216674891599' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/1300083216674891599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/1300083216674891599'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/flexopen-questions.html' title='How To'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-8289505074779574016</id><published>2007-04-06T01:24:00.001-04:00</published><updated>2007-04-22T18:59:27.196-04:00</updated><title type='text'>How To.Global Keyboard Listener</title><content type='html'>If you've ever tried listening to the Application for a KeyboardEvent you'll know that the listener doesn't always fire.  To fix this, add the event listener to the stage.  You can get to the stage by accessing the stage property of any DisplayObject.  Example:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Application.application.stage.addEventListener(KeyboardEvent.KEY_DOWN,globalKeyDownListener);&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-8289505074779574016?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/8289505074779574016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=8289505074779574016' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/8289505074779574016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/8289505074779574016'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/howtoglobal-keyboard-listener.html' title='How To.Global Keyboard Listener'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-1257455861815188797</id><published>2007-04-06T01:22:00.001-04:00</published><updated>2007-04-22T19:01:27.503-04:00</updated><title type='text'>FAQ.percentWidth/PercentHeight</title><content type='html'>&lt;code&gt;&lt;mx:Canvas id="myCanvas" width="100%"/&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;is the same as:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;myCanvas.percentWidth = 100;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The same goes for height and percentHeight.  This can be used on any UIComponent.&lt;br /&gt;&lt;br /&gt;IMPORTANT:&lt;br /&gt;If you set percentWidth and percentHeight of a UIComponent whose's parent is not a Container these properties may not effect the size of the UIComponent.  This is because&lt;br /&gt;UIComponents do not actually check percentWidth and percentHeight.  Instead the UIComponent's parent Container checks it's childrens' percentWidth and percentHeight and resizes the children accordingly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-1257455861815188797?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/1257455861815188797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=1257455861815188797' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/1257455861815188797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/1257455861815188797'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/flexfaqpercentwidthpercentheight.html' title='FAQ.percentWidth/PercentHeight'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-6681813659027631697</id><published>2007-04-06T01:16:00.001-04:00</published><updated>2007-05-27T11:59:09.292-04:00</updated><title type='text'>metadata</title><content type='html'>Information on the following tags can be found &lt;a href="http://livedocs.adobe.com/flex/201/html/metadata_141_01.html"&gt;here&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;ArrayElementType&lt;br /&gt;Bindable&lt;br /&gt;DefaultProperty&lt;br /&gt;Effect&lt;br /&gt;Embed&lt;br /&gt;Event&lt;br /&gt;IconFile&lt;br /&gt;Inspectable&lt;br /&gt;InstanceType&lt;br /&gt;NonCommittingChangeEvent&lt;br /&gt;Style&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Other Tags:&lt;br /&gt;&lt;blockquote&gt;&lt;a href="http://nondocs.blogspot.com/2007/04/metadataexclude.html"&gt;Exclude&lt;/a&gt;&lt;br /&gt;&lt;a href="http://nondocs.blogspot.com/2007/04/metadatamixin.html"&gt;Mixin&lt;/a&gt;&lt;br /&gt;&lt;a href="http://livedocs.adobe.com/flex/201/html/l10n_076_4.html"&gt;ResourceBundle (Localization)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://livedocs.adobe.com/flex/201/html/ent_services_config_097_06.html"&gt;RemoteClass (Data Services)&lt;/a&gt;&lt;br /&gt;Managed (Data Services) &lt;a href="http://livedocs.adobe.com/flex/201/html/data_collections_105_1.html"&gt;Reference 1&lt;/a&gt; &lt;a href="http://livedocs.adobe.com/flex/201/html/data_collection_config_106_01.html"&gt;Reference 2&lt;/a&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Not Documented Tags (or I haven't found them yet).  They will gain their own pages when I figure out what they do:&lt;br /&gt;&lt;blockquote&gt;AccessibilityClass&lt;br /&gt;ChangeEvent&lt;br /&gt;CollapseWhiteSpace&lt;br /&gt;&lt;a href="http://nondocs.blogspot.com/2007/05/metadatadeprecated.html"&gt;Deprecated&lt;/a&gt;&lt;br /&gt;&lt;a href="http://nondocs.blogspot.com/2007/04/metadataexcludeclass.html"&gt;ExcludeClass&lt;/a&gt;&lt;br /&gt;&lt;a href="http://nondocs.blogspot.com/2007/04/metadataframe_22.html"&gt;Frame&lt;/a&gt;&lt;br /&gt;&lt;a href="http://nondocs.blogspot.com/2007/04/metadatapercentproxy.html"&gt;PercentProxy&lt;/a&gt;&lt;br /&gt;RequiresLicense&lt;br /&gt;&lt;a href="http://nondocs.blogspot.com/2007/04/metadataswf.html"&gt;SWF&lt;/a&gt;&lt;br /&gt;&lt;a href="http://nondocs.blogspot.com/2007/04/metadatatransient.html"&gt;Transient&lt;/a&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Tags Found In The mx Package That Are Believed To Do Nothing:&lt;br /&gt;&lt;blockquote&gt;DataBindingInfo&lt;br /&gt;DefaultBindingProperty (&lt;a href="http://www.nabble.com/forum/ViewPost.jtp?post=10295318&amp;framed=y"&gt;Reference&lt;/a&gt;)&lt;br /&gt;DefaultTriggerEvent (&lt;a href="http://www.nabble.com/forum/ViewPost.jtp?post=10295318&amp;amp;framed=y"&gt;Reference&lt;/a&gt;)&lt;br /&gt;MaxChildren&lt;br /&gt;RequiresDataBinding (&lt;a href="http://www.nabble.com/forum/ViewPost.jtp?post=10295318&amp;amp;framed=y"&gt;Reference&lt;/a&gt;)&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-6681813659027631697?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/6681813659027631697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=6681813659027631697' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/6681813659027631697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/6681813659027631697'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/metadata.html' title='metadata'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-6100376138906565143</id><published>2007-04-06T01:01:00.002-04:00</published><updated>2007-04-06T20:54:43.881-04:00</updated><title type='text'>mx.controls.Slider/HSlider/VSlider</title><content type='html'>How to add and removes thumbs:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;mx:Application xmlns:mx=&amp;quot;http://www.adobe.com/2006/mxml&amp;quot; layout=&amp;quot;vertical&amp;quot;&amp;gt;&lt;br /&gt;   &amp;lt;mx:Script&amp;gt;&lt;br /&gt;         &amp;lt;![CDATA[&lt;br /&gt;&lt;br /&gt;         public function add(event:MouseEvent):void {&lt;br /&gt;            slider.thumbCount++; // add new thumb&lt;br /&gt;&lt;br /&gt;            //! if you don't set the value of the new thumb all thumbs will reset&lt;br /&gt;            // thumbCount-1 is the last one added&lt;br /&gt;            // 5 is a number i randomly picked&lt;br /&gt;            slider.setThumbValueAt(slider.thumbCount-1,5); &lt;br /&gt;         }&lt;br /&gt;         public function remove(event:MouseEvent):void {&lt;br /&gt;            var index:int = 0; // the index of the thumb to be removed, indices are constant even with allowThumbOverlap=&amp;quot;true&amp;quot;&lt;br /&gt;            slider.thumbCount--; // remove thumb&lt;br /&gt;            var values1:Array = slider.values; // get values of slider&lt;br /&gt;            values1.splice(index,1); // splice value at index out or the last one will be choped of by default&lt;br /&gt;            slider.values = values1; // set updated values&lt;br /&gt;         }&lt;br /&gt;      ]]&amp;gt;&lt;br /&gt;   &amp;lt;/mx:Script&amp;gt;&lt;br /&gt;   &amp;lt;mx:HSlider id=&amp;quot;slider&amp;quot; thumbCount=&amp;quot;2&amp;quot; allowThumbOverlap=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;   &amp;lt;mx:Button click=&amp;quot;add(event)&amp;quot; label=&amp;quot;add&amp;quot;/&amp;gt;&lt;br /&gt;   &amp;lt;mx:Button click=&amp;quot;remove(event)&amp;quot; label=&amp;quot;remove&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/mx:Application&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-6100376138906565143?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/6100376138906565143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=6100376138906565143' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/6100376138906565143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/6100376138906565143'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/mxcontrolssliderhslidervslider.html' title='mx.controls.Slider/HSlider/VSlider'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-3160598504831699095</id><published>2007-04-06T01:01:00.001-04:00</published><updated>2007-04-14T14:16:44.214-04:00</updated><title type='text'>mx.utils.XMLNotifier</title><content type='html'>Disclaimer: Undocumented Classes may be unstable.  When Flex is updated, use of this class may cause your code to break.&lt;br /&gt;&lt;br /&gt;XMLNotifier allows you to listen to XML and XMLList objects for events.  So ask yourself, "Why am I know just wrapping my XML or XMLList in an XMLListCollection, which already supports events?  You should only proceed if you have a really good answer.&lt;br /&gt;&lt;br /&gt;Code comments in the class state:&lt;br /&gt;&lt;blockquote&gt;"Used for watching changes to XML and XMLList objects.  Those objects are not EventDispatchers, so if multiple elements want to watch for changes they need to go through this mechanism.  Call watchXML(), passing in the same notification function that you would pass to XML.notification.  Use unwatchXML() to remove that notification."&lt;/blockquote&gt;This is pretty straight forward.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;public function watchXML(xml:Object, notifiable:IXMLNotifiable):void // equivalent to xml.addEventListener(notifiable);&lt;br /&gt;public function unwatchXML(xml:Object, notifiable:IXMLNotifiable):void // equivalent to xml.removeEventListener(notifiable);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Note that this class is a singleton so call XMLNotifier.getInstance() to retrieve the instance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-3160598504831699095?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/3160598504831699095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=3160598504831699095' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/3160598504831699095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/3160598504831699095'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/mxutilsxmlnotifier.html' title='mx.utils.XMLNotifier'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-3728332016037581588</id><published>2007-04-06T01:00:00.003-04:00</published><updated>2007-04-14T14:49:23.124-04:00</updated><title type='text'>mx.utils.IXMLNotifiable</title><content type='html'>This interface defines the definition of the listener for XML and XMLList objects that are watched using mx.utils.XMLNotifier.  The definition is&lt;br /&gt;&lt;br /&gt;&lt;code&gt;function xmlNotification(currentTarget:Object, type:String, target:Object, value:Object, detail:Object):void;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;It appears the the listener that calls xmlNotification bubbles up the event from the XML object (node, attribute or text) up the XML hierarchy until it reaches the XML object that registered the listener.&lt;br /&gt;&lt;br /&gt;Description:&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;function xmlNotification(currentTarget:Object, type:String, target:Object, value:Object, detail:Object):void {&lt;br /&gt;  // current target appears to be the object that registered the watcher, but don't quote me on that.&lt;br /&gt;  // target appears to be XML object that is being acted upon.&lt;br /&gt;  switch(type) {&lt;br /&gt;     case "attributeAdded":&lt;br /&gt;        // name of attribute == value&lt;br /&gt;        // value of attribute == detail&lt;br /&gt;     case "attributeChanged":&lt;br /&gt;        // name of attribute == value&lt;br /&gt;        // old value of attribute == detail&lt;br /&gt;     case "attributeRemoved":&lt;br /&gt;        // name of attribute == value&lt;br /&gt;        // value of attribute before removal == detail&lt;br /&gt;     case "nodeAdded":&lt;br /&gt;        // added node == value&lt;br /&gt;     case "nodeChanged":&lt;br /&gt;        // node == value&lt;br /&gt;        // copy of old node == detail&lt;br /&gt;     case "nodeRemoved":&lt;br /&gt;        // removed node == value&lt;br /&gt;     case "textSet":&lt;br /&gt;        // next text == value&lt;br /&gt;        // old text == detail&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-3728332016037581588?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/3728332016037581588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=3728332016037581588' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/3728332016037581588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/3728332016037581588'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/mxutilsixmlnotifiable.html' title='mx.utils.IXMLNotifiable'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-8651105270182962412</id><published>2007-04-06T00:57:00.001-04:00</published><updated>2007-04-29T14:44:57.443-04:00</updated><title type='text'>Other.law.Trademarks</title><content type='html'>DISCLAIMER: I am not a lawyer.  This is an overview and should not and may not be used as legal advice or a legal authority.&lt;br /&gt;&lt;br /&gt;The Short Version:&lt;br /&gt;A trademark uniquely identifies one product or company in context of the trademarks' use.  The purpose of trademarks is eliminate confusion in the market place.  So, for example, I couldn't make a software program called Flex because Flex is a trademark of Adobe.  However, I could create an exercise video and call it Flex because there is no way the two could be confused in context.  &lt;br /&gt;&lt;br /&gt;What will cause confusion is a subjective.  Microsoft claimed that "Lindows" infringed on the "Windows" trademark because users would think, solely based on the name, that "Lindows" was made by the same company as Windows.  However, I could open a store "My Corner Store" in Philadelphia and trademark the name despite the fact that someone had already created a store with the exact same name in San Fransisco because it is unlikely that the two will be confused.&lt;br /&gt;&lt;br /&gt;Trademarks need not be words.  A trademark can be anything used for identification.  Blogger's logo in the top left corner of this page is a trademark.  Sounds, colors and motion can be trademarked (although these are less common and harder to enfocre).&lt;br /&gt;&lt;br /&gt;Lastly, trademarks do not expire, but they do dissolve when they stop functioning as a unique identifier.  The most famous example is Aspirin which used to be a specific drug made by one company.  However, people started referring to the generic form of Aspirin as Aspirin and eventually, in the public's mind, the word Aspirin referred to either the brand name or the generic version of the drug.  Thus the trademark on Aspirin was lost because it no longer unquietly identified as specific product.&lt;br /&gt;&lt;br /&gt;While I would never endorse Wikipedia as an authoritative source, &lt;a href="http://en.wikipedia.org/wiki/Trademark"&gt;their article&lt;/a&gt; is a good starting point for more complete information.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-8651105270182962412?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/8651105270182962412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=8651105270182962412' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/8651105270182962412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/8651105270182962412'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/lawtrademarks.html' title='Other.law.Trademarks'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-352976143527189853</id><published>2007-04-05T00:26:00.001-04:00</published><updated>2007-04-06T11:36:35.340-04:00</updated><title type='text'>mx.core.mx_internal</title><content type='html'>WARNING:&lt;br /&gt;Gordon Smith of Adobe had this to say about mx_internal:&lt;br /&gt;&lt;a href="http://www.mail-archive.com/flexcomponents@yahoogroups.com/msg00942.html"&gt;"Anything in the mx_internal namespace is not officially supported and may go away in a future release without notice."&lt;/a&gt;&lt;br /&gt;In other words, if you use mx_internal and your code one day breaks, don't say nobody warned you.&lt;br /&gt;&lt;br /&gt;If this doesn't scare you, then something like the following has been making you bang your head against the wall for a while:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;mx_internal function getSomethingUseful() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return exactlyWhatIWant;&lt;br /&gt;}&lt;br /&gt;// or&lt;br /&gt;mx_internal var variableIReallyWant;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;What to do now?&lt;br /&gt;First go read about &lt;a href="http://livedocs.adobe.com/flex/201/langref/Namespace.html"&gt;namespaces&lt;/a&gt;.  mx_internal is a namespace.  If you know what a namespace is, great.  Otherwise I would read up on it.&lt;br /&gt;&lt;br /&gt;Now that you know what a namespace is and how to use it, you don't need my help anymore...but for the other 90% that didn't read up or are like me and just need to see it in action once, here's an example:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;import mx.core.mx_internal;&lt;br /&gt;...&lt;br /&gt;use namespace mx_internal; // put right after import statements&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Seriously, that's it.  Sure the function/variable still doesn't show up in intellisense, but try to access it anyway.  The compiler won't throw and error and your code will work.  Alternately you can also do this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;import mx.core.mx_internal;&lt;br /&gt;...&lt;br /&gt;componentInstance.mx_internal::variableIReallyWantToSet = valueIWantToSetItTo;&lt;br /&gt;// or&lt;br /&gt;mx_internal::variableIReallyWantToSet = valueIWantToSetItTo; // same as using this.mx_internal::variableIReallyWantToSet&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Then again, if you had read up on namespaces, you'd already know that.&lt;br /&gt;Go forth and be merry...and hope Adobe doesn't change anything you've used.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-352976143527189853?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/352976143527189853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=352976143527189853' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/352976143527189853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/352976143527189853'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/mxcoremxinternal.html' title='mx.core.mx_internal'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586452099862540857.post-3308446660384440185</id><published>2007-04-05T00:20:00.000-04:00</published><updated>2007-06-02T21:45:11.144-04:00</updated><title type='text'>FAQ.You Can't Do That</title><content type='html'>Here's an (obviously incomplete) list of things you can't do with flex.  Sorry.  But at least now you can stop searching.&lt;br /&gt;&lt;br /&gt;1. Browse, Access or Load a file directly from the local hard drive or file system without using flash.net.&lt;a href="http://livedocs.adobe.com/flex/201/langref/flash/net/FileReference.html"&gt;FileReference&lt;/a&gt; or &lt;a href="http://livedocs.adobe.com/flex/201/langref/flash/net/FileReferenceList.html"&gt;FileReferenceList&lt;/a&gt; and bouncing the file off the server.&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;One caveat to this.  Flex can't do this alone, but A Java applet or ActiveX control can...and these controls can talk to javascript on the web page...and the javascript on the webpage can talk to Flex using flash.net.  &lt;a href="http://www.kellyjo.com/blog/index.cfm/2007/2/20/Accessing-the-Local-File-System-with-Flex"&gt;Here's code to do it&lt;/a&gt;.&lt;br /&gt;&lt;/blockquote&gt;2. Import an Excel File.&lt;br /&gt;&lt;blockquote&gt;See above, although Excel data can be  copied and pasted.  When a user copies data out of Excel, the clipboard receives the tab delimited transformation of the copied cells.&lt;br /&gt;&lt;/blockquote&gt;3. Extend the &lt;a href="http://livedocs.adobe.com/flex/201/langref/flash/display/Graphics.htm"&gt;Graphics&lt;/a&gt; Class.&lt;br /&gt;&lt;blockquote&gt;Flash.Display.Graphics is marked final so you can't override it.  You can wrap it in another class.  Example forthcoming.&lt;br /&gt;&lt;/blockquote&gt;4. Draw Text without using a flash.text.&lt;a href="http://livedocs.adobe.com/flex/201/langref/flash/text/TextField.html"&gt;TextField&lt;/a&gt; or flash.text.&lt;a href="http://livedocs.adobe.com/flex/201/langref/flash/text/StaticText.html"&gt;StaticText&lt;/a&gt;.&lt;br /&gt;&lt;blockquote&gt;These are all you have (all mx controls use these text controls to render text).&lt;br /&gt;&lt;/blockquote&gt;5. Change the appearance of the caret in a &lt;a href="http://livedocs.adobe.com/flex/201/langref/flash/text/TextField.html"&gt;TextField&lt;/a&gt;.&lt;br /&gt;&lt;blockquote&gt;There are various workarounds to this.  Toggling the editable or enabled property will revert the caret back to a mouse pointer, but then you can't select text.  You could always put a mouse enabled UIComponent over the TextField and programmatically process the mouse events of the UIComponent to select the TextField using the location of the mouse and TextField.getCharAtPoint().&lt;br /&gt;&lt;/blockquote&gt;6. Change the color indicating selected text.&lt;br /&gt;&lt;br /&gt;7. Call super.super (the grandparent class)&lt;br /&gt;&lt;br /&gt;8. Multiple Inheritance&lt;br /&gt;&lt;blockquote&gt;Some people disagree with me on this one.  &lt;a href="http://www.darronschall.com/weblog/archives/000245.cfm"&gt;Here's&lt;/a&gt; the best proposed method I've seen.&lt;br /&gt;&lt;/blockquote&gt;9. Overload Operators or Methods.&lt;br /&gt;&lt;br /&gt;10. Determine the parameters to be used for a web service using the mx.rpc.WebService or mx.rpc.mxml.WebService. (&lt;a href="http://www.mail-archive.com/flexcoders@yahoogroups.com/msg61046.html"&gt;Reference&lt;/a&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586452099862540857-3308446660384440185?l=nondocs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nondocs.blogspot.com/feeds/3308446660384440185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5586452099862540857&amp;postID=3308446660384440185' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/3308446660384440185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586452099862540857/posts/default/3308446660384440185'/><link rel='alternate' type='text/html' href='http://nondocs.blogspot.com/2007/04/faqyou-cant-do-that.html' title='FAQ.You Can&apos;t Do That'/><author><name>Dan</name><uri>http://www.blogger.com/profile/06759273451883424290</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
