<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Flex Doc Team</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/flexdoc/" />
    <link rel="self" type="application/atom+xml" href="http://blogs.adobe.com/flexdoc/atom.xml" />
   <id>tag:blogs.adobe.com,2008:/flexdoc//99</id>
    <link rel="service.post" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=99" title="Flex Doc Team" />
    <updated>2008-06-05T14:22:13Z</updated>
    <subtitle>Updates, new content, and other helpful information from the Flex Documentation Team.</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.2</generator>
 
<entry>
    <title>Plugins for Ion search</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/flexdoc/2008/06/plugins_for_ion_search_1.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=99/entry_id=6082" title="Plugins for Ion search" />
    <id>tag:blogs.adobe.com,2008:/flexdoc//99.6082</id>
    
    <published>2008-06-03T18:17:05Z</published>
    <updated>2008-06-05T14:22:13Z</updated>
    
    <summary>If you use the http://community.adobe.com/ion/ search engine for finding Flex information fast, then you might find the following useful: A plugin for FireFox and a Google Toolbar custom button for IE that give you instant access to the search engine...</summary>
    <author>
        <name>Matthew J. Horn</name>
        
    </author>
            <category term="General" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/flexdoc/">
        <![CDATA[<p>If you use the <a href="http://community.adobe.com/ion/">http://community.adobe.com/ion/</a> search engine for finding Flex information fast, then you might find the following useful: A plugin for FireFox and a Google Toolbar custom button for IE that give you instant access to the search engine from within you browser.</p>

<p><strong>FireFox plugin for Ion</strong></p>

<ol>
 <li><a href="http://blogs.adobe.com/flexdoc/ion.xml">Download the ion.xml file</a>.</li>

<p> <li>Save this as ion.xml in your {Mozilla}\searchplugins directory (for<br />
example, "c:\Program Files\Mozilla FireFox 3 Beta 5\searchplugins")<br />
and it should show up in your list of search plugins.</li><br />
</ol></p>

<p><strong>Goole Toolbar custom button for IE</strong></p>

<ol>
 <li>Go to the Ion home page: <a href="http://community.adobe.com/ion">http://community.adobe.com/ion</a>.</li>

<p> <li>Select Flex from the product drop down list.</li></p>

<p> <li>Right-click on the text input in the Ion search and click "Generate<br />
Custom Search...".</p>

<p>The Google Toolbar Custom Button Generator dialog appears.</p>

<p>You can replace "community.adobe" in the first text input with any<br />
name you want to appear in the toolbar. In the second text input, you<br />
can replace "Adobe Community Help - Search Results" with any<br />
description you want.</li></p>

<p> <li>Click the Replace button and click OK.</li> <br />
</ol></p>

<p>That's it. You can now select "community.adobe" (or whatever string<br />
you specified) from the toolbar, and then execute a search directly.</p>]]>
        
    </content>
