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

Reply via email to