Just a fyi about what I am working on.... I am currently working on AMFBinaryData updates to support:
IExternalizable dynamic class instances I expect to also support IDynamicPropertyWriter And refactoring the AMFBinaryData class to be a subclass of BinaryData (this part is done) and have an api that mirrors the IDataInput/IDataOutput in flash. IDataInput and IDataOutput extend the IBinaryDataInput and IBinaryDataOutput counterparts. The only inconsistencies at this point for those ByteArraylike interfaces will be the missing implementation of multibyte string support in javascript and support for AMF0. I think both of these are low priority. But maybe they could be addressed in the future if there is need. There is one 'breaking' change that was required in BinaryData with these changes. I had to change the writeBytes/readBytes method signatures. The original method signature is still available but will become writeBinaryData/readBinaryData Aside from the addition of the one extra method here, the changes to BinaryData are very 'light' I will check the rest of the framework and make those changes if they are necessary anywhere. But this would be a simple search and replace fix for code that relies on the current implementation for anything outside the framework. This change is to permit the writeBytes/readBytes methods to work with the native bytes array classes (so: ByteArray in flash and ArrayBuffer in js, and that means that the interface remains compatible with the original flash interface on swf) Along with these updates, the AMFNetConnection class will be updated to use the new AMFBinaryData api. The main part of the above is basically already done locally, but I am still working on the first two parts. I've kept AMFBinaryData in the network lib for now, but I think it probably belongs in core, and just AMFNetConnection could use it in Network lib... something maybe to consider for later. So the cloning support via AMFBinaryData will become pretty much the same as flash ByteArray: myamfData.writeObject(myRoyalObject); myamfData.position=0; var copy:MyRoyaleObject = myamfData.readObject() as MyRoyaleObject; For the reflection updates, they are corequisite for some of the AMF updates. There is a fix for some issues that were introduced a few months back that broke the lazy evaulation of the getters in TypeDefinition. There's also a fix for another error exposed by the recent numeric coercion updates that Josh added to the compiler (which is great). There will be new reflection utility methods to detect if an object is dynamic and to get its dynamic fields (separate to sealed properties). These can probably be reused in some of the mx code. Some of these may need tuning and improvements over time. The UnitTests manual test project will become functional again, with new tests for some of the new functionality/classes. (I am using it to test between swf and js as I work on things). Anyway, I hope to have changes in the next few days. Thought I would let you know in advance...
