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>*