2010-10-06 69 views
0

當應用程序在後臺運行時,Flex會引發一個錯誤,這有一個相當奇怪的問題。我使用Selenium和SeleniumFlexApi對我的應用程序運行各種測試。如果瀏覽器窗口位於前臺或其任何部分對於屏幕可見,則測試按預期通過。但是,如果窗口在後臺並且不可見,我在應用程序的一部分中收到以下錯誤。移除孩子時出現Flex錯誤

ArgumentError:錯誤#2025:提供的DisplayObject必須是調用者的子項。

我有一個VBOX,創建了一些孩子,然後在creationComplete(或UpdateComplete,我試了兩個),然後需要刪除任何不可見的孩子。每個孩子都有一個CreationComplete監聽器,它檢查孩子是否可見,如果不是,則將其添加到父代UpdateComplete被觸發時迭代的數組中。我似乎找不到這種行爲的任何原因,並且很好奇它是否與Flex Component LifeCycle有關。

回答

1

最新版本的Flash Player(10.1)會在最小化時自動「減慢」。我認爲它每分鐘下降到幾幀(相對於Flex的每秒24幀)。我不知道具體的數字。這是出於性能和'電池壽命'的原因。

如果您的應用程序或測試中有任何需要特定時間或使用計時器的內容,那麼這將很容易破壞單元測試。

我從其他人那裏聽說,這有其他人有這方面的問題。我聽到的最好的解決方案是「添加一個標誌來關閉它,即使它只在調試播放器中。」但是,除了「儘量減少應用程序運行你的測試」之外,現在還沒有解決方案。

+0

+1,我在想同樣的事情,但不能像你那樣表達清楚。 – 2010-10-06 17:57:26