<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>justRIA &#187; flex</title>
	<atom:link href="http://www.justria.com/category/flex/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.justria.com</link>
	<description>software, internet, etc.</description>
	<lastBuildDate>Sun, 01 Jan 2012 22:17:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Dropbox using Flex</title>
		<link>http://www.justria.com/2010/10/09/dropbox-using-flex/</link>
		<comments>http://www.justria.com/2010/10/09/dropbox-using-flex/#comments</comments>
		<pubDate>Sat, 09 Oct 2010 14:02:33 +0000</pubDate>
		<dc:creator>justperson</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://www.justria.com/?p=379</guid>
		<description><![CDATA[Twitter It!Could someone post pointer for a Dropbox client ActionScript 3 library for Flex? I found this http://code.google.com/p/dropbox-as3/ in GoogleCode, but it is kind of undocumented.]]></description>
			<content:encoded><![CDATA[<span class="post-twitter" ><a href="http://twitter.com/home?status=Reading%20%20%22Dropbox%20using%20Flex%22%20http%3A%2F%2Ftinyurl.com%2F3amhalu" title="Twitter It!" >Twitter It!</a></span><p>Could someone post pointer for a Dropbox client ActionScript 3 library for Flex?</p>
<p>I found this <a title="AS3 Lib for Dropbox [AIR]" href="http://code.google.com/p/dropbox-as3/" target="_self">http://code.google.com/p/dropbox-as3/</a> in GoogleCode, but it is kind of undocumented.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justria.com/2010/10/09/dropbox-using-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coding Flex? Download Adobe AIR Launchpad</title>
		<link>http://www.justria.com/2010/08/24/coding-flex-download-adobe-air-launchpad/</link>
		<comments>http://www.justria.com/2010/08/24/coding-flex-download-adobe-air-launchpad/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 13:56:23 +0000</pubDate>
		<dc:creator>justperson</dc:creator>
				<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://www.justria.com/?p=299</guid>
		<description><![CDATA[Twitter It!Recently, Adobe Labs released a new tool Adobe AIR Launchpad, which helps to quick-start new Flex project. James Ward prepared a small Launchpad video intro. The application, is a 4 panel long wizard, requests various properties and finally saves a fresh Flex project, which comes along with various convenience methods. Phase 1 :: e.g. [...]]]></description>
			<content:encoded><![CDATA[<span class="post-twitter" ><a href="http://twitter.com/home?status=Reading%20%20%22Coding%20Flex%3F%20Download%20Adobe%20AIR%20Launchpad%22%20http%3A%2F%2Ftinyurl.com%2F32jxwyl" title="Twitter It!" >Twitter It!</a></span><p>Recently, Adobe Labs released a new <a title="Adobe AIR Launchpad" href="http://labs.adobe.com/downloads/airlaunchpad.html" target="_blank">tool</a> <a title="Adobe AIR Launchpad" href="http://labs.adobe.com/downloads/airlaunchpad.html" target="_blank">Adobe AIR Launchpad</a>, which helps to quick-start new Flex project. James Ward prepared a small <a title="James Ward video intro Adobe AIR Launchpad" href="http://www.jamesward.com/2010/08/24/video-introduction-to-the-new-adobe-air-launchpad/" target="_blank">Launchpad video intro</a>.</p>
<p>The application, is a 4 panel long wizard, requests various properties and finally saves a fresh Flex project, which comes along with various convenience methods.</p>
<p><span id="more-299"></span></p>
<p>Phase 1 :: e.g. Auto-updating and transparency</p>
<p><a href="http://www.justria.com/wp-content/uploads/2010/08/launchpad-phase-1.png"><img class="alignnone size-full wp-image-304" title="launchpad-phase-1" src="http://www.justria.com/wp-content/uploads/2010/08/launchpad-phase-1.png" alt="" width="617" height="393" /></a></p>
<p>Phase 2 :: e.g. center on launch, network status change and local preferences</p>
<p><a href="http://www.justria.com/wp-content/uploads/2010/08/launchpad-phase-2.png"><img class="alignnone size-full wp-image-305" title="launchpad-phase-2" src="http://www.justria.com/wp-content/uploads/2010/08/launchpad-phase-2.png" alt="" width="617" height="393" /></a></p>
<p>Phase 3 :: e.g. Display PDF and &#8216;Open with Default Application&#8217;</p>
<p><a href="http://www.justria.com/wp-content/uploads/2010/08/launchpad-phase-3.png"><img class="alignnone size-full wp-image-306" title="launchpad-phase-3" src="http://www.justria.com/wp-content/uploads/2010/08/launchpad-phase-3.png" alt="" width="617" height="393" /></a></p>
<p>Phase 4 :: Finally, Launchpad saves the generated Flash Builder 4 project</p>
<p><a href="http://www.justria.com/wp-content/uploads/2010/08/launchpad-phase-4.png"><img class="alignnone size-full wp-image-307" title="launchpad-phase-4" src="http://www.justria.com/wp-content/uploads/2010/08/launchpad-phase-4.png" alt="" width="617" height="393" /></a></p>
<p>PS: I still hate the name Flash Builder 4:  <strong>The product should be named FLEX Builder 4.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.justria.com/2010/08/24/coding-flex-download-adobe-air-launchpad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get schema-free within minutes using MongoDB</title>
		<link>http://www.justria.com/2009/12/21/get-schema-free-within-minutes/</link>
		<comments>http://www.justria.com/2009/12/21/get-schema-free-within-minutes/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 01:51:54 +0000</pubDate>
		<dc:creator>justperson</dc:creator>
				<category><![CDATA[flex]]></category>
		<category><![CDATA[DBMS]]></category>
		<category><![CDATA[document-oreniented DB]]></category>
		<category><![CDATA[mongoDB]]></category>
		<category><![CDATA[schema-free]]></category>

		<guid isPermaLink="false">http://www.justria.com/?p=166</guid>
		<description><![CDATA[Twitter It!As me, many software developers learned the relations view of database management system: Identifiy entities, develope a database schema, normalize it and map it to a real DBMS system. That&#8217;s fine. And for many application this approach is just fine. For other types of application, this approach tends to make development complicated. Suppose, you [...]]]></description>
			<content:encoded><![CDATA[<span class="post-twitter" ><a href="http://twitter.com/home?status=Reading%20%20%22Get%20schema-free%20within%20minutes%20using%20MongoDB%22%20http%3A%2F%2Ftinyurl.com%2F38ja3v4" title="Twitter It!" >Twitter It!</a></span><p>As me, many software developers learned the relations view of database management system: Identifiy entities, develope a database schema, normalize it and map it to a real DBMS system. That&#8217;s fine. And for many application this approach is just fine.</p>
<p>For other types of application, this approach tends to make development complicated.</p>
<p><span id="more-166"></span></p>
<p>Suppose, you need to create a note taking application. The app should be able to take notes. A note should have a title, a text body and an arbitrary number of optional fields, a use may use to add small snippets of text. Hm, an <em>arbitrary number of fields</em>, which you don&#8217;t know up front? How would you implement them in your favorite DB system?</p>
<p>Create a new table, which keeps each single optional field? <em>Probably too inefficient.</em><br />
Serialize optional fields and drop them into a single attribute of a table? <em>Hm, complicated. </em>How would you manage search operations?</p>
<p>Without pointing towards a relational solution, I&#8217;d propose to use a non-relational DBMS system. Especially a <a title="Definition of document oriented database" href="http://en.wikipedia.org/wiki/Category:Document-oriented_databases" target="_blank">schema-free DBMS</a>.</p>
<p><strong>Schema-free solutions</strong></p>
<p>A schema-free DBMS is one, which allows to store any kind of data of any structure. You don&#8217;t need to define your DBs tables and attributes up-front. Simply create new attributes of as soon as you need a new attribute.</p>
<p>Think of a schema-free DBMS as one, which manages key-value coded tuples [XCode users: <a title="Apple: Intro to key-value coding" href="http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/KeyValueCoding/KeyValueCoding.html" target="_blank">Key-Value coding</a> comes to mind].</p>
<p>In case you&#8217;d like to have a look, your first Google hit might point you to <a title="CouchDB homepage" href="http://couchdb.apache.org/" target="_blank">CouchDB</a>, which meanwhile is a project of the Apache foundation. CouchDB is an <a title="Programming language erlang" href="http://ftp.sunet.se/pub/lang/erlang/" target="_blank">Erlang</a>-based solution. Thus you not only need to download and install CouchDB, but an Erlang runtime too.</p>
<p>Recently I stumbled upon <a title="The schema-free DBMS MongoDB" href="http://www.mongodb.org/" target="_blank">MongoDB</a>, which comes as a no-dependencies solution. <a title="Download a MongoDB release" href="http://www.mongodb.org/display/DOCS/Downloads" target="_blank">Download it</a> and start <a title="Getting started with MongoDB" href="http://www.mongodb.org/display/DOCS/Starting+and+Stopping+Mongo" target="_blank">mongod</a>, the MongoDB server. That&#8217;s it. Finally, you might wish to download and install a <a title="Programming language drivers for MongoDB" href="http://www.mongodb.org/display/DOCS/Drivers" target="_blank">MongoDB driver for your preferred language</a>.</p>
<p>Yet, MongoDB doesn&#8217;t come with an AS3 binding. To get access to MongoDB from within your Flex/Air app, various ways exist. One might use <a title="MongoDBs PHP driver" href="http://www.mongodb.org/display/DOCS/PHP+Language+Center" target="_blank">MongoDB&#8217;s PHP-driver</a>, add some <a title="AMFPHP library to access PHP-objects from within Flex" href="http://www.amfphp.org/" target="_blank">AMFPHP</a> magic and finally expose your MongoDB&#8217;s API to flex.</p>
<p><strong>Resources</strong></p>
<p>A recorded <a title="A recorded mongoDB webinar " href="http://blog.mongodb.org/post/241424419/webinar-recording-posted" target="_blank">webinar</a> by MongoDB&#8217;s parents<br />
A <a title="MongoDB presentation at NOSQL conference" href="http://vimeo.com/5184456" target="_blank">MongoDB presentation</a> held at the NOSQL conference 06/2009</p>
<p><em>PS: </em>Actually, it is kind of funny, how IBM developed SQL: The original intention was to create a tool for managers to easily retrieve data from DB systems &#8211; not a tool for developers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justria.com/2009/12/21/get-schema-free-within-minutes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex&#8217; mx_internal_uid considered harmful</title>
		<link>http://www.justria.com/2009/02/26/avms-mx_internal_uid-considered-harmful/</link>
		<comments>http://www.justria.com/2009/02/26/avms-mx_internal_uid-considered-harmful/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 23:57:44 +0000</pubDate>
		<dc:creator>justperson</dc:creator>
				<category><![CDATA[flex]]></category>
		<category><![CDATA[AVM]]></category>
		<category><![CDATA[garbage collection]]></category>
		<category><![CDATA[gc]]></category>
		<category><![CDATA[internals]]></category>

		<guid isPermaLink="false">http://www.justria.com/?p=154</guid>
		<description><![CDATA[Twitter It!Actually, not that harmful. But you should be aware of a special meaning of this Flex object property. Here&#8217;s the story: Today, I tried to develop a method the create shallow and deep copies of objects. Finally, I prepared this method, initially without the line marked with __MARK__: static private function clone( source:Object, deep:Boolean [...]]]></description>
			<content:encoded><![CDATA[<span class="post-twitter" ><a href="http://twitter.com/home?status=Reading%20%20%22Flex%27%20mx_internal_uid%20considered%20harmful%22%20http%3A%2F%2Ftinyurl.com%2F33ehuya" title="Twitter It!" >Twitter It!</a></span><p>Actually, not that harmful. But you should be aware of a special meaning of this Flex object property. Here&#8217;s the story:</p>
<p>Today, I tried to develop a method the create shallow and deep copies of objects. Finally, I prepared this method, initially without the line marked with __MARK__:</p>
<pre>static private function clone( source:Object, deep:Boolean = false ):Object
  {
    if ( null == source ) {
    return null;
    }
    var copy:Object;
    if ( true == deep ) {
       copy =  <a title="ObjectUtiel LR" href="http://livedocs.adobe.com/flex/3/langref/mx/utils/ObjectUtil.html" target="_blank">ObjectUtil.</a>copy( source );
    } else {
      copy = new Object();
      for( var key:Object in source ) {
        if (  ( 'mx_internal_uid' != key ) ) {     // __MARK__
          copy[ key ] = source[ key ];
        }
     }
  }
  return copy;
} // clone</pre>
<p>Without the line marked by __MARK__, the method copies (more or less raw)  objects, but the dataProvider-driven controls gets in trouble: List-based control add each managed object a  &#8216;<a href="http://livedocs.adobe.com/flex/2/docs/00000499.html" target="_blank">mx_internal_uid</a>&#8216; to identify each data object. Thus, if you copy the  &#8216;mx_internal_uid&#8217; property, e.g. a DataGrid will no longer be able to distinguish the original source object or the clone(source) object.</p>
<p>Thus, it&#8217;s appropriate <strong>to not</strong> copy &#8216;<a href="http://livedocs.adobe.com/flex/2/docs/00000499.html" target="_blank">mx_internal_uid</a>&#8216; from source to clone.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justria.com/2009/02/26/avms-mx_internal_uid-considered-harmful/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex deployment: Using the correct mime type</title>
		<link>http://www.justria.com/2009/01/15/flex-deployment-use-the-correct-mime-type/</link>
		<comments>http://www.justria.com/2009/01/15/flex-deployment-use-the-correct-mime-type/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 23:39:41 +0000</pubDate>
		<dc:creator>justperson</dc:creator>
				<category><![CDATA[flex]]></category>
		<category><![CDATA[air]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[installer]]></category>

		<guid isPermaLink="false">http://www.justria.com/?p=132</guid>
		<description><![CDATA[Twitter It!Fine! You just managed to finish your first Flex-base AIR application. Using FlexBuilder&#8217;s Export Release Build&#8230;., you managed to package your deployable solution into a *.air file. Finally, you uploaded the *.air file to your web-server &#8211; and your coding mates tell you that not event a bit of an installation gets started. Too [...]]]></description>
			<content:encoded><![CDATA[<span class="post-twitter" ><a href="http://twitter.com/home?status=Reading%20%20%22Flex%20deployment%3A%20Using%20the%20correct%20mime%20type%22%20http%3A%2F%2Ftinyurl.com%2F3y9qllt" title="Twitter It!" >Twitter It!</a></span><p>Fine! You just managed to finish your first Flex-base AIR application. Using FlexBuilder&#8217;s <strong>Export Release Build&#8230;</strong>., you managed to package your deployable solution into a *.air file. Finally, you uploaded the *.air file to your web-server &#8211; and your coding mates tell you that not event a bit of an installation gets started. Too bad. What happened?</p>
<p>Most likely, you missed to assign the correct mime-type! Don&#8217;t forget, that you need to tell browsers, that files with *.air extensions actually are Adobe AIR installer files.</p>
<p>If you run Apache, adding the correct MIME type is simple:</p>
<p><strong>AddType application/vnd.adobe.air-application-installer-package+zip .air</strong></p>
<p>As always: Big trouble, small solution.Don&#8217;t forget, that this setting is absolutely vital! You need to set it &#8211; even if some browsers might be able to run the AIR install package with it. Most browser won&#8217;t&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justria.com/2009/01/15/flex-deployment-use-the-correct-mime-type/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Composing music &#8211; while solving logic puzzles</title>
		<link>http://www.justria.com/2008/12/29/composing-music-while-solving-logic-puzzles/</link>
		<comments>http://www.justria.com/2008/12/29/composing-music-while-solving-logic-puzzles/#comments</comments>
		<pubDate>Sun, 28 Dec 2008 22:10:56 +0000</pubDate>
		<dc:creator>justperson</dc:creator>
				<category><![CDATA[flex]]></category>
		<category><![CDATA[music sound generator]]></category>

		<guid isPermaLink="false">http://www.justria.com/?p=110</guid>
		<description><![CDATA[Twitter It!Auditorium is a logic puzzle. Auditorium is a music omposition application. Auditorium is simple gorgeous: If you play Auditorium, you place bricks on a board, which attract or deflect streams of particles. If you move bricks around, Auditorium generates music, if the particle streams passes so called audio-containers. Let the stream pass all audio-container [...]]]></description>
			<content:encoded><![CDATA[<span class="post-twitter" ><a href="http://twitter.com/home?status=Reading%20%20%22Composing%20music%20-%20while%20solving%20logic%20puzzles%22%20http%3A%2F%2Ftinyurl.com%2F39som5j" title="Twitter It!" >Twitter It!</a></span><p><a href="http://www.playauditorium.com/" target="_blank">Auditorium</a> is a logic puzzle. <a href="http://www.playauditorium.com/" target="_blank">Auditorium</a> is a music omposition application. <a href="http://www.playauditorium.com/" target="_blank">Auditorium</a> is simple gorgeous:</p>
<p><img class="alignnone size-full wp-image-111" title="Playing Auditorium" src="http://www.justria.com/wp-content/uploads/2008/12/bild-1.png" alt="Playing Auditorium" width="520" height="322" /></p>
<p>If you play <a href="http://www.playauditorium.com/" target="_blank">Auditorium</a>, you place bricks on a board, which attract or deflect streams of particles.<br />
If you move bricks around, <a href="http://www.playauditorium.com/" target="_blank">Auditorium</a> generates music, if the particle streams passes so called audio-containers.</p>
<p>Let the stream pass all audio-container you&#8217;ll get move to the next layer. Gorgeous!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justria.com/2008/12/29/composing-music-while-solving-logic-puzzles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CPreferencesManager : A preferences Manager for Adobe Flex/AIR</title>
		<link>http://www.justria.com/2008/07/31/cpreferencesmanager-a-preferences-manager-for-adobe-flexair/</link>
		<comments>http://www.justria.com/2008/07/31/cpreferencesmanager-a-preferences-manager-for-adobe-flexair/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 03:07:03 +0000</pubDate>
		<dc:creator>justperson</dc:creator>
				<category><![CDATA[Components]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[air]]></category>
		<category><![CDATA[CPreferencesManager]]></category>

		<guid isPermaLink="false">http://www.justria.com/?p=26</guid>
		<description><![CDATA[Twitter It!Here&#8217;s a small helper class CPreferencesManager which manages application preferences by means of a key/value set, which I added as a comment to coldfusionjedi&#8216;s nice blog: Sample usecase: Make window positions persist after relaunch of an application: 1. Create an instance: &#60;tracker:CPreferencesManager    id=&#8221;thePrefs&#8221; /&#62; 2. Attach windowMove events to your Window: windowMove=&#8221;thePrefs.setPreference(&#8216;main.window.x&#8217;,    this.nativeWindow.x.toString() [...]]]></description>
			<content:encoded><![CDATA[<span class="post-twitter" ><a href="http://twitter.com/home?status=Reading%20%20%22CPreferencesManager%20%3A%20A%20preferences%20Manager%20for%20Adobe%20Flex%2FAIR%22%20http%3A%2F%2Ftinyurl.com%2F33smp3q" title="Twitter It!" >Twitter It!</a></span><p>Here&#8217;s a small helper class CPreferencesManager which manages application preferences by means of a key/value set, which I added as a comment to <a title="coldfusionjedi's Blog" href="http://www.coldfusionjedi.com/index.cfm/2008/1/9/Working-with-Flex-AIR-and-SQL-2" target="_blank">coldfusionjedi</a>&#8216;s nice blog:</p>
<p>Sample usecase: Make window positions persist after relaunch of an application:</p>
<p><span id="more-26"></span></p>
<p>1. Create an instance:</p>
<p>&lt;tracker:CPreferencesManager    id=&#8221;thePrefs&#8221; /&gt;</p>
<p>2. Attach windowMove events to your Window:</p>
<p>windowMove=&#8221;thePrefs.setPreference(&#8216;main.window.x&#8217;,<br />
   this.nativeWindow.x.toString() );<br />
   thePrefs.setPreference(&#8216;main.window.y&#8217;, this.nativeWindow.y.toString() );&#8221;</p>
<p>3. After creationComplete, move the window to its position of the one but last launch:</p>
<p>var posX:int = int( thePrefs.getPreference(&#8216;main.window.x&#8217; ) );<br />
var posY:int = int( thePrefs.getPreference(&#8216;main.window.y&#8217; ) );<br />
move( posX, posY );      </p>
<p>The implementation:</p>
<p>package com.your.company<br />
{<br />
   import flash.filesystem.File;<br />
   import flash.filesystem.FileMode;<br />
   import flash.filesystem.FileStream;<br />
   import flash.utils.ByteArray;<br />
   import flash.utils.Dictionary;<br />
   import flash.utils.IDataInput;<br />
   import flash.utils.IDataOutput;<br />
   import flash.utils.IExternalizable;<br />
   <br />
   import mx.controls.Alert;<br />
   <br />
   public class CPreferencesManager implements IExternalizable<br />
   {<br />
      <br />
      private var _prefValues:Dictionary;<br />
      private   var   _prefsStream:FileStream;<br />
      <br />
      public function CPreferencesManager()<br />
      {</p>
<p>         _prefValues = new Dictionary();<br />
         loadPreferences();<br />
         <br />
      }<br />
      <br />
      public function loadPreferences():void {<br />
   <br />
         var fp: File = File.applicationStorageDirectory;<br />
         <br />
         fp = fp.resolvePath( &#8216;prefs.xml&#8217; );<br />
         <br />
         if ( fp.exists ) {<br />
            <br />
            _prefsStream = new FileStream();<br />
            _prefsStream.open( fp, FileMode.READ);<br />
            <br />
            readExternal( _prefsStream );<br />
            _prefsStream.close();<br />
            <br />
         } else {<br />
            _prefValues[ 'appName' ] = &#8216;tracker&#8217;; // test-code<br />
            savePreferences();<br />
         }</p>
<p>      }<br />
      <br />
      public function savePreferences():void {</p>
<p>         var fp: File = File.applicationStorageDirectory;<br />
         <br />
         fp = fp.resolvePath( &#8216;prefs.xml&#8217; );<br />
         <br />
         _prefsStream = new FileStream();<br />
         _prefsStream.open( fp, FileMode.WRITE );<br />
         <br />
         writeExternal( _prefsStream );<br />
         _prefsStream.close();<br />
         <br />
      }<br />
      <br />
      public function setPreference( name:String, value:Object ):void {<br />
         <br />
         _prefValues[ name ] = value;<br />
         savePreferences();<br />
         <br />
      }</p>
<p>      public function getPreference( name:String ):Object {<br />
         <br />
         return _prefValues[ name ];<br />
         <br />
      }<br />
      <br />
      <br />
      <br />
      public function readExternal(input:IDataInput):void<br />
    {<br />
       <br />
    var bytes:ByteArray = new ByteArray();<br />
       input.readBytes( bytes, 0, input.bytesAvailable );</p>
<p>    var q:Object = bytes.readObject();<br />
    <br />
    _prefValues = new Dictionary();<br />
    <br />
    for( var p:Object in q ) {<br />
       _prefValues[ p ] = q[p];<br />
    }<br />
    <br />
    // Alert.show( _prefValues.toString() );<br />
    <br />
    }<br />
   <br />
      public function writeExternal(output:IDataOutput):void<br />
    {</p>
<p>    var bytes:ByteArray = new ByteArray();<br />
    bytes.writeObject( _prefValues );<br />
    <br />
    output.writeBytes( bytes );<br />
    }</p>
<p>   }<br />
}</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.justria.com/2008/07/31/cpreferencesmanager-a-preferences-manager-for-adobe-flexair/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parleys: Enterprise RIA with Flex and Java</title>
		<link>http://www.justria.com/2008/05/12/parleys/</link>
		<comments>http://www.justria.com/2008/05/12/parleys/#comments</comments>
		<pubDate>Sun, 11 May 2008 23:08:03 +0000</pubDate>
		<dc:creator>justperson</dc:creator>
				<category><![CDATA[flex]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.justria.com/?p=25</guid>
		<description><![CDATA[Twitter It!Just a short note, that Parleys just published a new video Enterprise RIA with Flex and Java. As a Flex coder, you might give this AIR-based viewer a try and explore Parleys right from your desktop. Visit this page to learn more about Parleys Flex/AIR offerings.]]></description>
			<content:encoded><![CDATA[<span class="post-twitter" ><a href="http://twitter.com/home?status=Reading%20%20%22Parleys%3A%20Enterprise%20RIA%20with%20Flex%20and%20Java%22%20http%3A%2F%2Ftinyurl.com%2F35kjuo9" title="Twitter It!" >Twitter It!</a></span><p>Just a short note, that <a href="http://www.parleys.com/" target="_blank">Parleys</a> just published a new video <a href="http://www.parleys.com/display/PARLEYS/Enterprise+RIA+with+Flex+and+Java" target="_blank">Enterprise RIA with Flex and Java.</a></p>
<p>As a Flex coder, you might give this <a href="http://www.parleys.com/download/attachments/3440646/Pandora.air" target="_blank">AIR-based viewer</a> a try and explore <a href="http://www.parleys.com/" target="_blank">Parleys</a> right from your desktop. Visit this page to learn more about <a href="http://www.parleys.com/display/PARLEYS/Parleys.com+V2+BETA+Program" target="_blank">Parleys Flex/AIR offerings</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justria.com/2008/05/12/parleys/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Links: Obfuscating Flex/AS code</title>
		<link>http://www.justria.com/2008/05/12/links-obfuscating-flex-code/</link>
		<comments>http://www.justria.com/2008/05/12/links-obfuscating-flex-code/#comments</comments>
		<pubDate>Sun, 11 May 2008 22:50:49 +0000</pubDate>
		<dc:creator>justperson</dc:creator>
				<category><![CDATA[flex]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.justria.com/?p=24</guid>
		<description><![CDATA[Twitter It!Much like Java, Flex compiles code into a bytecode representation for the Flash virtual machine (Flash VM). While opening VM code using a text editor, certain tools are able to retrieve significant portions of information for compiles Flex app. Much like obfuscators for JAVA, obfuscators for Flex/AS try to hide as much as possible [...]]]></description>
			<content:encoded><![CDATA[<span class="post-twitter" ><a href="http://twitter.com/home?status=Reading%20%20%22Links%3A%20Obfuscating%20Flex%2FAS%20code%22%20http%3A%2F%2Ftinyurl.com%2F2utvkcz" title="Twitter It!" >Twitter It!</a></span><p>Much like Java, Flex compiles code into a bytecode representation for the Flash virtual machine (Flash VM). While opening VM code using a text editor, certain tools are able to retrieve significant portions of information for compiles Flex app. Much like obfuscators for JAVA, obfuscators for Flex/AS try to hide as much as possible in compiled code.</p>
<p><span id="more-24"></span></p>
<p>As always, you can&#8217;t obfuscate all. How much an obfuscator helps, depends on your needs and your project. Here is a (imcomplete) list of tools:<a href="http://ambiera.com/irrfuscator/index.html" target="_blank"></a></p>
<p><a href="http://ambiera.com/irrfuscator/index.html" target="_blank">http://ambiera.com/irrfuscator/index.html</a> [Free/BETA]<br />
<a href="http://www.kindisoft.com/secureSWF/" target="_blank"> http://www.kindisoft.com/secureSWF/</a></p>
<p>Genable, another obfuscator, has been sold by the developer to another company, but you can still access a preview here:</p>
<p><a href="http://web.archive.org/web/20040201231108/www.genable.com/aso/preview.html" target="_blank">http://web.archive.org/web/20040201231108/www.genable.com/aso/preview.html</a></p>
<p>Additionally, this video on InsideRIA presents <a href="http://www.insideria.com/2008/04/encryption-in-flex-application-2.html" target="_blank">NitroLM</a>, a pro-class SWF encryptor. Take note, that <a href="http://nitrolm.com/Features.html" target="_blank">NitroLM</a> provides more than just encryption, since it is a complete l<a href="http://nitrolm.com/Features.html" target="_blank">icense managemet solution</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justria.com/2008/05/12/links-obfuscating-flex-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Minimizing Flex&#8217; default context menu</title>
		<link>http://www.justria.com/2008/04/16/minimizing-flex-context-menu-items/</link>
		<comments>http://www.justria.com/2008/04/16/minimizing-flex-context-menu-items/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 21:38:28 +0000</pubDate>
		<dc:creator>justperson</dc:creator>
				<category><![CDATA[flex]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[default menu]]></category>
		<category><![CDATA[menu]]></category>

		<guid isPermaLink="false">http://www.justria.com/?p=23</guid>
		<description><![CDATA[Twitter It!In case you want to add custom menu items to the default menu item of a Flex app, here is a small snippet to get you started: Step one &#8211; Minimize the default contextual menu // defaultMenu will keep our reference to the default menu of our browser-based // Flex application var defaultMenu:ContextMenu; // [...]]]></description>
			<content:encoded><![CDATA[<span class="post-twitter" ><a href="http://twitter.com/home?status=Reading%20%20%22Minimizing%20Flex%27%20default%20context%20menu%22%20http%3A%2F%2Ftinyurl.com%2F3yb4dwe" title="Twitter It!" >Twitter It!</a></span><p>In case you want to add custom menu items to the default menu item of a Flex app, here is a small snippet to get you started:</p>
<p><span id="more-23"></span></p>
<p><strong>Step one &#8211; Minimize the default contextual menu</strong></p>
<pre style="background-color: #555555; border: solid 1px #AA0000; padding: 3px; font-family: courier, serif;  font-size: 10pt;">// <strong>defaultMenu</strong> will keep our reference to the default menu of our browser-based
// Flex application
var defaultMenu:ContextMenu;

// Now, let's make the default menu as small as possible
defaultMenu = Application.application.contextMenu;
defaultMenu.hideBuiltInItems();</pre>
<p><strong>Step two &#8211; Add you own menu entry to the contextual menu</strong></p>
<p>Then, let&#8217;t create a new menu item to be added to the default contextual menu.</p>
<pre style="background-color: #555555; border: solid 1px #AA0000; padding: 3px; font-family: courier, serif;  font-size: 10pt;">// <strong>item</strong> is our new menu item
var item:ContextMenuItem = new ContextMenuItem("Some String");

// Add an event listener, which gets fired, if the user selected the menu item
item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,handleStaticMenuItem);

// Finally, it's time to add the new menu item to the default menu
defaultMenu.customItems.push( item );

// Implement your own event handling routine here
public function handleStaticMenuItem( anEvent:Event ):void {

}</pre>
<p>While it&#8217;s very simple to add a new menu entry, you can&#8217;t get rid of all Flash Player contextual menu entries: Even if you call hideBuildInMenu(), certain menu items will still be visible.</p>
<p>Once you deploy your Flex application as a standalone AIR application, you are free again, since AIR application don&#8217;t have default menu items.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justria.com/2008/04/16/minimizing-flex-context-menu-items/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

