2011-07-26 69 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; 
相關問題