2011-07-26 55 views
0

我在我的s:Application中有一个creationComplete =“myMethod(event)”,它在我的3 flex(Flash Builder 4)开发机器上运行良好。然而,它不适用于我今天试用的2台最终用户机器!Flex creationComplete()对某些机器不执行

它根本没有执行creationComplete,但它正在运行应用程序,它看起来像所有其他代码运行良好 - 除了应用程序中其他组件的其他creationComplete代码的可能的例外。

在我的机器上,我在IE 8和9,FireFox和Chrome上测试了它 - 在所有3台机器上。

在这两台机器上,它在IE 7和IE 8上都存在问题。我甚至安装了FireFox,它也有问题。安装最新的Flash播放器并删除所有浏览器历史记录/ Cookie后,仍然存在问题。

什么可能导致creationComplete无法执行?

更新: 我试过使用initialize()并没有区别。

不过,我相信我找到的代码导致问题的行:

var isDebug:Boolean = new Error().getStackTrace().search(/:[0-9]+\]$/m) > -1; 

如果我评论说出来,它工作正常。为什么?我需要知道我的应用程序是以开发/调试模式还是在最终用户计算机上运行。

+0

如果你看一下我的回答如下,它是* *是正确的。在今天的一些其他探索中,我发现.getStackTrace()在非调试环境中返回** null **。 –

回答

0

看来(我自己没有测试过)你无法在非调试模式下获取堆栈跟踪错误?

这是我对你对问题描述的假设。如果是这种情况,你可以检查getStackTrace()!= null。

编辑:证实,的getStackTrace()返回在非调试环境

+0

似乎工作到目前为止,这是我用的:isDebug = new Error()。getStackTrace()!= null; –

0

也许这行抛出异常(即会很有趣,不是吗?),你不能赶上非调试模式下...

你有没有尝试过这样的:

import flash.system.Capabilities; 

[...] 

var isDebug:Boolean = Capabilities.isDebugger; 
相关问题