我想知道是否有一种简单的方法,我有一个片段,在调用时跟踪方法的名称。我发现className
是中途的,但不是该方法的东西...我想要的是1行trace(...)
所以我避免键入方法名称并让自己开放错误。
这是为了测试顺序发生的事情,当我不想在调试器中单步执行时。
答案 0 :(得分:3)
如果您已使用调试信息编译swf并使用播放器的调试版本,则可以查看getStackTrace对象中的Error属性:
快速举例:
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);
答案 1 :(得分:0)
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.