DZone Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

Jonnie has posted 12 posts at DZone. View Full User Profile

Saving Users Preferences In Air

09.21.2008
| 7828 views |
  • submit to reddit
        For saving a users preferences in Air, use the code as follows:

			
import com.adobe.air.preferences.PreferenceChangeEvent;
import com.adobe.air.preferences.Preference;

/* Create a new prefernce variable and give it a name */
private var prefs:Preference =  new Preference( "settings.obj" );

/* Create a new bytearry to store the data */
private var byteArray:ByteArray = new ByteArray();

/* Create a new fileStream variable to open up the local file system */
private var fileStream:FileStream;

/* The user data */
[Bindable] private var userData:User;

/* Register some event listeners to see when the prefrences change */
private function init():void
{				
	prefs.addEventListener( PreferenceChangeEvent.PREFERENCE_CHANGED_EVENT, onPrefChange );
	checkSettings();
}

/* When they change, set the action to edit, and update the files */
private function onPrefChange( event:PreferenceChangeEvent ):void
{
	if ( event.action == PreferenceChangeEvent.ADD_EDIT_ACTION )
	{
		//The new value
		trace( event.newValue );
		
	} else if ( event.action == PreferenceChangeEvent.DELETE_ACTION )
	{
		//The old value
		trace( event.oldValue );
	}
	
}			

/* Save the settings, it the checkbox is selected then lets save it */
private function saveSettings():void
{
	if ( cb_remember.selected )
	{
		/* preferences variable, give it a name, set the value, encyrpted or not */
		prefs.setValue( "username", txt_username.text, false );
		prefs.setValue( "password", txt_password.text, true );				
		prefs.save();
	} else {
		//Do nothing
	}				
	//Saved or Edited preferences
	trace( prefs );
}		

/* 
When the application loads, check the settings to see if anything has changed, if it has, set the value
of the new values to the values of the inputs 
*/
private function checkSettings():void
{			
	prefs.load();				
	txt_username.text = prefs.getValue( "username" );
	txt_password.text = prefs.getValue( "password" );
}

//Clear settings, and start from scratch
private function clearSettings():void
{
	txt_username.text = "";
	txt_password.text = "";
}