私は、呼び出されたときにメソッドの名前をトレースするスニペットを持っているかどうかを疑問に思いました。私はclassName
を見つけましたが、途中にありますが、メソッドのためのものではありません... 1行trace(...)
は私が後にしているので、メソッド名の入力を避けて自分自身を間違えたままにしておきます。 これは、私がデバッガでステップスルーしたくないときに起こる注文をテストするためのものです。AS3で現在のクラスとメソッドの名前を取得
答えて
デバッグ情報を使用してSWFをコンパイルし、あなたがErrorオブジェクトからgetStackTraceプロパティを見てみることができますプレイヤーのデバッグバージョンを使用している場合:
クイック例:
public function getCallingInfos():Object{
var tmp:Array=new Error().getStackTrace().split("\n");
tmp=tmp[2].split(" ");
tmp=tmp[1].split("/");
return {namespaceAndClass:tmp[0], method:tmp[1]};
}
var infos:Object=getCallingInfos();
trace(infos.namespaceAndClass, infos.method);
リリース版ではどうなりますか? 'trace'は消えますか?あなたのメソッドは何も返さないでしょうか? –
このサンプルメソッドは、リリース1ではなくデバッグ環境で使用されます。トレースの場合は、トレースオプションを省略するか、条件付きコンパイルを検索してデバッグモードで表示されるコードを検索しない限り、トレースは消えません。リリースではありません。 – Patrick
プロダクション環境で問題が発生した場合でもエラーを追跡できるようにするには、Loggerクラスを使用し、ASコードではなく構成によってデバッグレベルを設定することを検討してください。 AS3のコモンズにロギングフレームワークがあります:http://code.google.com/p/as-commons/しかし、これまで私は自分のシンプルなLoggerクラスを書いており、かなり十分であることがわかりました。 – weltraumpirat
public static function getCurrentClassName(c:Object):String
{
var cString:String = c.toString();
var cSplittedFirst:Array = cString.split('[object ');
var cFirstString:String = String(cSplittedFirst[1]);
var cSplittedLast:Array = cFirstString.split(']');
var cName:String = cSplittedLast.join('');
return cName;
}
特定のクラスが構築されているかどうかを確認するために使用されます。
使い方(ここで私はメインクラスのコードを入れて):
trace('[DEBUG]: '+ClassData.getCurrentClassName(this)+' constructed.');
トレースリターン:
[DEBUG]: Main constructed.
それは必ずしも悪い解決策ではありませんが、あなたのクラスに実装されていない 'toString()'関数に依存しています – divillysausages
- 1. 静的メソッドで現在のクラスの名前を取得するには?
- 2. 現在実行中のメソッドの名前を取得
- 3. 現在のユーザーの名前を取得
- 4. 現在のネットワークの名前を取得
- 5. 現在のクラスの名前を取得しますか?
- 6. AS3のクラス名でインスタンスを取得
- 7. ロガーの現在の名前空間、クラス名、メソッド名の取得を最適化する方法
- 8. 次のdivを現在のクラス名と同じクラス名で取得する
- 9. 現在のスレッドが生成されたクラスとメソッドの名前を取得できますか?
- 10. dotnetコアで現在実行中のメソッドの名前を取得します。
- 11. Delphi 7で現在のメソッドの名前を取得する方法は?
- 12. アクティビティワークフローの現在と前のタスク名を取得する方法
- 13. スニペットで現在の名前空間を取得
- 14. ZF2抽象クラスで現在のモジュール名を取得
- 15. UIPanGestureRecognizerメソッドで現在のタッチポイントと以前のタッチポイントを取得する方法は?
- 16. PHP現在のディレクトリの名前を取得
- 17. Android - 現在の壁紙の名前を取得する方法
- 18. Automapper(5.1.1)ForAllMembers - 現在のプロパティの名前を取得
- 19. コマンドラインからHerokuから現在のデータベースの名前を取得
- 20. MPD、現在のプレイリストの名前を取得する方法は?
- 21. 現在の関数の名前を取得するには?
- 22. 現在のScheduledJobの名前を取得する
- 23. C#WMI現在のオーディオデバイスの名前を取得する方法
- 24. Windowsスペシャルフォルダの現在の名前を取得
- 25. 現在のレイアウトの名前を取得する方法は?
- 26. パッケージを含む現在のクラス名を取得する
- 27. Wowzaライブストリーム - 現在のビデオの名前の取得方法
- 28. VB.netで変数名の型と現在のクラスまたはメソッドの値を取得する方法は?
- 29. 現在のアドインユーザーのユーザー名を取得
- 30. ローカルアプリケーションの現在の曲名を取得
2011-1-11-10-11に尋ねたが...それはクールだ –