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