
Код:
package {
import flash.display.*;
import flash.utils.*;
import flash.net.registerClassAlias;
dynamic public class Test extends Sprite
{
public function Test() {
var user:UserInfo = new UserInfo();
user.name = "David";
user.email = "david@david.com";
user.page = new HomePage();
user.page.title = "David";
user.page.url= "david.com";
registerClassAlias("u", UserInfo);
registerClassAlias("p", HomePage);
trace("user class name:",getQualifiedClassName(user));
trace("user.page class name:",getQualifiedClassName(user.page));
var user2:UserInfo = clone(user) as UserInfo;
trace("user2 class name:",getQualifiedClassName(user2));
trace("user2.page class name:",getQualifiedClassName(user2.page));
}
private function clone(source:Object):* {
var copier:ByteArray = new ByteArray();
copier.writeObject(source);
copier.position = 0;
return (copier.readObject());
}
}
}
class UserInfo {
internal var name:String;
internal var email:String;
internal var page:HomePage;
public function UserInfo() {
}
}
class HomePage {
internal var url:String;
internal var title:String;
public function HomePage() {
}
}
user class name: ::UserInfo
user.page class name: ::HomePage
user2 class name: ::UserInfo
user2.page class name: null