Alternatives to

April 24, 2009 at 4:06 am | Posted in flex2 | Leave a comment
Tags: – Building An Open  “.. This is fair enough and it’s their right to do that as a company of course but it goes against the principals of Free Culture and Free Software. Now there are plans afoot to create a completely free (as in freedom) alternative called”

Flex Camp Bogotá 2008

August 19, 2008 at 3:41 pm | Posted in flex2, Rich Internet Applications | Leave a comment
Tags: , , ,

El día 11 de septiembre del 2008 se llevará a cabo el primer Flex Camp en Bogotá. Un Flex Camp es un evento técnico donde desarrolladores aprenden mas acerca de las soluciones RIA de Adobe – en Especial Adobe Flex y Adobe AIR.

Más información aquí:

Babbel (or learning new languages with Flex…)

January 17, 2008 at 11:00 pm | Posted in applications, flex2 | 2 Comments

Babbel is a really cool Flex Based Rich Internet Application that supports learning of new Languages (German, Spanish, French, Italian and English).

More Info:

Learn New Languages Easily With Babbel

Interview with Babbel Founder on Flash, Flex, and RIAs

Apprendre les langues avec Babbel, une nouvelle application Flex

Flex Based Mashup: lastTube, meets Youtube.

May 7, 2007 at 7:02 pm | Posted in as3, flex2,, mashup, video, yahoo pipes, youtube | 7 Comments

As a “proof of concept” and challenge for myself, I have create a Client Mashup using Flex 2 and Public Web Services.

Constraints: No server side code created. Only one day of work.

Result: “lastTube, meets Youtube”

Basically you can easily view Youtube’s videos related to your Recently Listened Tracks published in

Brief Description, Details and Application’s Launcher here:

Screen Capture:

Multiple Yahoo! maps in a Flex 2 Application

February 19, 2007 at 8:53 am | Posted in flex2, yahoo maps | 2 Comments

(I have post this question in Flexcoders)

I am using this technique to embed a yahoo map in my flex 2 application: Inserting Yahoo! maps in a Flex 2 application

I have made some changes intended to support multiple instances of yahoo map control in my app (MDI application).

As you can see in this image:

Multiple Yahoo Maps in Flex 2

– first map window (background): OK

– second map window (front): Problems…it only shows yahoo logos…
map tools and images are not shown…

any help?

is there some kind of restriction related to number of yahoo map
objects that can be instantiated at the same time by the same
flash/flex 2 application ?

Thanks for your help.

DateFormatter parseDateString Replacement(

February 18, 2007 at 4:36 pm | Posted in as3, flex2 | 8 Comments

Searching in flex documentation I have found that parseDateString is a protected method… (why protected? it really sucks…)

If you need a “quick and dirty” method to parse a date from a string, maybe this could help you:

public class DateUtil {

public static function parseString(stringDate:String) : Date{
var milis:Number = Date.parse(stringDate);
return new Date(milis);

stringDate Format restrictions (From Date Documentation):

The Time Zone Designation (TZD) is always in the form GMT-HHMM or UTC-HHMM indicating the hour and minute offset relative to Greenwich Mean Time (GMT), which is now also called universal time (UTC). The year month and day terms can be separated by a forward slash (/) or by spaces, but never by a dash (-). Other supported formats include the following (you can include partial representations of these formats; that is, just the month, day, and year):








The future of Java: Flex

February 5, 2007 at 4:43 pm | Posted in flex2, java | Leave a comment

Hybridizing Java: This is an interesting article published by Bruce Eckel, author of “Thinking in Java”

Does RemoteObjectAMF0 has concurrency problems?

January 25, 2007 at 5:31 am | Posted in amf, flex2 | 2 Comments

I have a “weird” problem in my app…

This is my test:

Server Side:
a) I have a generic pageable search service in Java (I’am using RemoteObjectAMF0 and openamf). It returns a list (a page of results) with value objects. Value Objects’ Class is determined by service params.

Client Side:
b) I have two different forms that use that search service. (Each form belongs to a different Module). Form 1 expects objects of Type A and Form 2 expects objects of Type B. Both forms are at the same time on screen
a kind of MDI…I hope so… 😉
I am using cairngorm 2.1. (a command is created per event instance)

c) Some searches with Form 1 : works fine. (my pageable Datagrid is simple.. but looks fine 😛 )

d) Some searches with Form 2: works fine.

e) “Parallel” search with form 1 and form 2:
Firs request of screen 1 and second request (almost parallel) of screen 2

f)Server logs are ok for both requests:
First Response : [results for form 2, only 777 objects]
2007-01-22 01:07:57,859 estimatedTotalResultsCount:777
Total Pages:4 Pagesize:200
startIndex: 0 lastIndex:199}]

Second Response : [results for form 1,  131.427 expected]
2007-01-22 01:07:57,890 estimatedTotalResultsCount:131427
Total Pages:658 Pagesize:200
startIndex: 0 lastIndex:199}]

g) Client side Brokes. It seems that “something” puts response of service 1 in service 2.
[postprocessing of object (ordering) fails, caused by “mixes(?)” of responses?? ]

This is the code of my Command:

private var recievedEvent : SearchEvent;

