zoukankan      html  css  js  c++  java
  • 当在发布flex或flash应用时,不要忘记删除你的Debug代码



    当我们开发flex程序时,经常使用Firefox 插件Flash Tracer来输出调试信息。它可以让我们在运行非debug版本时,使用Firefox浏览器来查看调试信息,而且非常有用。但是可能就会泄漏了很重要的信息,让不法分子所利用,还可能影响性能,所以在发布程序时移除debug信息非常有必要。在flash中直接有相关选项移除,但在flex中找不到这样的功能。所以我们可以用以下几种折衷办法。
    1.使用替换功能,按ctrl+shift+F,查找文本输入"trace",文件名模式选择mxml和as.然后替换,弹出的窗口输入"//trace",不过这样要继续开发就得重新改回来,再用替换功能替换回来。在发行版中注释信息是被删除的。
    2.使用mx.logging包,代码如下
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="init();">
           <mx:Script>
             <![CDATA[
                import mx.logging.Log;
                import mx.logging.ILogger;
                import mx.logging.LogEventLevel;
                import mx.logging.targets.TraceTarget;
       
                private var _log:ILogger;
                private var _traceTarget:TraceTarget;
       
                private function init():void {
                       _traceTarget = new TraceTarget();
                       _traceTarget.filters=["*"];
                       _traceTarget.level = LogEventLevel.ALL;
                       _traceTarget.includeDate = false;
                       _traceTarget.includeTime = false;
                       _traceTarget.includeCategory = true;
                       _traceTarget.includeLevel = true;
                       Log.addTarget(_traceTarget);
       
                       _log = Log.getLogger("ExampleLogger");
                       _log.info("Your tracing like a pro!");
                }
             ]]>
           </mx:Script>
    </mx:Application>
    当你不需要debug信息时只要把Log.addTarget(_traceTarget);
    语句删除就行了。

    3.可以写个类继承Trace的类
    package
    {
    import flash.trace.Trace;

    public class myTrace extends Trace
    {
    public static const debug:Boolean=false;
    public function myTrace()
    {
    super();
    }

    public static function show(... arguments):void{
    if(debug){
    trace(arguments);
    }

    }
    }
    }
    使用常量debug来设置。
    4.使用条件编译,代码如下
    CONFIG::debugging {
    trace(i);
    }
    然后在工程->属性->flex 编程器的附加编译参数加入
    -define=CONFIG::debugging,false

    -define=CONFIG::debugging,true

    总结,以上四种方法我觉得第四种比较好,可以彻底把trace语句删除,不过写起来麻烦些,可以3和4结合起来使用也不错。
  • 相关阅读:
    mysql复制那点事
    全排列问题
    56. Merge Interval
    2. Add Two Numbers
    20. Valid Parentheses
    121. Best Time to Buy and Sell Stock
    120. Triangle
    96. Unique Binary Search Trees
    91. Decode Ways
    72. Edit Distance
  • 原文地址:https://www.cnblogs.com/akweb/p/13331845.html
Copyright © 2011-2022 走看看