在Flash Builder 4中进行与设计模式中的状态无关的更改

时间:2011-06-03 14:43:31

标签: flex flash-builder state designmode

如果我有一个已定义某些状态的组件,是否有办法在设计模式下进行更改但是没有将其绑定到特定状态?例如,如果我有state1和state2,设计模式的任何更改都将基于state1或state2(即width.state1)。我知道这是Flex正在进行的方向但是我正在从Flex 3应用程序转换到现在我只想更改宽度而不是width.state1。

3 个答案:

答案 0 :(得分:2)

我不确定如何在设计模式下执行此操作,但在MXML中您可以使用以下内容:

<component id="myid" width.state1="100" width.state2="100" />

如果您只想设置一个与状态无关的宽度,请执行以下操作:

<component id="myid" width="100"  />

另外,我不确定我是否会就Flex的发展方向发表任何一揽子声明。到目前为止,Adobe已经改变了几次方向。在构建Mobile Skins时;他们建议不要完全使用MXML;并且对于移动设备外观中的性能状态是代码中的硬编码更改。

答案 1 :(得分:2)

这是我不喜欢的Flash Builder的“功能”之一。如果您可以从州下拉列表中选择<base state>,但由于某种原因,这不是一个选项。

据我所知,在不影响特定状态的情况下,无法使用设计模式。我会按照J_A_X的建议去做,并在源模式下自己编写代码。

编辑:Flextras添加了一个很好的示例,说明如何为特定州或所有州编码属性。

答案 2 :(得分:1)

有一种方法可以强制属性独立于视图状态:在设计窗口中单击鼠标右键并选择相关组件,然后在上下文菜单“将当前属性应用于所有状态”中选择最后一个选项。该选项并不是非常灵活:它将删除您为该组件设置的所有视图相关属性。并且还要注意您选择的组件。如果您没有使用鼠标指针在正确的位置,右键单击设计窗口将选择不同的组件。