Utility functions in Flex

November 5th, 2009

I wanted to use some functions that do not belong to any visual component. I did not want to use the Java-style syntax in ActionScript (with classes and interfaces). Since ActionScript is closely related to JavaScript, I created a JavaScript-like object and put the utility functions there. The file is in src/com/mycompany/util/MYCO.as:

package com.myco.util {

	import flash.events.Event;

	public function MYCO():Object {

		this.safeNull=function(instr:String):String {
	    	return instr==null?'':instr;
	    }
}

I can reference methods in this object from other files like this:

 var blah:Function= com.myco.util.MYCO().safeNull;
 var ret:String=blah.apply(this, ['hello']);

Suppose I need access to other functions in the MYCO object, I define a locally visible variable called Myco and assign it to this:

package com.myco.util {

	import flash.events.Event;

	public function MYCO():Object {
		var Myco:Object=this;
		this.safeNull=function(instr:String):String {
                Myco.sayHelloFirst();
	    	return instr==null?'':instr;
	    },

	    this.sayHelloFirst=function():void {
	    	// saying hello
	    }
    };
}

This is because I can not just use ‘this’. ‘this’ could point to some other object, according to the rules of JavaScript.

Today

October 30th, 2009

Playing with Redis and MongoDB.