Great to hear that Andrew! :) although, maybe others will have some more clues about how to get release mode work too. I think is amazing to see a royale app working in release mode since is blazing fast, and customers use to be impressed by the amazing performance ;)
El lun., 22 jul. 2019 a las 17:04, Piotr Zarzycki (< piotrzarzyck...@gmail.com>) escribió: > Hi Andrew, > > Congrats! Customer's happiness is all about what we wanted for this project > :) > > Thanks, > Piotr > > pon., 22 lip 2019 o 17:01 Frost, Andrew <andrew.fr...@harman.com> > napisał(a): > > > Perfect, thanks! With a bit of a mixture of typing and then of using that > > format with the accessing, it worked.. I didn't want to have to create > > class definitions for all of these various options but just using the > > ["RESULT_CODE"] notification in ActionScript means that the generated > (and > > minified) JavaScript creates it as .RESULT_CODE and this then works with > > the dynamically recreated data. > > > > Thanks for the support, one step closer as now our release builds are > > picking up the database connection (makes our customer happier as they > > don't like the slow loading time for all the .js files in a debug > build...) > > > > cheers > > > > > > > > -----Original Message----- > > From: Carlos Rovira <carlosrov...@apache.org> > > Sent: 22 July 2019 14:52 > > To: dev@royale.apache.org > > Subject: [EXTERNAL] Re: AMF and class aliases > > > > Hi Andrew, > > > > first of all if you are using ArrayCollection and not ArrayList you must > > configure that. In my code I'm using this to configure ArrayList as the > > type royale must use when send and receive java ArrayCollection: > > > > registerClassAlias("flex.messaging.io.ArrayCollection", ArrayList); > > > > (don't remember if Greg made it default to ArrayCollection) > > > > about serialization/deserialization issues, maybe other could give you > > better clues than me, since all our objects are strongly typed so objects > > in collections are classes and if that classes has collections then the > sub > > objects will be typed as well. > > > > I found that when I have problems when something runs in debug mode but > > not in release mode for deserialization issues the object bracket access > > use to work always, so I think is what you need to do, so for example in > > you case I think this should work: > > > > results[I]["outputArray"]["source"][0][RESULT_CODE] > > > > HTH > > > > Carlos > > > > El lun., 22 jul. 2019 a las 11:17, Frost, Andrew (< > andrew.fr...@harman.com > > >) > > escribió: > > > > > Hi again > > > > > > One extra question here: we have the AMF connection working fine now > > > in Debug mode, but in Release mode the minifier is changing the > > > property names of our JavaScript (compiled from ActionScript), but > > > these are not being reflected in the objects that are deserialised. > > > > > > So for example, we are receiving an ArrayCollection, and accessing one > > > element's property directly e.g.: > > > var results : ArrayCollection = resultEvt.result as ArrayCollection; > > > for (var i : uint = 0; i < results.length; i++) { > > > var resultCode : String = > > > results[i].outputArray.source[0].RESULT_CODE; > > > ... > > > > > > There are a couple of things going on: > > > (a) each element in the main ArrayCollection has an "outputArray" > > > property which is itself an ArrayCollection. We could cast it into an > > > ArrayCollection variable I guess, but instead have just added "source" > > > so that the JavaScript doesn't try adding the [] operator to the > > > ArrayCollection object directly... > > > (b) the contents of this ArrayCollection, in this particular case, is > > > a simple object {RESULT_CODE: "OK"} - which I can see in the console > > > when we add some trace. The js-debug file has the same structure as > > > the ActionScript; but the js-release file has a mapping at the start > > > "nc='RESULT_CODE'" and then accesses the data with " > > > a.L(c).outputData.source[0].tP" (and that's even weirder as why is it > > 'tP' > > > rather than 'nc'?!) > > > > > > > > > I guess the questions I have are: > > > > > > 1) Is there a way to prevent the Google closure compiler from > > > minifying a particular property name/string? > > > or > > > 2) Are we going to have to just declare classes for all of these and > > > do a typecast e.g. along the lines of: > > > class ResultCode { [Bindable]public var RESULT_CODE; } and then var > > > resultCodeObj : ResultCode = results[i].outputArray.source[0]; var > > > resultCode : String = resultCodeObj.RESULT_CODE; > > > > > > > > > thanks > > > > > > Andrew > > > > > > > > > -- > > > Carlos Rovira > > > https://clicktime.symantec.com/3R6MVFpF7GfH9MBneA8xfU97Vc?u=http%3A%2F > > > %2Fabout.me%2Fcarlosrovira > > > > > > > > > > > > > > > > > -- > > Piotr Zarzycki > > Patreon: *https://www.patreon.com/piotrzarzycki > <https://www.patreon.com/piotrzarzycki>* > -- Carlos Rovira http://about.me/carlosrovira