1

访问由错误的 getStackTrace 函数创建的字符串会导致 FlashDevelop IDE 出现非常不寻常的行为。

package
{
    import flash.display.Sprite;

    public class Main extends Sprite
    {
        public function Main():void
        {
            print("Start");

            var err:Error = new Error();
            var stack:String = err.getStackTrace();

            print(stack);
            // also occurs when this is replaced with stack.length or stack[0]

            print("End");
        }

        private function print(input:*):void
        {
            trace(input);
            trace("---");
        }
    }
}

在输出的 Flash CS4 中运行时

Start
---
Error
    at Main()
---
End
---

但是当在 FlashDevelop 中运行(替换trace()FlashConnect.trace())时,它会输出

Start
---

这是一个错误,还是 FlashDevelop 故意以不同的方式处理错误?

如果是后者,是否有解决方法来访问错误的堆栈跟踪?

4

2 回答 2

1

我设法通过切换到使用 Flash 播放器的调试版本来解决这个问题,我希望这可以帮助其他人解决这个问题。

指定调试播放器的说明

于 2013-07-23T18:54:19.763 回答
0

确保您在调试配置中进行编译,并且您可能必须在项目属性 > 编译器选项中启用(设置为 True)“详细堆栈跟踪”

于 2013-07-12T22:08:11.787 回答