スポンサーサイト

--. . --
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

トレース

2009. . 09
(ソースをASから弄る人用ですが、参考までに見ておいても問題ありません)

譜面を流しているとき、途中でおかしくなった。
そんなとき、ソースのどこを見ればいいかわからないときがあります。

そのときに使うのが「trace(トレース)」です。

ParaFla!では、プレビュー時にこのトレースを使って、
変数が今どうなっているかを確認できます。


> ありがちなこと

_root.arr = [1,2,3,4,5]; と入っていて、
_root.arr[8] を指定したとき。

 swf6 → 0
 swf7/8 → undefined

swf6では定義していない場合、0で初期化されます。
swf7/8ではundefined。つまり数字ではありません。

なので、次のようなことをした場合におかしなことが起きます。

 swf6 → _root.arr[8]+4 = 0+4 = 4
 swf7/8 → _root.arr[8]+4 = undefined+4 = undefined4 ?



Dan★Oniで矢印表示上の問題が起きた時は
こんなこともあるので、チェック代わりに。

追記に続きます。
トレースで調べる変数
(気が付いたら追加するかも)

> トレースの書き方

調べたい箇所で trace(_root.set_spi); のように書く。
プレビューをメインから実行し、「プレビュー」→「トレースウィンドウを表示」で
トレースした変数が表示されていく。


○ 矢印の表示がおかしくなった
▲ _root.initY
 ∟ 矢印の移動距離。これがNaNになっているとまずい。
   トレースする場所は「譜面台」の矢印が出現するif文の中。
   trace(_root.initY[frame_num]); みたいに使う。

NaNだったら次にトレースするもの
・ _root.mot_array
  ∟ Sp.Motionで余計に移動する分量が書いてある。フレームごと。これもNaNだとまずい。
     → 矢印がソースの予想より低速なので、_root.mot_limit の値を大きくしてみる

・ _root.speedTmp
  ∟ 毎フレーム矢印がどれくらい進むかが書いてある。
     これは「譜面計算」AS内でチェックする必要がある(途中で消されるため)。
     delete _root.speedTmp; より前でトレース。
     → _root.framelimit (フレーム数の上限) の値を大きくしてみるなど

○ フリーズアローバーが表示されない

→ オプション:Shadowの場合は仕様。
→ フリーズアローバーが黒(0x000000)に設定されていないか?


○ フリーズアローバーの長さがおかしい

▲ _root.frzLength
 ∟ フリーズアローのバーの長さが入っている。
    偶奇でセットで、一方がundefinedなのは仕様。どちらもundefinedはまずい。
    「譜面台」の一番上らへんでトレース。

○ 矢印 / フリーズアローが表示されない

▲ _root.mkArrow / _root.mkFArrow
 ∟ 各フレームでどの矢印を出すかが入っている。0~10まで。
    矢印数に比例してかなり多い。
    「譜面台」の一番上らへんでトレース。
スポンサーサイト

comment

post comment

  • comment
  • secret
  • 管理者にだけ表示を許可する

trackback

trackbackURL:http://alprime.blog91.fc2.com/tb.php/118-29880e47
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。