- 2008-12-18 (木) 16:46
- Flash | Progression
こんな生意気なことを言えばtaka:nium様に怒られるかもしれないが、ちょっと先日困ったことが発生したのでアップ。
非常に便利なのでなにかとシンボルを作るときもCastMovieClipを継承したMovieClipを作成しているわけなんですが、先日DataGridのCellRendererのスキンをいじくりたいことがあって、それらもCastMovieClip継承のクラスを作って入れ込んでみた。
そしたら、どうにもこうにも動きがもっさりしている・・・
僕のソースがきっと悪いんだと思って、あれやこれやをコメントアウトしてみるがどうにも改善しない。
それで単純にリンケージの基本クラスだけを変更してみたものでテスト。
- 基本クラス:flash.display.MovieClip
- 基本クラス:jp.progression.casts.CastMovieClip
- 基本クラス:jp.nium.display.ExMovieClip
この3種類を作ってテスト。
Google Chromeのタスクマネージャで確認してみる
そうすると、CastMovieClip・ExMovieClipを継承したほうでは、DataGrid内でマウスを動かしたりスクロールさせたりすると、メモリが増える増える!
普通にMovieClip継承でも増えるんやけど、増え方が尋常じゃない・・・
カラム数が増えると当たり前だけど増え幅も増大する。。
そして一度上がったものは減ってくれない・・・・
もうちょい単純なソースで検証してみる。
ただただENTER_FRAMEで追加削除を繰り返すのみのクラスを作って検証。
生成するものをCastMovieClipかMovieClipかを切り替えて書き出してみる。
package { import flash.display.MovieClip; import flash.display.Sprite; import flash.events.Event; import jp.progression.casts.CastDocument; import jp.progression.casts.CastMovieClip; import jp.progression.Progression; public class AddCastIndex extends CastDocument { public var prog:Progression; public function AddCastIndex() { } protected override function _onInit():void { prog = new Progression( "index", stage ); prog.root.onInit = function():void { var cast:CastMovieClip; var ny:Number = 0; var container:Sprite = new Sprite(); var enterFrame:Function = function( e:Event ):void { if ( cast ) { container.removeChild( cast ); } cast = new CastMovieClip(); cast.graphics.beginFill( 0 ); cast.graphics.drawRect( 0, 0, stageWidth, 20 ); ny = ( ny + 20 ) % stageHeight; cast.y = ny; container.addChild( cast ); } prog.container.addChild( container ); container.addEventListener( Event.ENTER_FRAME, enterFrame ); } prog.goto( prog.firstSceneId ); } } }<
ENTER_FRAME時に一個しか生成しないので、微妙な差だけど、やっぱりCastMovieClipのほうが増加率は高い。
中をまさぐって検証するには敷居が高すぎるのでやめておこう・・・
でもCastMovieClipを使わないなんてもうできない体になっちゃって、そんな世界僕の中にはもうないけど、こういう使い捨てで済むMovieClipやSpriteはCast(Ex)系を継承せずに単純にMovieClipやSpriteを継承するほうがよさそう。
ってゆうのであってるのかな??
- Newer: 基本クラスの変更で警告
- Older: ProcessEvent イベントフローについて(2)
Comments:0
Trackbacks:1
- Trackback URL for this entry
- http://blog.cuegraphix.com/wp-trackback.php?p=43
- Listed below are links to weblogs that reference
- CastMovieClipを多用しすぎるのも危険? from blog.cuegraphix.com
- pingback from blog.progression.jp» ブログアーカイブ » [お知らせ] 今週の Progression 関連エントリー(2008/12/13 ~ 2008/12/19) 08-12-20 (土) 11:37
-
[...] blog.cuegraphix.com / CastMovieClipを多用しすぎるのも危険? [...]