ByteArrays for object serialization issue

funky behaviour, copying straight from documentation in CS3 flash and adding a subclass of Sprite for serialization (really want to use this agnostic of what type of object is being serialized)::

The problem is serialization is failing for extended classes…


 
 
package {
 import flash.net.registerClassAlias;
 import flash.utils.ByteArray;
 import flash.display.MovieClip;
 import flash.utils.*;
 
 
 public dynamic class serializeClassError extends MovieClip {
  public function serializeClassError() {
   registerClassAlias("com.example.eg", ExampleClass);
            var eg1:ExampleClass = new ExampleClass();
            var ba:ByteArray = new ByteArray();
            ba.writeObject(eg1);
            ba.position = 0;
            var eg2:* = ba.readObject();
            trace(eg2 is ExampleClass); //should be true...
  }
 }
 
}
 
 
 
import flash.display.Sprite;
class ExampleClass extends Sprite{ //when this Extends Sprite errors are thrown...
 public function ExampleClass() {
  trace('instance');
 } 
 
 public function junction() {
  trace('junction'); 
 } 
 
}
 

Errors returned:

TypeError: Error #1034: Type Coercion failed: cannot convert Object@aa11471 to flash.media.SoundTransform.
TypeError: Error #1034: Type Coercion failed: cannot convert Object@aa116a1 to flash.geom.Transform.