public function execute( event : CairngormEvent ): void {
var delegate : SearchDelegate = new SearchDelegate( this );
recievedEvent = SearchEvent( event );;

public function result( event : Object ) : void {
var search:Search = event.result as Search;

h) Its a little weird problem… Search works fine individually.. but in “parallel” brokes.
– Could be a concurrency problem in service processing? (RemoteObjectAMF0)
– Could be a problem in cairngorm?
– Could be a problem in my own code?

Any Help?

(“dumb” “solution”:  Hour Glass Functionality that blocks user interaction during remote service invocation calls?  How could this “hour glass” could be implemented using RemoteObjectAMF0 ?  … I was looking some code.. and probably some classes in RemoteObjectAMF0 package must be extended….)

Extending TitleWindow (SizeableTitleWindow/MaxRestorePanel, or the beauty of inheritance )

January 22, 2007 at 3:08 am | Posted in components, flash, flex2 | 4 Comments

Creating custom components with flex 2 is really easy, even if you are new to mxml and as3. (To develop custom components in flash 8 you need great knowledge of as2 and component’s architecture…)

In Flex 2 TitleWindow doesn’t support sizeable capabilities or custom buttons (only “x” button). Based in 2 examples (SizeableTitleWindow and MaxRestorePanel ) you can extend TitleWindow and achieve such functionalities.

1. Freely Available “SizeableTitleWindow” With Adobe’s ColdFusion/Flex Connectivity

To make it work you have to change a couple of lines:

Re: [flexcoders] Re: Resizable, Collapsible, Draggable Panel??

2. Now Extend your SizeableTitleWindow with MaxRestorePanel: (Code here: [flexcoders] Re: custom Panels original size ). Original MaxRestorePanel extends Panel, you can change it to extend SizeableTitleWindow… and voilá… this is your first custom flex 2 component…

It is really a copy-paste custom component… but looking to the code you can learn some internals related to components architecture and how to build your own extensions… specially in SizeableTitleWindow’s code.

(Offtopic: my first flash RIA was made with Flash MX, those components are the “great-grandfathers” of flex 2 … this is an amazing evolution of flash as a platform to develop business applications.  Thank you Adobe/Macromedia ).

Debugging Modules With Flex Builder (possible?)

January 11, 2007 at 6:20 am | Posted in flex2, Rich Internet Applications | 4 Comments

This is my first post in my “technical” blog … (another new year “purpose”)… Warning… my written english is really bad (english classes … another “purpose” for this year)…

I was trying to debug my app (that loads forms compiled in modules) with flex builder 2.0.1 ( installed as a plugin in eclipse 3.2.1) but it didn’t work… his is the description of my “environment” and steps to “reproduce” the “incident”:

1. The App: A Main application, A module with a breakpoint in the initialization method.

2. 05:33:16.156 [DEBUG] MyFlexApp This is a debug session… (ok… my app has been loaded…and my logger works fine… I had to make a “trick” to detect that the application was started in debug mode or normal mode… [sorry.. I`am a begginer in flex2..] )

3. The user selects an option of a MenuBar (the user wants to see a module of the application… )

4. 05:50:56.296 [DEBUG] AppWorkspace Loading Window: MySearchModule-debug.swf (ok… application is loading the correct debug.swf… according to “One-project model”)

5. My user is happy… he can see loading progress in a ProgressBar (easy… really easy… <mx:ProgressBar id=”progressBar” width=”80%” source=”{moduleLoader}” textAlign=”center”/> … forget old days of MovieClipLoader…)

6. Flex builder debugger freezes (mmmm this is not good…)

7. Firefox with flash debug player 9,0,15,0 freezes too (mmm .. did I say that my OS is WinXp?…)

8. Firefox with flash debug player 9,0,15,0 Crashes… (now my user isn’t happy and wants to kick my ass … I tell him that this is a new Feature of the product in te current build: “Close firefox directly from the MenuBar in the flex application“)

Firefox Error

9. 30 seconds trying to kill the crashed process…

10. Restart firefox, Restart eclipse.

11. Another test…and total crash repeats…

11. Post incident to flexcoders (maybe someone at adobe could read this … and give some advice 😛 ).

12. setInterval(this, “waitForHelpAboutDebuggingModules”, 1000*60*60); //old school…

13. Goto sleep.//old old school.

Update 2007/01/16
New Documentation here:

Modules documentation update

and here Debugging with Flex Modules where Kevin Hammer has a similar approach to my “experiment”… using the “this.url” trick in Application…
in addition.. when running in debug mode “generates” localhost gateway url for (debug only) connection with openamf running locally in tomcat…

My newbie “as3 and flex2” code is here:

In my main Application:

var pattern:RegExp = /MyFlexApp.swf/;
var baseUrl:String = this.url;
if(baseUrl.indexOf(“file://”, 0) > -1){
//Note: For local debugging Only
if(baseUrl.indexOf(“debug”, 0) > -1){
logger.debug(“This is a debug session…”);
MainAppModelLocator.getInstance().isDebugSession = true;
baseUrl = “;;
baseUrl = baseUrl.replace(pattern,””)+”gateway”;
} = baseUrl;

There is another component that “observes” user’s requests for loading new modules… the code is something like this:
public function observeShowModule():void{
var newWindow:MyWindow = PopUpManager.createPopUp(this,MyWindow, false) as MyWindow;

var moduleUrl:String = MainAppModelLocator.getInstance().currentShowModuleEvent.url;
var pattern:RegExp = /.swf/;
moduleUrl = moduleUrl.replace(pattern,”-debug.swf”);

logger.debug(“Loading Window: “+moduleUrl);

Blog at
Entries and comments feeds.