我很困惑 的visible
属性是否DisplayObject
为:
- 来自 Flex的关于显示对象是否可见的指示。
- Flex显示显示对象的指令。
我之所以问,是因为我正在使用 Flex Pilot 自动化一些 Flex 测试,并且我需要确定显示对象何时变为可点击。在我正在测试的应用程序中,可点击似乎意味着呈现。
鉴于应用程序的性质和我的测试,我认为监视该updateCompleted
事件是不可行的。我需要一种方法来根据给定时刻的属性值及其容器的属性来检测显示对象是否可见。
我了解即使显示对象的visible
属性为 true,也只有在其所有容器也可见时才可见。这意味着我必须通过编写一个 ActionScript 方法来扩展 Flex Pilot,以确定显示对象及其容器是否都具有visible=true
. 但我担心即使是那个方法也不能确定显示对象是否真的被渲染,因此是可点击的。
我的困惑来自阅读 Adobe 的两个描述。
“关于创建高级组件”文档建议该visible
属性由 Flex 在呈现显示对象后设置。在此描述中,设置值是 Flex 的工作,因此该值是来自 Flex的对显示对象是否可见的指示。
另一方面,Adobe 对该属性的描述表明visible
该属性是可写的。并且代码示例表明,如果应用程序更改了该值,Flex 将通过显示或隐藏显示对象来做出响应。在此描述中,应用程序将该值设置为向 Flex显示对象的指令。我猜在这种情况下,Flex 会重新渲染显示对象(如果visible
从false
to更改true
)或其容器(如果visible
从true
to更改false
)。
所以两个主要问题:
属性是否visible
以这两种方式使用,既作为来自 Flex 的关于显示对象可见性的指示,又作为向 Flex 指示是否显示对象的指示?
如果应用程序visible
从 false 变为 true,那么显示对象何时真正可见? 设置器返回时是否可见?或者设置属性只是安排对象在以后的某个事件中变得可见?如果是后者,则意味着可能有一段时间visible
为真,但显示对象尚未渲染。如果是这种情况,我不知道如何从给定时刻的显示对象的状态来确定显示对象是否已被渲染。