書き物

技術とか作った物の話とか愚痴文句感想など

グラフィック関連のオブジェクトをコピーできない。

というより、コピーできないに違いありません。

BitmapならBitmapDataからサクサクいくつも作れるのですが、Spriteのように子を持つコンテナについては簡単にコピーできないっぽいです。それ以前にコンテナじゃないShape自体コピーする方法が分かりませんので、話になりません。

こうなったら自作のFrameクラスに、登録するオブジェクトをShapeは無視してBitmapだけ登録するという仕様で話を進めて、アニメーションデータとグラフィックを同時に複製できる機能でも付けてみましょうか。

# 追記

これ、冷静に考えてみればもっと簡単に複製できました。

Spriteを複製する際、子となるDisplayObjectを再度addChildしなければ複製することは出来ないということでしたら、別にSprite自体に自身をコピーする機能なんて必要ありませんでした。単にSpriteを拡張したSpriteExなるクラスでも作って、複製する際にSpriteExをnewすれば良かったんですね...。再度addChildする際の処理を削減できないか...というのが今回のそもそもの悩みだったので、「複製するにはaddChildは必須」ということが割り切れれば、複製すること自体非常に簡単な作業でした...。

同様に、Frameクラスも、Spriteを拡張して作り直せば、例えば敵グラフィックを複製する場合もFrameクラスを拡張してEnemyFrameとでもしてこのクラス内でグラフィックの生成やアニメーションデータの登録をしてやれば、EnemyFrameをnewするだけでアニメーションデータもグラフィックもいとも簡単に複製できたと...。

なんだかくだらないことで悩まされてしまったなぁ。