我的js类jdhcn.js中的一个flashDebug方法:
功能:
flash的调用些方法能在网页中看到flash的trace方法输出的数据;
方法:
1. init(w,h,z);//w为显示界面的宽度,h为显示界面的高,z为层级(最好放在最顶层);<此方法可以省略>
2. trace(str);//要输出的数据。
使用:
1. 把jdhcn.js导入,点击下载jdhcn.js。
2. 在body里可以重写一个函数(也可以不写)。
程序代码:
以下为引用的内容:
<script language="javascript">
function trace(str){
g.flashDebug.trace(str);
}
</script>
3. 在flash里写一个全局静态方法,在调试的时候就把trace方法替换为global.traceStr就行了:
程序代码:
以下为引用的内容:
public class global{
import flash.external.ExternalInterface;
public static function traceStr(str:String):void {
trace(str);//在flash环境下输出调试信息;
if(ExternalInterface.available){
ExternalInterface.call("trace", str);//在网页下输出调试信息;
}
}
}
以下是例子:
因为这是新窗口弹出看效果,所以就把jdhcn.js文件里的内容般到html里来了。执行trace("测试jdhcn.flashDebug")来模拟是通过flash方法调用的。
HTML代码:
以下为引用的内容:
<head>
<title>测试jdhcn.flashDebug</title>
</head>
<body>
<script language="javascript"> var g=new Jdhcn();function Jdhcn(){};Jdhcn.prototype.flashDebug = new FD();g.flashDebug.init();function FD(){var btnObj;var conObj;FD.prototype.init = function(w,h,z){if(!w) {w = 500};if(!h) {h = 600};if(!z) {z = 100};var str = ’<div style="width:’+ w +’px; float:right; border:1px solid #0;
background:#fff; position:absolute; right:5px; top:5px; z-index:’+ z +’;">’;str += ’<div><input id="debugShowBtn" type="button" onClick="g.flashDebug.show();" value="显示Debug"> <input type="button" onClick="g.flashDebug.clearAll();" value="清除Debug内容"> </div>’;str += ’<textarea id="debugContent" cols="" rows="" wrap="off" style="width:100%; height:’+ h +’px;
display:none"></textarea></div>’;document.write(str);btnObj = document.getElementById("debugShowBtn");conObj = document.getElementById("debugContent");g.flashDebug.show();};FD.prototype.show = function(){if(btnObj.value == "显示Debug"){conObj.style.display = "block";btnObj.value = "隐藏Debug";}else{conObj.style.display = "none";btnObj.value = "显示Debug";}};FD.prototype.clearAll = function(){conObj.value = "";};FD.prototype.trace = function(str){conObj.value += str + "\n";conObj.scrollTop = conObj.scrollHeight;};} trace("测试jdhcn.flashDebug"); function trace(str){ g.flashDebug.trace(str); }
</script> <body>