问题
如何检测组件的全局 xy 坐标的变化(从组件内部)。全局坐标是指相对于舞台而不是容器的坐标。
检测何时MyComponent.x
更改很容易,但何时更改则不那么容易MyComponent.parent.x
。
例子
在下面的代码中,#container
有MyComponent
. 的坐标#container
取决于currentState
,但 的坐标相对于MyComponent
保持不变#container
。
<s:states>
<s:State name="state1" />
<s:State name="state2" />
</s:states>
<s:Group id="container" x.state1="0" x.state2="35"
y.state1="0" y.state2="35">
<local:MyComponent width="300" height="400" />
</s:Group>
在上面的代码中,如何检测位置(相对于舞台)何时MyComponent
发生变化?
我需要从 内部的代码中执行此操作MyComponent
,当状态发生变化时仅调用函数是不够的。
想法
到目前为止,我已经尝试听updateComplete
,move
等resize
。但它不起作用。
我也考虑过倾听enterStage
或倾听move
所有父母的意见,我认为这些选项可能会占用大量资源,希望有更好的方法。
原因
在真正的代码中,我包裹StageWebView
在一个 中UIComponent
,当父坐标改变时我遇到了问题。我没有办法听那个事件。
如果你以前用过这个类,你就会知道它不能被添加到显示列表中,而是附加到舞台上。这使得管理起来很困难,我想把它包装起来,这样我就可以直接在 MXML 中重用。