ホーム > Progression > Progression SWF Profiler デバック やってみた

Progression SWF Profiler デバック やってみた

2009 年 4 月 22 日 コメントをどうぞ コメント
Progressionのindex.asでSWF Profilerを以下のように書き込んで使ってやるとうまくいかなかったのでどうにかならないかやってみた。

SWFProfiler.init(stage, this);


原因はおそらく
  1. Progressionのオブジェクトが右クリックの対象の場合、Progressionの自分で作ったコンテキストメニューにうまく追加ができない(自分の力不足)
  2. SWFProfiler.init(stage, this);のthisでのProgressionオブジェクトの登録がよろしくない。
  3. コンテキストメニューを登録したProgression以外のオブジェクトより上にProgressionオブジェクトの設置


1の方法でSWF Profilerのコンテキストメニューの参照を Progressionのコンテキストメニューにいれてやろうかと思ったけど、CastMovieClip.contextMenu できるかなとおもったけどできなかったので保留。
Progressionでコンテキストメニュー追加はどうやるのかと、別の疑問が。。

var menu_item:ContextMenuItem = new ContextMenuItem("Test",false,true,true);
var menu_cm:ContextMenu = new ContextMenu ();
menu_cm.customItems = [menu_item];
CastMovieClip.contextMenu = menu_cm;//ここおかしいだろ


2の方法は、Progressionオブジェクトを SWF Profiler に渡すとうまくいかない。SWF Profilerの中身をのぞいてみると第2引数の

(swf : Stage, context : InteractiveObject)


と記述されておりProgressionのオブジェクトの参照がうまくいかなそうな予感がしなくもない。

3の方法は、上にあるので上にある方を参照してしまうだろうのでいい。



で解決案として、SWF Profiler用のオブジェクトを作成し、そいつに割り当ててやればいいんじゃないかと思います。

// SWF Profiler用のスプライト
var shape:Sprite = new Sprite();
stage.addChild(shape);
shape.graphics.beginFill ( 0xFF9999 , 0.8 );
shape.graphics.drawRect(0,0,200,200);
shape.graphics.endFill();
//shapeのコンテキストメニューにSWFProfilerを登録してやる。
SWFProfiler.init(stage, shape);



Bookmark and Share

関連する投稿