LoaderContext/ApplicationDomainの使い方を自分なりにメモ


未だによく分かってないのでメモ。

swfが親子になっていて、それらのクラスを共有させたい場合、これを使わないと、エラーが出て何が何だか分からなくなる。あと、音ファイルだけ別にしてgetDefinitionByNameする時とか。

基本は親と子で同じクラスを使いたいと思うので、親が子を読む際に自分と同じApplicationDomainに読み込む。

var context:LoaderContext = new LoaderContext();
context.applicationDomain = ApplicationDomain.currentDomain;
loader.load(path, context);

通常はApplicationDomain.currentDomainを使っていれば問題ないみたいなんですが、子供同士でバッティングしてしまうクラスがあると面倒なことになる様子。

この場合は

context.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);

として子供のcontextを逐次変更すれば、子供同士のクラスはバッティングしなくなりながらも、子供は親と共通のクラスを使える。はず。

何でもApplicationDomain.currentDomainにすればいいってもんでもないんですね。

loaderInfoからapplicationDomainを取る方法もあるみたいですが、勉強不足。

参考

そろそろTweensyを覚えたい。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です