Flash 跟踪运行函数的内容
私有函数dataLevel():void{ }仅将变量命名为事件不会使其成为Flash 跟踪运行函数的内容,flash,actionscript-3,Flash,Actionscript 3,私有函数dataLevel():void{ }仅将变量命名为事件不会使其成为事件对象(并为其指定目标属性)。使用跟踪(事件)跟踪传递的参数。更好的是,将变量名更改为arg1(argument1)或更合理的名称 private function createBranch(arg1:Object):void { trace(arg1); } event通常用于事件处理程序中类型为event的变量或其子类。听起来您基本上是在尝试沿着堆栈跟踪线获取某些内容。您可以在运行时从ErrorExce
事件
对象(并为其指定目标属性)。使用跟踪(事件)
跟踪传递的参数。更好的是,将变量名更改为arg1(argument1)或更合理的名称
private function createBranch(arg1:Object):void
{
trace(arg1);
}
event
通常用于事件处理程序中类型为event
的变量或其子类。听起来您基本上是在尝试沿着堆栈跟踪线获取某些内容。您可以在运行时从ErrorException类获取堆栈跟踪的字符串表示,但只能在FlashPlayer的调试模式下
现在,这只适用于播放器的调试版本,在标准版本中,“getStackTrace()”返回null,因此这不适用于任何生产应用程序
唯一的另一种选择是将令牌传递到“createBranch”以指示调用来自何处(我认为这也将确定您正在创建的“分支”的类型?),这将是一种更好的方法,可以让您的逻辑更清晰,我认为:
private function createBranch(arg1:Object, branchType:String):void
{
switch(branchType){
case "type1":
//create your branch type1 here
break;
case "type2":
//create your branch type2 here
break;
case "type3":
//create your branch type3 here
break;
}
}
类似这样的情况。您可以看到,我有3个条件运行createBranch();在createBranch函数中,我想知道它是由哪一个函数运行的
private function createBranch(arg1:Object):void
{
var stacktrace:String = new Error().getStackTrace();
//parse 'stacktrace' and do what you want here.
}
private function createBranch(arg1:Object, branchType:String):void
{
switch(branchType){
case "type1":
//create your branch type1 here
break;
case "type2":
//create your branch type2 here
break;
case "type3":
//create your branch type3 here
break;
}
}