Yeah, I have also seen things like that, although not specifically with
ResourceManager, I recall seeing it with instances of custom classes.
To keep things as close as possible to the original code, the way I have
addressed this in the past it is to convert the static const into a static
getter, with the instance constructed the first time the getter is accessed.
private static var _ERROR:String
public static function get ERROR():String { if (_ERROR) return _ERROR;
_ERROR = ResourceManager.getInstance().getString('messages', 'error');
return _ERROR }you could probably opt out of the local private storage variable and simply return the value from ResourceManager, but that might change if locale changes happen (which I don't know if we support yet, I did not check that). On Sat, Nov 2, 2019 at 10:21 AM Alex Harui <[email protected]> wrote: > It may not work to define static constants from ResourceManager. > > > > HTH, > > -Alex > > > > *From: *Serkan Taş <[email protected]> > *Reply-To: *"[email protected]" <[email protected]> > *Date: *Friday, November 1, 2019 at 1:47 PM > *To: *"[email protected]" <[email protected]> > *Subject: *WARNING > > > > Hi, > > Need and advice, I am getting a compiler warning that appears as an > exception in web console : > > WARNING: > D:/dev/royale-emulation-works/github/royale-testing/src/main/mtest/bin/js-debug/main/mtest/FindBug.js:141: > WARNING - mx.resources.ResourceManager.getInstance defined before its > owner. mx.resources.ResourceManager is defined at > D:/dev/royale-emulation-works/github/royale-testing/src/main/mtest/bin/js-debug/mx/resources/ResourceManager.js:19 > main.mtest.FindBug.ERROR = > mx.resources.ResourceManager.getInstance().getString('messages', 'error'); > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > > And the exception : > > FindBug.js:141 Uncaught TypeError: Cannot read property 'ResourceManager' > of undefined > at FindBug.js:141 > (anonymous) @ FindBug.js:141 > SystemManager.js:231 Uncaught TypeError: Cannot read property 'mixins' of > undefined > at FindBug_mx_managers_SystemManager.mx.managers.SystemManager.start > (SystemManager.js:231) > at index.html:366 > > The source piece : > > <?xml version="1.0" encoding="utf-8"?> > <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" > <https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fns.adobe.com%2Fmxml%2F2009&data=02%7C01%7Caharui%40adobe.com%7C19e026478f6c4b7237cf08d75f0ca489%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637082380221864549&sdata=%2B%2BuxytHojeYDlAVSDLry850kQE1aCNeMEhZG%2BZdq5mg%3D&reserved=0> > xmlns:s="library://ns.apache.org/royale/spark" > xmlns:mx="library://ns.apache.org/royale/mx" > paddingBottom="0" paddingTop="0" paddingLeft="0" > paddingRight="0" > height="100%" width="100%" > creationComplete="onCreationComplete()" > xmlns:comps="com.likya.pinara.comps.*" > > > > <fx:Metadata> > [ResourceBundle("messages")] > </fx:Metadata> > > <fx:Script> > <![CDATA[ > import mx.resources.ResourceManager; > > public static const ERROR:String = > ResourceManager.getInstance().getString('messages', 'error'); > > public function onCreationComplete():void { > > } > > protected function button_clickHandler(event:MouseEvent):void { > } > > ]]> > </fx:Script> > > <fx:Declarations> > </fx:Declarations> > > <s:layout> > <s:VerticalLayout gap="10" paddingRight="10" paddingLeft="10" > paddingTop="10" paddingBottom="20" /> > </s:layout> > > <s:Button id="button" width="200" label="Show/Hide" > click="button_clickHandler(event)"/> > > <mx:Panel title="Form Container Example" > paddingBottom="10" paddingTop="10" paddingLeft="10" > paddingRight="10" > height="100%" width="100%"> > > <mx:Text width="100%" > text="Moving from one form field to another triggers the > validator."/> > > <mx:Form width="100%" height="100%" > > <mx:FormHeading label="Enter values into the form."/> > > <mx:FormItem label="First name" > > <mx:TextInput id="fname" width="200"/> > </mx:FormItem> > > <mx:FormItem label="{resourceManager.getString('messages', > 'userName')}"> > <mx:TextInput id="username" width="200"/> > </mx:FormItem> > </mx:Form> > > </mx:Panel> > > </s:Application> > > Thanks, > Serkan > >