</entry>
<entry>
    <title>The Security Sandbox in Flex Builder 3</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/flexdoc/2008/06/the_security_sandbox_in_flex_b.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=99/entry_id=6073" title="The Security Sandbox in Flex Builder 3" />
    <id>tag:blogs.adobe.com,2008:/flexdoc//99.6073</id>
    
    <published>2008-06-02T17:42:53Z</published>
    <updated>2008-06-02T21:16:55Z</updated>
    
    <summary>We recently received a question from a user about Flex Builder security sandbox settings. I thought the answer to this question would be of general interest. Question: In Flex Builder 2, the security sandbox settings for both debug mode and...</summary>
    <author>
        <name>Vince Genovese</name>
        
    </author>
            <category term="Flex 2.01" />
            <category term="Flex 3" />
            <category term="Flex Builder" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/flexdoc/">
        <![CDATA[<p>We recently received a question from a user about Flex Builder security sandbox settings. I thought the answer to this question would be of general interest.</p>

<p><strong>Question:</strong> In Flex Builder 2, the security sandbox settings for both debug mode and release mode was local-trusted. In Flex Builder 3, why is release mode now local-with-network?</p>

<p><strong>Short Answer:</strong> Whether a given SWF, when run locally in a non-trusted location, is local-with-filesystem or local-with-network is a compilation setting. This setting is stored as a flag in the SWF header and is the only compiler flag. The default is local-with-network and has not changed in Flex Builder 3.</p>

<p>What is new with Flex Builder 3 is that we no longer put the release SWF inside the trusted debug output folder by default. The advantage to the developer is that the release SWF will run in the same security sandbox in which it will be deployed. Thus you get accurate application behavior instead of the more permissive local-trusted, which is only available to the developer.</p>

<p><strong>Detailed Answer:</strong> In Flex Builder 2 we put the release SWF alongside the debug SWF, which was inside an output folder that we configured the flash player to trust for the following reason:</p>

<p>You could click, debug, and launch your application and have it access network services without first configuring the project to host the SWF on a web server (and thus have to launch it with a proper http:// URL). Basically, you can launch your application from the file system using file:/// URLs.</p>

<p>The problem with this approach is that when testing the release SWF, even if you edited the launch URLs to use http://, you would be running the application out of local-trusted instead of the actual deployment sandbox (remote).</p>

<p>There are other problems with this arrangement, such as facilitating the accidental deployment of both debug and release SWFs in the output folder.</p>

<p>So, for Flex Builder 3 we separated the notion of the Run button from the release SWF. The Run button merely launches the debug-capable SWF with debugging turned off. The Export Release Wizard creates the actual release SWF. Flex Builder 3 encourages you to put the release SWF somewhere other than your debug output folder. Thus, to test the release version, you must launch and test it as an end user would using a browser and web server (that is, unless you actually want the end user to try to run it locally).</p>

<p><strong>Note:</strong> Use the custom compiler option, <code>use-network=false</code>, if you want to override the Flex Builder default compiler option. This would change the settings to local-with-filesystem.</p>]]>
        
    </content>
</entry>
<entry>
    <title>Master-Detail Flex Application</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/flexdoc/2008/04/masterdetail_flex_application_1.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=99/entry_id=5770" title="Master-Detail Flex Application" />
    <id>tag:blogs.adobe.com,2008:/flexdoc//99.5770</id>
    
    <published>2008-04-30T21:50:54Z</published>
    <updated>2008-05-01T21:05:37Z</updated>
    
    <summary>I’m an Adobe writer assigned primarily to Flex Builder and the Flex SDK. I joined Adobe in October of 2007 and have spent the first few months learning and using Flex and Flex Builder. I’ve recently completed my first Flex...</summary>
    <author>
        <name>Vince Genovese</name>
        
    </author>
            <category term="Data Services" />
            <category term="Flex 3" />
            <category term="Flex Builder" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/flexdoc/">
        <![CDATA[<p>I’m an Adobe writer assigned primarily to Flex Builder and the Flex SDK. I joined Adobe in October of 2007 and have spent the first few months learning and using Flex and Flex Builder.</p>

<p>I’ve recently completed my first Flex application, and am using this blog to write about my learning experience, and also to describe some of the concepts behind the application that make it work. Actually, these are two applications that work together, <strong>vRadio</strong> and <strong>RadioLoginDB</strong>.</p>

<p>These applications illustrate how to use Flex to create a master-detail application that accesses data from a PHP server, and also incorporates PHP sessions.</p>

<p>At the end of this posting is a list of documentation sources I used to learn how to create the applications. I also have links to the source files.</p>

<h2>vRadio and RadioLoginDB applications</h2>
I have always been a fan of Community Radio, and in the past I’ve Googled “Community Radio” to find new stations to listen to over the web. I created the <strong>vRadio</strong> application to provide a Flex alternative that lists Community and Talk radio stations, providing details about each station including station name and location, station graphic, and clickable links to open the station.  <strong>RadioLoginDB</strong> is a CRUD application to update the database of radio stations used by <strong>vRadio</strong>.

<p><strong>vRadio</strong> is a Master-Detail application, and corresponds to many type of applications that present stored data in a variety of presentation formats, and also provide forms for updating the data.</p>

<p>What is interesting about the <strong>the vRadio</strong> application is the way Flex handles XML data using the E4X format. By providing an XML feed into the vRadio application, the application displays the XML data in a tree view. When the user clicks a node in the tree, details are displayed.<br />
</p>]]>
        <![CDATA[<p>The <strong>vRadio</strong> application stores the radio stations in a MySQL database, accessible from PHP calls on the web server.</p>

<p><img alt="vRadio2.gif" src="http://blogs.adobe.com/flexdoc/genovese/vRadio2.gif" width="513" height="435" /></p>

<p>Notice the link to Update Station List in <strong>vRadio</strong>. This link takes you to a log in page for the <strong>RadioLoginDB</strong> CRUD application. Upon successful login, you can update the MySQL database information inline in a Flex DataGrid, delete records from the DataGrid, or open a form to add new stations. </p>

<p><a href="http://blogs.adobe.com/flexdoc/genovese/vRadioDB1.html" onclick="window.open('http://blogs.adobe.com/flexdoc/genovese/vRadioDB1.html','popup','width=904,height=565,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img alt="vRadioDB2.gif" src="http://blogs.adobe.com/flexdoc/genovese/vRadioDB2.gif" width="452" height="282" /></a></p>

<h2>Using E4X to Access XML Data</h2>
The vRadio application implements an HTTPService that uses E4X to read XML generated by the php2xmlService.php on the server. php2XMLService reads a MySQL database containing details on radio stations. This allows the vRadio application to display the master-detail information about the radio stations.

<p>To implement this feature, I first used a static XML file, radio_stations.xml, as the data source for the HTTPService. radio_stations.xml contained the information for a few radio stations, and allowed me to understand the structure of the XML document that was needed. I then put the radio station data into a MySQL database, and wrote the php2xmlService.php to echo the XML stream.</p>

<h2>Flex Builder: Generating a CRUD Application from Database Wizard</h2>
Most of the working parts of the <strong>RadioLoginDB</strong> application are generated by the Create Application from Database Wizard, available in Flex Builder. The Database Wizard generates the CRUD application from the MySQL database of radio stations. This wizard generates the CRUD application in just a few mouse clicks, and is the starting point for the <strong>RadioLoginDB</strong> application, described below. 

<p>To run the wizard, first create a Flex project that access a PHP database. Then invoke the wizard in Flex Builder by selecting Data > Create Application from Database. The wizard guides you through creating the CRUD application. (Note: you can also use the Wizard for Flex projects that contain J2EE and ASP .NET database applications.)</p>

<p><img alt="DBwizard.gif" src="http://blogs.adobe.com/flexdoc/genovese/DBwizard.gif" width="512" height="391" /></p>

<p>The wizard generated the following files, which I subsequently modified:<br />
<ul><br />
<li>radio_stations.mxml</li><br />
<li>radio_stationsScript.as</li><br />
<li>Radio_stations.php</li><br />
</ul></p>

<p>The wizard also generates the following files, which do not need customization for this application. However, to further refine this application, you might want to modify some of these generated files as well.<br />
<ul><br />
<li>Localhostconn.php</li><br />
<li>XmlSerializer.class.php</li><br />
<li>functions.inc.php</li><br />
</ul></p>

<h2>Customization of the Flex Application</h2>
The most significant part of customizing the application is providing a minimal level of security. I also customized the application to provide some ease of use features. Here are the customizations I made to the application:

<ul>
<li><p>Added a Log In screen<br />Access to the database is only allowed for authorized users.</p></li>
<li><p>Implemented PHP sessions<br />Prevent unauthorized access after a connection to the database has been made.</p></li>
<li><p>Customized the DataGrid to make it more readable</p></li>
<li><p>Customized the database update Form to enforce the correct entry of data into the database</p></li>
</ul>

<p><strong>Note:</strong> This example illustrates how to communicate between Flex and your PHP server. It does not illustrate a security model to use for your applications.</p>

<h2>Implementing PHP Sessions</h2>
I want to take advantage of session support available with PHP to avoid unauthorized access to the database.
Upon successful login with auth_login.php, a PHP session variable is set. I modified the generated Radio_stations.php to check for the session variable before allowing access to the database. If the session variable is not set, then the login screen from radio_stations.mxml appears.

<h2>Customizing the DataGrid</h2>
The generated DataGrid is a quite useful interface. It allows in place editing of database fields, allows you to delete entries, and opens a form for adding new entries. I made the following modifications to the DataGrid View:
<ul>
<li>For each of the columns in the DataGrid, I customized the width of each columns. This improved the readability of the DataGrid</li>
<li>I added a logout Button, to log out of the PHP session.</li>
</ul>

<h2>Customizing the Database Update Form </h2>
The database wizard generates a form to add new entries to the database. I modified this form to ensure that new entries are correctly formatted. 

<p>Here are the modifications I made:<br />
<ul><br />
<li>A dropdown list for the type of radio station (Community Radio, Talk Radio, etc.)</li><br />
<li>A dropdown list for selecting the state (CA, MD, etc.)</li><br />
</ul></p>

<p><img alt="AddRecord2.gif" src="http://blogs.adobe.com/flexdoc/genovese/AddRecord2.gif" width="399" height="547" /></p>

<p>I could also add validation to the URL fields and the fields for entering the height and width of the station graphic. I plan to implement this at a later date.</p>

<h2>Documentation Links</h2>
Here are links to Flex documentation that I used to research creating this application:

<p><a href="http://livedocs.adobe.com/flex/3/html/databinding_6.html#189734" target = "_blank">Using an E4X Expression in a Data Binding Expression</a></p>

<p><a href="http://www.adobe.com/devnet/flex/articles/e4x.html" target="_blank">Displaying XML-based DataGrids Using Dynamic E4X Expressions</a></p>

<p><a href="http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=2&postId=7843" target="_blank">PHP5 Quick Database E4X Queries</a><br />
(I didn’t use this technique, but I think this article is useful.)</p>

<p><a href="http://livedocs.adobe.com/flex/3/html/projects_3.html#204306" target="_blank">Creating Flex Projects</a><br />
(For creating a Flex project that accesses PHP.)</p>

<p><a href="http://livedocs.adobe.com/flex/3/html/data_3.html#151246" target="_blank">Automatically Generating Database Applications</a></p>

<p><a href="http://learn.adobe.com/wiki/display/Flex/ViewStack" target="_blank">Getting Started Experience - ViewStack</a></p>

<p><a href="http://livedocs.adobe.com/flex/3/html/navigators_3.html#245633" target="_blank">ViewStack Navigator Container</a></p>

<p><a href="http://livedocs.adobe.com/flex/3/html/data_access_2.html#193905" target="_blank">Using HTTPService Components</a></p>

<p><a href="http://www.adobe.com/devnet/flex/articles/php_getstarted.html" target="_blank">Flex Quick Start Guide for PHP Developers</a></p>

<h2>Source Files</h2>

<ul>
<li><strong>vRadio Application</strong> (<a target="_blank" href="http://blogs.adobe.com/flexdoc/genovese/vRadio.mxml">vRadio.mxml</a>
)</li>
<li><a target="_blank" href="http://blogs.adobe.com/flexdoc/genovese/php2xmlService.php">php2xmlService.php</a>, server side application which accesses a MySQL database of radio stations, returning the contents encoded as XML. This service is used to populate Tree listing in the vRadio Radio Stations Pane</li>
<li><a target="_blank" href="http://blogs.adobe.com/flexdoc/genovese/auth_login.php">auth_login.php</a>, which authenticates users and sets a PHP SESSION Authentication variable upon successful login.</li>
<li>
<strong>RadioLoginDB Application,</strong> the CRUD application generated by the Flex Builder Create Application from DB wizard, and later modified to implement authenticated PHP sessions. Here are the files generated:
<ul>
<li><a target="_blank" href="http://blogs.adobe.com/flexdoc/genovese/radio_stations.mxml">radio_stations.mxml</a></li>
<li><a target="_blank" href="http://blogs.adobe.com/flexdoc/genovese/radio_stationsScript.as">radio_stationsScript.as</a>, which creates the gateway HTTPService that provides access to the MySQL database and contains various functions to perform the CRUD services. I modified this file to perform PHP SESSION authentication to the MySQL database</li>
<li><a target="_blank" href="http://blogs.adobe.com/flexdoc/genovese/Radio_stations.php">Radio_stations.php</a>, generated by the Create Application from DB wizard to provide the PHP calls into the MySQL database.</li>
</ul>
</li>

</ul>

<p></p>

<p></p>

<p><br />
  <br />
 <br />
 <br />
</p>]]>
    </content>
</entry>
<entry>
    <title>Alternatives to using the Fade effect with text </title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/flexdoc/2008/04/alternatives_to_fade_effect_fo_1.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=99/entry_id=5724" title="Alternatives to using the Fade effect with text " />
    <id>tag:blogs.adobe.com,2008:/flexdoc//99.5724</id>
    
    <published>2008-04-25T18:38:58Z</published>
    <updated>2008-04-28T20:48:55Z</updated>
    
    <summary>Someone recently asked if there were any ways to fade text out in a Flex app without having to embed the font for that text. Currently, if you want to appkly the Fade effect to any controls that contain text...</summary>
    <author>
        <name>Matthew J. Horn</name>
        
    </author>
            <category term="Effects" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/flexdoc/">
        <![CDATA[<p>Someone recently asked if there were any ways to fade text out in a Flex app without having to embed the font for that text. Currently, if you want to appkly the Fade effect to any controls that contain text in a Flex app, you have to embed the font so that Flash Player can do the fading properly. </p>

<p>This question led to an interesting thread that revealed a couple of alternatives to fading text without embedding the font. The result is that the SWF file size is smaller because it doesn't contain any font symbols.</p>

<p>First, here's code that embeds a font and defines a fadeIn and fadeOut effect:<br />
<pre><br />
[Embed("assets/MyriadWebPro.ttf", fontName="MyMyriad")]<br />
public var myriad_font:Class;<br />
...<br />
&lt;mx:Fade id="fadeOut" duration="1000" alphaFrom="1.0" alphaTo="0.0"/&gt;<br />
&lt;mx:Fade id="fadeIn" duration="1000" alphaFrom="0.0" alphaTo="1.0"/&gt;</p>

<p>&lt;mx:Label id="label1" text="Hello World"  <br />
            fontFamily="MyMyriad" fontSize="24"<br />
            hideEffect="{fadeOut}" showEffect="{fadeIn}"/&gt;<br />
</pre><br />
Here's the running example:</p>

<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="Fade_EmbeddedFont" width="300" height="175" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"><param name="movie" value="http://blogs.adobe.com/flexdoc/Fade_EmbeddedFont.swf" /><param name="quality" value="high" /><param name="allowScriptAccess" value="sameDomain" /><embed src="http://blogs.adobe.com/flexdoc/Fade_EmbeddedFont.swf" quality="high" width="300" height="175" name="Fade_EmbeddedFont" align="middle" play="true" quality="high" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object></p>

<p>This app is 190K. It works very well because the Fade effect is applied directly to the control that uses an embedded font to render the text. </p>

<p>If you didn't embed the font, then the Fade effect would appear to fail: instead of a slow fade, you'd get a single instant where the text disappears. Non-embedded fonts don't include bitmap information for the Player to apply a Fade effect to. </p>

<p>Here's a running example that shows the failing fade on non-embedded text:</p>

<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="Fade_Failing" width="300" height="175" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"><param name="movie" value="http://blogs.adobe.com/flexdoc/Fade_Failing.swf" /><param name="quality" value="high" /><param name="allowScriptAccess" value="sameDomain" /><embed src="http://blogs.adobe.com/flexdoc/Fade_Failing.swf" quality="high" width="300" height="175" name="Fade_Failing" align="middle" play="true" quality="high" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object></p>

<p>Now for the alternatives.</p>

<p>The first alternative is really clever: Apply the BlurFilter to the text before attempting to fade it in and out. When you apply a BlurFilter to text, Flash Player converts the text to a bitmap. Once the text is a bitmap, it can be faded in and out with the Fade effect. So instead of actually blurring the text with the BlurFilter, you just apply the BlurFilter with some dummy settings (0,0,0), and then you can fade the text with the Fade effect.</p>

<p>Here's the code that applies a BlurFilter to the text when the app initializes:<br />
<pre><br />
  private function addBlurFilter():void {<br />
  var bf:BlurFilter = new BlurFilter(0,0,0);<br />
  var myFilters:Array = new Array();<br />
  myFilters.push(bf);<br />
  label3.filters = myFilters;<br />
}<br />
</pre></p>

<p>When you toggle the checkbox, the Fade effect now appears to work seamlessly. Here's the running example:</p>

<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="Fade_BlurFilter" width="300" height="175" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"><param name="movie" value="http://blogs.adobe.com/flexdoc/Fade_BlurFilter.swf" /><param name="quality" value="high" /><param name="allowScriptAccess" value="sameDomain" /><embed src="http://blogs.adobe.com/flexdoc/Fade_BlurFilter.swf" quality="high" width="300" height="175" name="Fade_BlurFilter" align="middle" play="true" quality="high" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object></p>

<p>The SWF file size is 165K. Adding the BlurFilter does not increase the SWF file size because you don't have to embed the font symbols. It might increase runtime memory usage because Flash Player now has to keep bitmap data in memory for that text, but it's still a damn clever trick, I think.</p>

<p>The second alternative is to use the Dissolve effect rather than the Fade effect. The Dissolve effect actually creates a rectangle over the target area, and applies a dissolve to the rectangle so that the underlying content appears to fade in and out. </p>

<p>Dissolve effects are set up and applied just like Fade effects:<br />
<pre><br />
&lt;mx:Dissolve id="dissolveOut" duration="1000" alphaFrom="1.0" alphaTo="0.0"/&gt;<br />
&lt;mx:Dissolve id="dissolveIn" duration="1000" alphaFrom="0.0" alphaTo="1.0"/&gt;</p>

<p>&lt;mx:Label id="label4" text="Hello World" fontSize="24" <br />
     hideEffect="{dissolveOut}" showEffect="{dissolveIn}"/&gt;<br />
</pre><br />
Here's a running example:</p>

<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="Fade_DissolveEffect" width="300" height="175" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"><param name="movie" value="http://blogs.adobe.com/flexdoc/Fade_DissolveEffect.swf" /><param name="quality" value="high" /><param name="allowScriptAccess" value="sameDomain" /><embed src="http://blogs.adobe.com/flexdoc/Fade_DissolveEffect.swf" quality="high" width="300" height="175" name="Fade_DissolveEffect" align="middle" play="true" quality="high" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object></p>

<p>As with the Blur effect, using the Dissolve effect does not increase the SWF file size because you don't have to embed the font symbols. </p>

<p><a href="http://blogs.adobe.com/flexdoc/TextFade.zip">This ZIP file</a> (2KB) contains the complete source MXML files for the three working examples in this blog entry.<br />
</p>]]>
        
    </content>
</entry>
<entry>
    <title>New &quot;Community Help&quot; features for Flex</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/flexdoc/2008/04/new_community_help_features_fo.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=99/entry_id=5722" title="New &quot;Community Help&quot; features for Flex" />
    <id>tag:blogs.adobe.com,2008:/flexdoc//99.5722</id>
    
    <published>2008-04-25T18:24:55Z</published>
    <updated>2008-04-25T18:32:53Z</updated>
    
    <summary>The Adobe web team is rolling out new functionality to help Flex coders find the help resources they need. Currently, the &quot;Ion&quot; project consists of a customized search engine that is populated with the best of the Flex-related resources on...</summary>
    <author>
        <name>Matthew J. Horn</name>
        
    </author>
            <category term="General" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/flexdoc/">
        <![CDATA[<p>The Adobe web team is rolling out new functionality to help Flex coders find the help resources they need. </p>

<p>Currently, the "Ion" project consists of a customized search engine that is populated with the best of the Flex-related resources on the web. You can access this new search feature directly at <a href="http://community.adobe.com/ion/">http://community.adobe.com/ion/</a>. You can also search it by using the "Community-Powered Search" input on the <a href="http://www.adobe.com/devnet/flex/">Flex DevNet site</a>.</p>

<p>Also part of Ion is the back end for commenting on Livedocs and DevNet articles. Prior to this, there was no commenting on DevNet articles, and the Livedocs commenting engine was much more restrictive. </p>

<p>This is just the beginning of the Ion project.</p>]]>
        
    </content>
</entry>
<entry>
    <title>Extracting data visualization source code</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/flexdoc/2008/04/extracting_data_visualization.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=99/entry_id=5690" title="Extracting data visualization source code" />
    <id>tag:blogs.adobe.com,2008:/flexdoc//99.5690</id>
    
    <published>2008-04-21T18:42:13Z</published>
    <updated>2008-04-22T14:49:17Z</updated>
    
    <summary>All users have access to the Flex 3 SDK source code. You can view the ActionScript source files for classes like Button and DataGrid. The source code is in the frameworks\projects\framework\src directory of your Flex installation. The source code for...</summary>
    <author>
        <name>Matthew J. Horn</name>
        
    </author>
            <category term="Charts" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/flexdoc/">
        <![CDATA[<p>All users have access to the Flex 3 SDK source code. You can view the ActionScript source files for classes like Button and DataGrid. The source code is in the frameworks\projects\framework\src directory of your Flex installation. The source code for the data visualization projects does not come pre-installed, however. If you have a Flex Builder Professional license key, you can extract the data visualization source code, which include the charting controls, the AdvancedDataGrid classes, the OLAP classes, and the automation classes. To view your Flex Builder license key, select Manage Flex Licenses from the Help menu.</p>

<p>To extract the data visualization source code, you use the DMV-source.jar file. This file is located in the SDK's lib directory. If you are using Flex Builder, the lib directory is located at {Flex Builder 3}\sdks\3.0.0\lib.</p>

<p>The syntax to extract the data visualization source code is as follows:</p>

<pre>
> java -jar DMV-source.jar {license-file-location} {output-location}
</pre>

<p>The first argument is the location of the license.properties file. This file must contain a valid Flex Builder 3 Professional license key. The second parameter is the location that you want the data visualization source code to be extracted to.</p>

<p>If you installed Flex Builder 3 Professional, then the license.properties file is located at the following locations, depending on your operating system:</p>

<ul>
 <li>Windows: <code>C:\Documents and Settings\All Users\Application Data\Adobe\Flex\</code></li>
 <li>Mac OS: <code>/Library/Application Support/Adobe/Flex/</code></li>
 <li>Linux: <code>~/.adobe/Flex/</code></li>
</ul>

<p>The following example extracts the data visualization source code to the c:\temp\dataviz_source directory on Windows:</p>

<pre>
java -jar c:\Flex Builder 3\sdks\3.0.0\lib\DMV-source.jar 
     "C:\Documents and Settings\All Users\Application Data\Adobe\Flex\" 
     c:\temp\dataviz_source
</pre>

<p>If you have a valid Flex Builder 3 Professional license key but did not install Flex Builder, then you can create a license.properties file anywhere, and point to it when you use the DMV-source.jar file. The syntax of the license.properties file is as follows:</p>

<pre>
flexbuilder3={license_key}
</pre>
]]>
        
    </content>
</entry>
<entry>
    <title>Using an HTML page as a data provider</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/flexdoc/2008/04/using_html_page_as_a_data_prov.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=99/entry_id=5660" title="Using an HTML page as a data provider" />
    <id>tag:blogs.adobe.com,2008:/flexdoc//99.5660</id>
    
    <published>2008-04-17T17:19:41Z</published>
    <updated>2008-04-18T17:54:50Z</updated>
    
    <summary>Here&apos;s a new example in the charting doc. It shows how someone might use some or all of an HTML page they load via an HTTPService tag as a data provider for their charting component. It includes logic to extract...</summary>
    <author>
        <name>Matthew J. Horn</name>
        
    </author>
            <category term="Charts" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/flexdoc/">
        <![CDATA[<p>Here's a new example in the charting doc. It shows how someone might use some or all of an HTML page they load via an HTTPService tag as a data provider for their charting component. It includes logic to extract just the data from the target page. </p>

<p>The benefit to this is that if you have a wiki or blog that you can edit via a browser, you can build and update a data page without having to hit a database. The code extracts specially-tagged data from the HTML page, so even if it's part of a larger block of HTML, you can still extract just the data.</p>

<p>One thing to note: The target domain in this example works because it has a crossdomain.xml file. If you want to load a page from your own target domain, you must be sure that your target domain has a crossdomain.xml file in place, and that that policy file lets the domain on which the Flex app is running request data from it. </p>

<p>Here's the running example:</p>

<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="HTMLDataProvider" width="300" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"><param name="movie" value="http://blogs.adobe.com/flexdoc/HTMLDataProvider.swf" /><param name="quality" value="high" /><param name="allowScriptAccess" value="sameDomain" /><param name="flashVars" value="dataPage=http://examples.adobe.com/flex3/exchangingdata/html/dataPage.html" /><embed src="http://blogs.adobe.com/flexdoc/HTMLDataProvider.swf" quality="high" width="300" height="300" name="HTMLDataProvider" align="middle" play="true" quality="high" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashVars="dataPage=http://examples.adobe.com/flex3/exchangingdata/html/dataPage.html"></embed></object></p>

<p>Here's the data page that drives this chart:<br />
<a href="http://examples.adobe.com/flex3/exchangingdata/html/dataPage.html">http://examples.adobe.com/flex3/exchangingdata/html/dataPage.html</a></p>

<p>You can download the source MXML file here:<br />
<a href="http://blogs.adobe.com/flexdoc/HTMLDataProvider.zip">HTMLDataProvider.zip</a> (1KB)</p>

<p>The exact location of the data page is passed into the application as a flashVars property. To change the data page, you only have to edit the HTML wrapper for the SWF file. </p>

<p>In the HTML wrapper, we pass the target HTML page as a param in the &lt;object&gt; tag:<br />
<pre><br />
&lt;param name="flashVars" value="dataPage=http://examples.adobe.com/flex3/exchangingdata/html/dataPage.html" /&gt;<br />
</pre><br />
And again as an attribute of the &lt;embed&gt; tag:<br />
<pre>flashVars="dataPage=http://www.shallowpondestates.com/misc/dataPage.html"</pre><br />
Note that you can view the source of this blog entry page to see the complete object/embed tags.</p>

<p>In the Flex app, the data page is read from the Application's application.parameters property:<br />
<pre>dataPage = Application.application.parameters.dataPage;</pre><br />
To initially get the page's contents into the Flex app, we use an HTTPService object:<br />
<pre>&lt;mx:HTTPService id="serviceInput" <br />
        resultFormat="text" <br />
        url="{dataPage}"<br />
    /&gt;</pre><br />
To get the HTML in a single string we get the lastResult property of the HTTPService in the ResultEvent handler:<br />
<pre>var htmlBlob:String = serviceInput.lastResult.toString();</pre><br />
And to extract just the portion of the data page that we need (the part between the "data starts here" and "data ends here" comments), we use the slice() method:<br />
<pre>htmlBlob = htmlBlob.slice( htmlBlob.indexOf("&amp;lt;!-- data starts here --&amp;gt;", 0) + 25, htmlBlob.length );<br />
htmlBlob = htmlBlob.slice( 0, htmlBlob.indexOf("&amp;lt;!-- data ends here --&amp;gt;", 0) );</pre><br />
We then do a couple more passes on the remaining HTML string to replace HTML entities with angle brackets, so that we will end up with well-formed XML:<br />
<pre><br />
var tagPattern:RegExp = /<[^<>]*>/g;  <br />
htmlBlob = htmlBlob.replace(tagPattern, "");<br />
			<br />
var ltPattern:RegExp = /&amp;lt;/g;<br />
htmlBlob = htmlBlob.replace(ltPattern, "&lt;");<br />
			<br />
var gtPattern:RegExp = /&amp;gt;/g;<br />
htmlBlob = htmlBlob.replace(gtPattern, ">");<br />
</pre><br />
At this point, we just need to pass the XML to the XMLList constructor so that it can be used as a data provider in the chart:<br />
<pre><br />
chartData = new XMLList(htmlBlob);<br />
</pre><br />
That's it. If you compile and deploy this app, you can use the provided data page, or create your own. If your data page is on the same domain as the application, then you do not need a crossdomain.xml file.</p>]]>
        
    </content>
</entry>
<entry>
    <title>Building Adobe LiveCycle Data Services ES Beta 2 Applications</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/flexdoc/2008/04/building_adobe_livecycle_data.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=99/entry_id=5653" title="Building Adobe LiveCycle Data Services ES Beta 2 Applications" />
    <id>tag:blogs.adobe.com,2008:/flexdoc//99.5653</id>
    
    <published>2008-04-16T22:07:01Z</published>
    <updated>2008-04-16T22:17:55Z</updated>
    
    <summary>Adobe LiveCycle Data Services ES Beta 2 applications consist of two parts: client-side code and server-side code. Client-side code is a Flex application written in MXML and ActionScript and deployed as a SWF file. Server-side code is written in Java...</summary>
    <author>
        <name>Stephen Gilson</name>
        
    </author>
            <category term="BlazeDS" />
            <category term="LiveCycle" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/flexdoc/">
        <![CDATA[<p>Adobe LiveCycle Data Services ES Beta 2 applications consist of two parts: client-side code and server-side code. Client-side code is a Flex application written in MXML and ActionScript and deployed as a SWF file. Server-side code is written in Java and deployed as Java class files or Java Archive (JAR) files. You can develop Adobe LiveCycle Data Services ES applications in Flex Builder, or in your own IDE.  This article describes how to set up your development environment to compile, debug, and deploy LiveCycle Data Services ES applications. </p>

<p>Download the PDF: <a href="http://blogs.adobe.com/flexdoc/pdf/build_apps.pdf">Building and Deploying LiveCycle Data Services ES Applications</a></p>]]>
        
    </content>
</entry>
<entry>
    <title>Heads-up: Server maintenance this weekend</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/flexdoc/2008/04/headsup_server_maintenance_thi.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=99/entry_id=5627" title="Heads-up: Server maintenance this weekend" />
    <id>tag:blogs.adobe.com,2008:/flexdoc//99.5627</id>
    
    <published>2008-04-12T01:48:34Z</published>
    <updated>2008-04-12T01:52:42Z</updated>
    
    <summary>I just wanted to let everyone know that on Saturday, April 12th, from noon to midnight PDT, our network team will be performing maintenance on the cluster that includes examples.adobe.com. Due to this work, applications running on the example cluster...</summary>
    <author>
        <name>Randy Nielsen</name>
        
    </author>
            <category term="General" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/flexdoc/">
        <![CDATA[<p>I just wanted to let everyone know that on Saturday, April 12th, from noon to midnight PDT, our network team will be performing maintenance on the cluster that includes examples.adobe.com. Due to this work, applications running on the example cluster will experience 1-2 minute network outages throughout the service window.  </p>]]>
        
    </content>
</entry>
<entry>
    <title>ColdFusion and Flex LiveDocs are misbehaving</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/flexdoc/2008/04/coldfusion_and_flex_livedocs_a.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=99/entry_id=5601" title="ColdFusion and Flex LiveDocs are misbehaving" />
    <id>tag:blogs.adobe.com,2008:/flexdoc//99.5601</id>
    
    <published>2008-04-09T22:53:59Z</published>
    <updated>2008-04-09T22:59:44Z</updated>
    
    <summary>We&apos;re currently seeing a caching corruption problem with LiveDocs in which random files display instead of the correct pages. You&apos;ll see a variety of symptoms: * The wrong page displays * Infinite loops in the TOC (this happens when LD...</summary>
    <author>
        <name>Randy Nielsen</name>
        
    </author>
            <category term="General" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/flexdoc/">
        <![CDATA[<p>We're currently seeing a caching corruption problem with LiveDocs in which random files display instead of the correct pages. You'll see a variety of symptoms:<br />
* The wrong page displays<br />
* Infinite loops in the TOC (this happens when LD loads a .js file instead of an HTML file)<br />
* Bad formatting (when a CSS file doesn't load properly)</p>

<p>The good news is that our web team has identified the bug that causes this. The bad news is that they're still testing the fix and it won't get rolled out until April 17.</p>

<p>I've had fairly random results over the last few days. Sometimes changing browsers helps, sometimes it doesn't; sometimes clearing browser cache fixes it, sometimes it doesn't. One suggestion is to download the complete Flex doc zip file, which contains usage docs in PDF and the Language Reference in HTML and access the docs locally.<br />
This is available at http://livedocs.adobe.com/flex/3/flex3_documentation.zip. Individual PDFs are available from the Flex Help Resource Center page: http://www.adobe.com/support/documentation/en/flex/</p>

<p>I sincerely apologize for the inconvenience this is causing.<br />
Randy Nielsen<br />
Flex Documentation Manager</p>]]>
        
    </content>
</entry>
<entry>
    <title>Adding Java Development Tools to Flex Builder Standalone</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/flexdoc/2008/04/adding_java_development_tools_1.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=99/entry_id=5552" title="Adding Java Development Tools to Flex Builder Standalone" />
    <id>tag:blogs.adobe.com,2008:/flexdoc//99.5552</id>
    
    <published>2008-04-03T15:24:45Z</published>
    <updated>2008-04-03T16:30:08Z</updated>
    
    <summary>Many Flex, Adobe AIR, Adobe BlazeDS, and Adobe LiveCycle ES developers choose to use the Eclipse plug-in configuration of Flex Builder so that they can develop Java code in the same IDE that they use to develop the MXML and...</summary>
    <author>
        <name>Stephen Gilson</name>
        
    </author>
            <category term="AIR" />
            <category term="BlazeDS" />
            <category term="Flex 3" />
            <category term="Flex Builder" />
            <category term="LiveCycle" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/flexdoc/">
        <![CDATA[<p>Many Flex, Adobe AIR, Adobe BlazeDS, and Adobe LiveCycle ES developers choose to use the Eclipse plug-in configuration of Flex Builder so that they can develop Java code in the same IDE that they use to develop the MXML and ActionScript code. While the standalone version of Flex Builder does not contain tools to edit Java code by default, you can install them as Eclipse plugins. That lets you use the standalone version of Flex Builder to edit Java code. </p>

<p><strong>To install the Java development tools in the standalone version of Flex Builder:</strong></p>

<p>1. Use the Help > Software Updates > Find and Install menu command to open the Install/Update dialog box</p>

<p>2. Select Search for new features to install. </p>

<p>3. Click Next.</p>

<p>4. In the results, choose Europa Discovery Site.</p>

<p>5. Click Finish.</p>

<p>6. Select the Java Development package to install.</p>

<p>7. Click Next.</p>

<p>8. Accept the license.</p>

<p>9. Click Finish.</p>

<p><strong>Note: </strong>You might be prompted to install additional plugins required by the Java Development package. </p>

<p><strong>To change perspective:</strong></p>

<p>1. Use the Window > Perspective > Other to access all perspectives. </p>

<p>You can also click the Open Perspective button in the upper-right corner of the workbench window, then select a perspective from the pop-up menu.</p>

<p>2. Select Java from the list of perspectives.<br />
</p>]]>
        
    </content>
</entry>
<entry>
    <title>Updated ColdFusion Using Flash Remoting Update chapter</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/flexdoc/2008/03/updated_coldfusion_using_flash_1.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=99/entry_id=5326" title="Updated ColdFusion Using Flash Remoting Update chapter" />
    <id>tag:blogs.adobe.com,2008:/flexdoc//99.5326</id>
    
    <published>2008-03-05T17:14:59Z</published>
    <updated>2008-03-05T18:02:35Z</updated>
    
    <summary>The Using Flash Remoting Update chapter of the ColdFusion Developers Guide documents how to integrate Flex and ColdFusion by using mx:RemoteObject tags to call ColdFusion Component (CFC) functions. It includes information on how to configure a Flex Builder project to...</summary>
    <author>
        <name>Hal Lichtin</name>
        
    </author>
            <category term="General" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/flexdoc/">
        <![CDATA[<p>The Using Flash Remoting Update chapter of the ColdFusion Developers Guide documents how to integrate Flex and ColdFusion by using mx:RemoteObject tags to call ColdFusion Component (CFC) functions. It includes information on how to configure a Flex Builder project to compile an application that accesses ColdFusion, and describes how to specify and use CFCs in your Flex applications. Finally, it describes how to compile and run such applications.</p>

<p>The version of the chapter that was released with ColdFusion 8 was not updated correctly at that time, so it is not appropriate to use when integrating either Flex 2 or Flex 3 with ColdFusion 8. The updated chapter is (we believe) correct, and covers Flex Builder 2 and Flex Builder 3.</p>

<p><a href="http://blogs.adobe.com/flexdoc/UseFlashRemotingUpdate_Blog.pdf">Download UseFlashRemotingUpdate_Blog.pdf</a><br />
</p>]]>
        
    </content>
</entry>
<entry>
    <title>Creating ASDocs for Custom Adobe AIR Components</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/flexdoc/2008/03/creating_asdocs_for_custom_air.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=99/entry_id=5267" title="Creating ASDocs for Custom Adobe AIR Components" />
    <id>tag:blogs.adobe.com,2008:/flexdoc//99.5267</id>
    
    <published>2008-03-03T22:10:18Z</published>
    <updated>2008-03-12T16:54:11Z</updated>
    
    <summary>The Flex ASDoc tool parses one or more ActionScript class definitions to generate API reference documentation for all public and protected methods and properties, and for all [Bindable], [DefaultProperty], [Event], [Style], and [Effect] metadata tags. By default, the ASDoc tool...</summary>
    <author>
        <name>Stephen Gilson</name>
        
    </author>
            <category term="AIR" />
            <category term="ASDocs" />
            <category term="Custom Components" />
            <category term="Flex 3" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/flexdoc/">
        <![CDATA[<p>The Flex ASDoc tool parses one or more ActionScript class definitions to generate API reference documentation for all public and protected methods and properties, and for all [Bindable], [DefaultProperty], [Event], [Style], and [Effect] metadata tags. By default, the ASDoc tool links in all of the Flex SWC files required to compile custom Flex components. However, to use ASDoc to generate documentation for custom Adobe AIR components, you must link in the necessary AIR SWC files.</p>

<p>For example, you create a custom component named MyAirComboBox that extends the AIR mx.controls.FileSystemComboBox component. The directory location of your custom component file is: </p>

<p>C:\myApplication\myComponents\MyAirComboBox.as</p>

<p>Use the following ASDoc command to generate API reference documentation for MyAirComboBox:</p>

<p><code>..\bin\asdoc <strong>-doc-sources C:\myApplication\myComponents\MyAirComboBox.as -library-path+=..\frameworks\libs\air</strong> -main-title "My AIR API Documentation" -window-title "My AIR API Documentation" <strong>-output air-asdoc</strong></code></p>

<p>This command assumes the following:<br />
<ul><li>You run the command from the directory C:\Program Files\Adobe\Flex Builder 3\sdks\3.0.0\asdoc in your Flex Builder installation directory structure. If you are using the Flex SDK, or have installed Flex Builder on another operating system, modify the paths in this command as necessary.</li></p>

<p><li>The AIR SWC files are installed in the directory C:\Program Files\Adobe\Flex Builder 3\sdks\3.0.0\frameworks\libs\air. This is the default directory location for a Flex Builder installation. </p>

<p>This command uses the <code>library-path</code> option to the ASDoc tool to specify the directory location of the AIR SWC files. The"+=" operator to the <code>-library-path</code> option specifies to append the AIR SWC files to the Flex SWC files. </li></p>

<p><li>The ASDoc tool writes the output to the directory C:\Program Files\Adobe\Flex Builder 3\sdks\3.0.0\asdoc\air-asdoc.<l/i><br />
</ul></p>

<p>If you have created multiple AIR components, you can use the following ASDoc command to generate documentation for an entire package:</p>

<p><code>..\bin\asdoc <strong>-doc-sources C:\myApplication\myComponents</strong> -library-path+=..\frameworks\libs\air -main-title "My AIR API Documentation" -window-title "My AIR API Documentation" -output air-asdoc</code></p>

<p>See the Flex 3 documentation for more information on the <a href="http://livedocs.stage.adobe.com/flex/3/html/asdoc_1.html">ASDoc</a> tool. </p>]]>
        
    </content>
</entry>
<entry>
    <title>Migrating applications from Flex 2 to Flex 3</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/flexdoc/2008/02/migrating_from_flex_2_to_flex.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=99/entry_id=5246" title="Migrating applications from Flex 2 to Flex 3" />
    <id>tag:blogs.adobe.com,2008:/flexdoc//99.5246</id>
    
    <published>2008-02-29T17:00:36Z</published>
    <updated>2008-03-06T21:13:49Z</updated>
    
    <summary>Migrating from Flex 1.x to Flex 2 was -- how can I put it -- painful. We scrubbed the APIs to make them consistent; as a result, many properties, methods, events, and even some constants changed, and sometimes changed again....</summary>
    <author>
        <name>Matthew J. Horn</name>
        
    </author>
            <category term="Flex 3" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/flexdoc/">
        <![CDATA[<p>Migrating from Flex 1.x to Flex 2 was -- how can I put it -- painful. We scrubbed the APIs to make them consistent; as a result, many  properties, methods, events, and even some constants changed, and sometimes changed again. We added and removed classes and interfaces. Heck, we even changed the capitalization of "Void" to "void". In addition, the underlying language went from ActionScript 2.0 to ActionScript 3.0. There was no shortage of tasks for updating apps from 1.x to 2. </p>

<p>This time around, however, the APIs have already been through the scrubbing and many of the issues have been ironed out. Most of the migration duties you'll encounter will be related to updated features, like:</p>

<p><strong>Localization</strong> -- The l10n system has changed alot (for the better!). It's now much simpler to implement, and it supports runtime locale-switching. You can use the same properties files, but you might have to rewrite the way they are accessed. Check out the <A HREF="http://livedocs.adobe.com/flex/3/html/l10n_1.html">localization doc</A>.</p>

<p><strong>Style properties</strong> -- A number of style properties have changed to support the new <A HREF="http://livedocs.adobe.com/flex/3/html/help.html?content=styles_04.html">subcomponent style feature</A>.</p>

<p><strong>Deep linking </strong>-- This is a new feature, but if you were using the HistoryManager class, you really should switch to using the <A HREF="http://livedocs.adobe.com/flex/3/langref/mx/managers/BrowserManager.html">BrowserManager class</A> to do all your browser/Flex app communication. </p>

<p><strong>Compiler and configuration args</strong> -- A few compiler arguments have changed. If you use config file or ant tasks to do your compilation, you might have to modify your files.</p>

<p>Here are some resources that should help with migration issues:</p>

<ul>
<li><A HREF="http://livedocs.adobe.com/flex/3/langref/deprecated.html">Deprecated elements in the Language Reference</A> -- A list of all the class elements that are now deprecated. The compiler will also warn you about these when you try to compile, but you can get a sense of what has changed from this list.</li>

<p><li><A HREF="http://livedocs.adobe.com/flex/3/html/versioning_4.html#251723">Backwards compatibility</A> -- This includes a list of differences between the configuration files for SDK 2.0.1 and SDK 3, as well as a list of the changes to the framework.</li><br />
<li>Understanding Flex 3 Migration Issues on Joan Lafferty's blog: <A HREF="http://butterfliesandbugs.wordpress.com/2008/03/04/understanding-flex-3-migration-issues-part-i/">Part 1</A> and <A HREF="http://butterfliesandbugs.wordpress.com/2008/03/06/understanding-flex-3-migration-issues-part-ii/">Part 2</A></li><br />
</ul><br />
It's also important to realize that with Flex Builder 3, you can compile your apps against the new compiler (version 3), or against any version of the compiler that you have installed. This way, if your code does not use any of the new features and you don't want to migrate yet, but you want to use Flex Builder 3, then you can without any issues. Of course, there's <A HREF="http://livedocs.adobe.com/flex/3/html/build_6.html#162812">doc on that</A>, too.</p>]]>
        
    </content>
</entry>
<entry>
    <title>Flex 3 (and Flex 3 Documentation) is Live!</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/flexdoc/2008/02/flex_3_and_flex_3_documentatio_1.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=99/entry_id=5177" title="Flex 3 (and Flex 3 Documentation) is Live!" />
    <id>tag:blogs.adobe.com,2008:/flexdoc//99.5177</id>
    
    <published>2008-02-25T03:55:54Z</published>
    <updated>2008-02-25T13:53:52Z</updated>
    
    <summary>We started shipping Flex 3 today. Wow! This has been quite a release and, although you&apos;re probably reading this on all the Adobe blogs, we think it&apos;s pretty special. I know that we&apos;ve made a number of improvements to the...</summary>
    <author>
        <name>Randy Nielsen</name>
        
    </author>
            <category term="Flex 3" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/flexdoc/">
        <![CDATA[<p>We started shipping Flex 3 today. Wow! This has been quite a release and, although you're probably reading this on all the Adobe blogs, we think it's pretty special. I know that we've made a number of improvements to the docs, and am going to ask the writers to create their own posts to enumerate their personal favorites. For my part, I'll call out two:</p>
<ul>
<li> 
<b>The <a href="http://learn.adobe.com/wiki/display/Flex/Getting+Started">Flex 3 Getting Started Experience</a></b> - With Flex 2 and 2.0.1, we had a lot of negative feedback from Flex newbies.My manager, in her infinite wisdom, gave us a lot of support in hiring <a href="http://www.inquirium.net/">Inquirium</a> (an instructional design firm) to interview Flex developers, figure out their common patterns/problems, and create a new getting started roadmap. Some hurdles we knew about (understanding that Flex access data indirectly through a server), but others were a surprise (a lot of people got caught up with asynchronous events). We then hired <a href="http://www.trilemetry.com/">Trilemetry</a> (big thanks to Emily, Annette, and Bob) to "realize" the Getting Started Experience. This turned out to be bigger than we thought, but I think it works really well, and the Beta feedback has been extremely positive.
</li>
<li>
<b><a href="http://livedocs.adobe.com/flex/3/html/Part1_languages_1.html">Revised table of contents (TOC) architecture for Flex Builder online Help and LiveDocs</a></b> - In our work with Inquirium, it became clear that viewers weren't thinking about "books" in the online doc experience. The revised TOC feels more navigable and I think it makes it easier to find stuff. Please check it out and let me know what you think. Note that we only did this for the core Flex books, so Flex Builder, Data Visualization, AIR, and ActionScript are still presented as books. Also note that material is still available as books through the <a href="http://www.adobe.com/support/documentation/en/flex/">Flex Help Resource Center</a>.
</li>
</ul>
<p>OK. I lied. Two more things:
<ul>
<li>
Obviously, I'm focusing on Flex, but AIR went live today, too, and this is a significant milestone for Adobe. For Flex developers, it's pretty simple: Any app you write for the browser should just run in the AIR runtime (and the Flex 3 LiveDocs include <a href="http://livedocs.adobe.com/flex/3/html/Part5_AIR_1.html"><i>Developing AIR Applications with Flex</i></a>). You can also take advantage of the extended functionality inherent in a desktop application and I recommend scanning the discussions of windows, menus, taskbars, files, data, HTML content and Rich media content. In particular, I think the drag & drop and local SQL database discussions are cool.
</li>
<li>Please use the <a href="http://bugs.adobe.com/flex/">public bugbase</a> to report problems with the Flex 3 documentation. You can also search the bugbase to see if anyone else has already reported an issue.
</ul>
<p>
Thanks everybody for your feedback during the Flex 3 Beta cycle. You made a difference.
</p>
<p>
On to Flex 4!
</p>]]>
        
    </content>
</entry>

</feed> 

