Hi, I found a problem with my Dialog implementation. It's creating a dialog each time I show it, so I try to make it a Singleton, but I can't get it working as expected:
The singleton is (remove comments and not related methods to remove verbosity): *public class Dialog extends ContainerBase implements IPopUp* * {* * public function Dialog()* * {* * if(_instance)* * {* * throw new Error("Dialog should not be instantiated.");* * }* * _instance = this;* * }* * static private var _instance:Dialog;* * COMPILE::JS* * static private var dialog:HTMLDialogElement;* * static public function addDialog():Dialog* * {* * if(!_instance)* * {* * _instance = new Dialog();* * if(Application.topLevelApplication != null)* * {* * Application.topLevelApplication.addElement(_instance);* * }* * }* * return _instance;* * }* * static public function showModal():Dialog { * * if(!_instance) { * * addDialog();* * }* * COMPILE::JS * * {* * dialog.showModal();* * }* * return _instance;* * }* * }* *}* Then I have a MXML file called TestDialog.mxml that has some custom content. I call with a button click like this: *var t:TestDialog = TestDialog.showModal();* This reports and error when compile MDLExample: *Error: Call to a possibly undefined method showModal through a reference with static type TestDialog.* * var t:TestDialog = TestDialog.showModal();* ^ But as I said TestDialog is an mxml declared as: *<mdl:Dialog xmlns:fx="http://ns.adobe.com/mxml/2009 <http://ns.adobe.com/mxml/2009>"* * xmlns:js="library://ns.apache.org/flexjs/basic <http://ns.apache.org/flexjs/basic>"* * xmlns:mdl="library://ns.apache.org/flexjs/mdl <http://ns.apache.org/flexjs/mdl>"* * xmlns="http://www.w3.org/1999/xhtml <http://www.w3.org/1999/xhtml>">* *....* So should has showModal static method So this seems to me a bug in FlexJS Thanks -- Carlos Rovira http://about.me/carlosrovira