package {
import flash.display.Sprite;
import flash.net.*;
import flash.utils.ByteArray;
public class CustomTypeExample extends Sprite {
public function CustomTypeExample() {
registerClassAlias("ExampleType", ExampleType);
var example1:ExampleType = new ExampleType(1, 2);
var byteArray:ByteArray = new ByteArray();
byteArray.writeObject(example1);
byteArray.position = 0;
var example2:ExampleType = byteArray.readObject() as ExampleType;
trace(example2.getA());
trace(example2.getB());
}
}
}
class ExampleType implements flash.utils.IExternalizable {
private var _a:Number;
private var _b:Number;
public function ExampleType(a:Number = -1, b:Number = -1) {
if(a != -1) {
_a = a;
}
if(b != -1) {
_b = b;
}
}
public function getA():Number {
return _a;
}
public function getB():Number {
return _b;
}
public function writeExternal(output:flash.utils.IDataOutput):void {
output.writeFloat(_a);
output.writeFloat(_b);
}
public function readExternal(input:flash.utils.IDataInput):void {
_a = input.readFloat();
_b = input.readFloat();
}
}