Home > Flash | Progression > CastMovieClipを多用しすぎるのも危険?

CastMovieClipを多用しすぎるのも危険?

こんな生意気なことを言えばtaka:nium様に怒られるかもしれないが、ちょっと先日困ったことが発生したのでアップ。

非常に便利なのでなにかとシンボルを作るときもCastMovieClipを継承したMovieClipを作成しているわけなんですが、先日DataGridのCellRendererのスキンをいじくりたいことがあって、それらもCastMovieClip継承のクラスを作って入れ込んでみた。

そしたら、どうにもこうにも動きがもっさりしている・・・
僕のソースがきっと悪いんだと思って、あれやこれやをコメントアウトしてみるがどうにも改善しない。
それで単純にリンケージの基本クラスだけを変更してみたものでテスト。

この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を継承するほうがよさそう。

ってゆうのであってるのかな??

net.hires.debug.Stats を導入してSWF内メモリ表示に変更

Comments:0

Comment Form
Remember personal info

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を多用しすぎるのも危険? [...]

Home > Flash | Progression > CastMovieClipを多用しすぎるのも危険?

Search
Feeds
Meta

Return to page top