当应用程序在后台运行时,Flex会抛出一个错误的奇怪问题。我使用Selenium和SeleniumFlexApi对我的应用程序运行各种测试。如果浏览器窗口位于前台或其任何部分对于屏幕可见,则测试按预期传递。但是,如果窗口在后台并且不可见,我在我的应用程序的一部分中收到以下错误。
ArgumentError:错误#2025:提供的DisplayObject必须是调用者的子级。
我有一个VBOX创建了许多子项,然后在creationComplete(或UpdateComplete,我已经尝试过两者)之后,它需要删除任何不可见的子项。每个子节点都有一个CreationComplete监听器,用于检查子节点是否可见,如果没有,则将其添加到一个数组中,该数组在触发父UpdateComplete时被迭代。我似乎无法找到这种行为的任何原因,并且好奇它是否与Flex组件LifeCycle有关。
答案 0 :(得分:1)
最新版本的Flash Player(10.1)会在最小化时自动“减速”。我认为它每分钟下降到几帧[而不是Flex的标准每秒24帧]。我不知道具体的数字。这是出于性能和“电池寿命”的原因。
如果您的应用程序或测试中有任何内容需要特定的时间或使用计时器,那么这很容易破坏单元测试。
我从其他人那里听说,其他人也有这个问题。我听过的最好的解决方案是“添加一个标志来关闭它;即使只是在调试播放器中。”但是,除了“尽量减少应用程序运行测试”之外,目前还没有解决方案