在Flex 3.0中,我创建了一个具有可拖动窗口(CollapsableTitleWindow代码由其他人编写,但无关紧要)的状态。在Flex中,将属性设置为相对于另一个属性,但然后丢失连接
然后,我创建了一个新的viewstate,它重新定位窗口。
<mx:State name="newstate" basedOn="firststate">
<mx:SetProperty target="{window1}" name="width" value="50%"/>
<mx:SetProperty target="{window2}" name="x" value="{window1.width + 5}"/>
我想在未来的负载到另一位置的一个窗口,但我不希望第二个窗口移动,当用户拖动周围的第一个。
如何在加载时将x绑定到(window1.width + 5)的值,但却失去了对事物的持续评估?
你有没有尝试在'creationComplete'上设置windows'x'值? – 2011-05-19 16:04:01
不,但是creationComplete显然只会引发实际的mx对象。当用户进入新状态时,当我更改window2的属性时,我无法捕捉它。或者我误解了这个?自动完成并不建议它。 – Tominator 2011-05-19 16:38:16
我现在明白了。你只想在状态第一次改变时设置'x',而不是在组件第一次加载时。您可以在事件侦听器中为状态更改事件之一设置'x'属性:** enterState **,** exitState **,** currentStateChange **或** currentStateChanging **。以下是Adobe的文档:http://livedocs.adobe.com/flex/3/html/help.html?content=using_states_3.html。让我知道这是否有效,我会把它写成正式答案。 – 2011-05-19 16:49:34