LoginSignup
2
2

More than 5 years have passed since last update.

cocos2d-html5 で spy-js を使ってみる

Last updated at Posted at 2014-09-20

phpstorm8 や webstorm8 で spy-js が使えるようになったらしいので試しに cocos2d-js のサンプルで使ってみる.ココで使ってるのは Cocos2d-JS html5 engine の部分.

起動するまで

Intellij IDEA で git のリポジトリからプロジェクト作る機能を使うか下記のように手動で取ってきて Open する.

$ git clone git://github.com/cocos2d/cocos2d-js.git --recursive

起動するまではここらへんと同じ.

Chrome などで開くときは,サンプルは samples/js-moonwarriors などにあるのでこの index.html を開く.

起動すると下記のような感じで使うことが出来る.

4f4f6639.png

Tracking Exclusion

イベントスタックが多い問題の対応

使ってみるとわかると思うが cocos2d-js で spy-js を使うとイベントの詳細を見ようとしても基本的に cocos2d-js で使われているファイルがイベントスタックに表示されるため,自分がコーディングした部分を見つけるのが大変だったりする.

936d1b99.png

そこで spy-js はTracking Exclusionで不要なイベントやファイルをフィルタすることが出来る. Exclude したものはそれ以下のものが全て表示されなくなるのではなく対象ファイルだけ表示されなくなるのでライブラリとかをトレースに表示する必要がないならライブラリごとフィルタしてしまってよさそう.

たとえばこのように設定すると

6675e613.png

さっきの大量のトレースが減る.

d67872c9.png

イベントが貯まって消えてしまう問題の対応

また external や devicemotion などのイベントが大量に発行されてみたいイベントが見つけにくくなる.さらに一度に表示されるイベントは 1000 件程度で特定のイベントのトレース見てても 1000 件消えた時点で消えてしまう.消えてしまうとトレースもできなくなるのでとても面倒.

8084181a.png

なのでほしいイベントがとれたら全部除外するフィルタを設定するとよさそう.

feb70d11.png

その他

  • ちなみに socket.io のイベントも見られるので サーバクライアントで socket.io 使ってる場合は追跡めっちゃ楽になる.
  • node.js をサーバ側のアプリとして使っててそちらでも spy-js を使ってる場合,このフィルタ選択は共有されてしまい,クライアントとサーバでそれぞれ別のフィルタを使えない.同時に使う場合はうまくしないとほしいイベントも消えてしまうかも.
  • バグっぽいが ”Remove All” を使って消すとその後のイベントが全くキャッチされなくなる.されなくなったらブラウザで開いてるページを再読み込みするとまた表示される. screenshot 2014-09-20 10.46.18.png
  • フィルタ出来るのはイベント単位またはファイル単位となっている様子.なので同じファイル内で同じイベントの処理をいろいろ追加してる場合はファイルを分けるという対応をすることで対応はできる.うまく検索する機能がほしい場合はこのチケット に vote しよう.

参考文献

Spy-js: WebStorm secret service | JetBrains WebStorm Blog
http://blog.jetbrains.com/webstorm/2014/04/spy-js-webstorm-secret-service/#settings

WebStorm+Spy-jsの使い方 - Qiita
http://qiita.com/laco0416/items/985044f0019ebef6cb2c

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2