代码之家  ›  专栏  ›  技术社区  ›  Gordon Potter

actionscript 3.0中的行号常量?

  •  5
  • Gordon Potter  · 技术社区  · 15 年前

    是否有行号常量或动态跟踪ActionScript中行号的方法?

    actionscript是否与

    __LINE__
    

    在PHP中?

    2 回复  |  直到 13 年前
        1
  •  6
  •   OXMO456    15 年前

    这不是常量,但这行代码将为您提供行号:

    trace(">",new Error().getStackTrace().match(/(?<=:)[0-9]*(?=])/g)[0]);
    

    PS:只有在调试模式下编译SWF时,这才有效。

        2
  •  2
  •   jwfearn    13 年前

    要使用oxmo456的技巧作为函数,只需使用 match 结果(而不是索引0)。下面的代码执行此操作并检查调试功能:

    import flash.system.Capabilities;
    
    /**
     * Returns the positive line number from which the function is called, if
     * available, otherwise returns a negative number.
     */
    function lineNumber():int {
      var ret:int = -1;
      if (Capabilities.isDebugger) {
        ret = new Error().getStackTrace().match(/(?<=:)[0-9]*(?=])/g)[1];
      }
      return ret;
    }
    

    例子:

    trace('line ' + lineNumber() + ' reached!');