在flash开发的时候,我们常常希望能够把trace信息显示在舞台上,以便于调试。特别是做网络游戏或网络应用时,经常有这样的需求。
如下是我用as3写的MyTrace类。为了尽量保持轻量级,文本显示我用的是TextField。为了便于使用,可视内容都是用代码搞定的。
功能:
- 添加trace信息,参数跟使用trace一样;
- 清除所以信息;
- 行号;
- 总是保持在最上层;
- 文本内容总是滚动到最下面;
- 重设文本框大小;
打算添加的功能:
- 鼠标拖动调整文本框大小;
- 保存trace信息为文本文件;
MyTrace类
package
{
import flash.display.DisplayObjectContainer;
import flash.display.Sprite;
import flash.events.Event;
import flash.text.TextField;
import flash.display.DisplayObject;
import flash.display.Graphics;
import flash.display.Shape;
import flash.events.MouseEvent;
//import fl.controls.TextArea;
//import mx.controls.TextArea;
/**
* ...
* @author ycy 09,19,2008
*/
public class MyTrace extends Sprite
{
private var num:uint;
private var child:Sprite = new Sprite();
private var size:Number = 10;
private var bgColor:uint = 0xFFCC00;
private var borderColor:uint = 0x666666;
private var borderSize:uint = 0;
private var traceTxt:TextField = new TextField();
public function MyTrace(w:Number = 100,h:Number=200 ) {
traceTxt.width = w;
traceTxt.height = h;
traceTxt.y = size;
traceTxt.border = true;
traceTxt.background = true;
drawCircle();
addChild(traceTxt);
}
public function add(...args):void {
num++;
var str:String = num+":";
for (var i = 0; i < args.length; i++) {
str += args[i];
}
str += "\n";
traceTxt.appendText(str);
scrollText();
getToTop();
}
public function clear():void {
traceTxt.text = "";
}
public function reSize(w:Number, h:Number):void {
traceTxt.width = w;
traceTxt.height = h;
}
private function getToTop():void {
var o:DisplayObjectContainer = this.root as DisplayObjectContainer;
if (o.numChildren - 1 > o.getChildIndex(this)) {
o.setChildIndex(this, o.numChildren - 1);
}
}
private function drawCircle():void {
var halfSize:uint = Math.round(size / 2);
child.graphics.beginFill(bgColor);
child.graphics.lineStyle(borderSize, borderColor);
child.graphics.drawCircle(halfSize, halfSize, halfSize);
child.graphics.endFill();
addChild(child);
child.addEventListener(MouseEvent.CLICK, clickHandle);
child.buttonMode = true;
child.useHandCursor = true;
}
private function clickHandle(e:Event):void {
add("click");
traceTxt.visible = !(traceTxt.visible);
}
private function scrollText():void {
traceTxt.scrollV = traceTxt.maxScrollV;
}
}
}
使用方法:
var myTrace:MyTrace=new MyTrace();
addChild(myTrace);
for(var i=0;i<20;i++){
myTrace.add(" just ","a test");
}
分享到:
相关推荐
mytrace linux traceroute
void mytrace(CString,int); void mytrace(CString,long); void mytrace(CString,double); void mytrace(CString,int,CString,double); void mytrace(CString,int,CString,int,CString,double); void mytrace...
rpm -ivh glibc-utils-2.9-2.i386 ...[root@zzt]$export MALLOC_TRACE=mytrace.log [root@zzt]$ gcc testmtrace.c -o testmtrace [root@zzt]$./testmtrace [root@zzt]$ mtrace testmtrace mytrace.log
`MyTrace`可能是一个基础的日志类,提供了基本的日志输出功能,而`MyBufferTrace`可能是一个增强版,支持缓冲区日志,避免频繁的小规模写入操作影响性能。 3. `SSTrace.cpp`:这个文件可能包含了一些与日志输出相关...
将MyTrace文件夹移动到您选择的位置,例如Documents文件夹 当您将来要更新跟踪时,请用新文件夹替换该MyTrace文件夹。 如果移动此文件夹,扩展名设置将被重置,因此请确保在创建备份之前进行备
myTrace(\"Loaded xml, and processing it into an array...\"); for (x = 0; x ; x++) { arrayLink.push(_loc1.pathPrefix + navDoc.firstChild.childNodes[x].attributes.LOCATION); arrayPercent.push...
public class MyTrace extends MapActivity { private MapView mMapView; private List<GeoPoint> mPoints = new ArrayList(); private ItemizedOverlay<OverlayItem> mOverlay; @Override protected void ...
$ export MALLOC_TRACE=mytrace.log $ ./testmtrace ``` 最后,使用`mtrace`分析日志: ```bash $ mtrace testmtrace mytrace.log ``` 分析结果可能会显示类似"Memory not freed"的部分,列出那些在程序结束时仍...
实时追踪可以通过ALTER SESSION SET事件命令开启,例如`ALTER SESSION SET TRACEFILE_IDENTIFIER = 'mytrace';`然后执行目标SQL语句。历史追踪则可以通过DBA视图如V$SESSION_LONGOPS或AWR报告查看。 3. **追踪信息*...
exec @rc = sp_trace_create @TraceID output, 2, N'C:\MyTrace\MyTrace.trc', @maxfilesize, @DateTime, @filecount if (@rc != 0) goto error ``` 接着,通过`sp_trace_setevent`设置需要捕获的事件。例如,以下...
export MALLOC_TRACE=mytrace.log ``` 3. **编译并运行程序**: ```bash gcc testmtrace.c -o testmtrace ./testmtrace ``` 4. **分析日志文件**: ```bash mtrace testmtrace mytrace.log ``` 如果...
轨迹预测 ...| |-- mytrace.py | `-- v3TP.py |-- __main__.py |-- pywrenRunner.py |-- README.md |-- test-dataclay.py |-- test-file.py |-- python | `-- v3 | |-- data2 | | |-- 0.txt | | ... | |--
Log.e("MYTRACE", "---->" + ste[i].toString()); } } ``` 这里需要注意的是,`4`作为循环的起始值,意味着忽略了前四个栈帧的信息。通常情况下,前几个栈帧可能包含的是打印堆栈方法本身及调用它的方法的信息,...