gpt4 book ai didi

actionscript-3 - 在 AS3 中创建自定义 trace() 类

转载 作者:行者123 更新时间:2023-12-04 04:31:01 25 4
gpt4 key购买 nike

我有了扩展我的 trace() 消息的想法。

为什么

trace() 遍布我的代码,我想通过一个简单的命令打开/关闭它们,并可能向 trace() 添加某种优先级功能,即

myTrace.TraceMsg("loosehere",debugme, 0);
myTrace.TraceMsg("winhere",debugme, 1);

当我运行时,只有具有更高优先级的那个,在这种情况下为“1”,显示。

我还想添加更多功能,例如将消息记录到文件等。

问题

跟踪()如何工作? - 是否有可能以某种方式重载trace()? - 我将如何实现自定义 TraceMsg(这里有什么代码?)方法?

在我们最喜欢的搜索引擎上查找有关此主题的信息时遇到一些严重问题,因此将不胜感激。

最佳答案

我想出了一种相当有效但乏味的方法来在仅限 Flash 的项目中使用我自己的 trace() 函数,但只需使用

trace("this", "that", "and that too");

我基本上在项目的每个类中都实现了一个 trace() 方法,它调用一个公共(public)函数(这样我就可以从那里调用真正的 trace() 函数。

这就是我所做的:在每节课上我都称之为
include "trace_implementation.as";

.as 文件中有一个简单的方法实现(也可以是静态方法)。
public function trace(... arguments){
for(var i in arguments){
myTrace(arguments[i]);
}
}

并且 myTrace 函数在其自己的 myTrace.as 文件中定义
package pt.utils{
import flash.external.ExternalInterface

public function myTrace(_s:String):void{
trace(_s);// this will call the original flash trace() function
ExternalInterface.call("console.log", _s);// to get traces outside of flash IDE
/*implement what you want here*/
}
}

所以现在当我用“省略跟踪操作”编译时,我的整个调试都被忽略了,就像我简单地使用了 trace() 一样。

这里真正好的部分是您可以根据您在跟踪中提供的指令实现自定义操作,因此:
trace(Debug.DEBUG_MESSAGE, "message to output in debug");
trace(Profile.START_PROFILING, this, 'name');
/*do heavy code*/
trace(Profile.STOP_PROFILING, this);

然后从 myTrace 或 Tracer 类或任何东西发送它:)

希望这有助于 future 的示踪剂。

关于actionscript-3 - 在 AS3 中创建自定义 trace() 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/715738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com