`
ycy303
  • 浏览: 195684 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

MyTrace组件

阅读更多

在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 路由算法

    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...

    mstrace内存泄露检测工具

    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

    VC Console日志输出

    `MyTrace`可能是一个基础的日志类,提供了基本的日志输出功能,而`MyBufferTrace`可能是一个增强版,支持缓冲区日志,避免频繁的小规模写入操作影响性能。 3. `SSTrace.cpp`:这个文件可能包含了一些与日志输出相关...

    AbsoluteDoubleTrace:用于阻止浏览器指纹识别的Web扩展

    将MyTrace文件夹移动到您选择的位置,例如Documents文件夹 当您将来要更新跟踪时,请用新文件夹替换该MyTrace文件夹。 如果移动此文件夹,扩展名设置将被重置,因此请确保在创建备份之前进行备

    豪华首页调用Flash自动变换效果(附源代码)

    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...

    android 百度地图demo 在地图上划出轨迹

    public class MyTrace extends MapActivity { private MapView mMapView; private List&lt;GeoPoint&gt; mPoints = new ArrayList(); private ItemizedOverlay&lt;OverlayItem&gt; mOverlay; @Override protected void ...

    Linux下用Mtrace来检查程序内存溢出

    $ export MALLOC_TRACE=mytrace.log $ ./testmtrace ``` 最后,使用`mtrace`分析日志: ```bash $ mtrace testmtrace mytrace.log ``` 分析结果可能会显示类似"Memory not freed"的部分,列出那些在程序结束时仍...

    追踪oracle 事件探查器

    实时追踪可以通过ALTER SESSION SET事件命令开启,例如`ALTER SESSION SET TRACEFILE_IDENTIFIER = 'mytrace';`然后执行目标SQL语句。历史追踪则可以通过DBA视图如V$SESSION_LONGOPS或AWR报告查看。 3. **追踪信息*...

    SQL SERVER Alert and Trace的综合应用

    exec @rc = sp_trace_create @TraceID output, 2, N'C:\MyTrace\MyTrace.trc', @maxfilesize, @DateTime, @filecount if (@rc != 0) goto error ``` 接着,通过`sp_trace_setevent`设置需要捕获的事件。例如,以下...

    内存溢出Linux下用Mtrace来检查程序内存溢出.pdf

    export MALLOC_TRACE=mytrace.log ``` 3. **编译并运行程序**: ```bash gcc testmtrace.c -o testmtrace ./testmtrace ``` 4. **分析日志文件**: ```bash mtrace testmtrace mytrace.log ``` 如果...

    trajectory-prediction

    轨迹预测 ...| |-- mytrace.py | `-- v3TP.py |-- __main__.py |-- pywrenRunner.py |-- README.md |-- test-dataclay.py |-- test-file.py |-- python | `-- v3 | |-- data2 | | |-- 0.txt | | ... | |--

    打印JAVA堆栈的方法

    Log.e("MYTRACE", "----&gt;" + ste[i].toString()); } } ``` 这里需要注意的是,`4`作为循环的起始值,意味着忽略了前四个栈帧的信息。通常情况下,前几个栈帧可能包含的是打印堆栈方法本身及调用它的方法的信息,...

Global site tag (gtag.js) - Google Analytics