在mxml中,您声明如下状态:
<box:states>
<s:State name="active"/>
<s:State name="disabled"/>
</box:states>
如何在ActionScript类中实现相同的功能?显然它在Flex 3和Flex 4中都是一样的,无论它是什么。
答案 0 :(得分:3)
如果可以避免,那就行!
那说,屏住呼吸!那就是说,看看State班级。创建一个新实例并定义替代。我相信所有覆盖都在“另见”链接中链接。
每个组件都有一个“states”数组。
因此,只需手动创建状态。添加相关的覆盖,并将该状态添加到states数组。
这并不难,但它可能相当繁琐。我为Flextras日历做了这个。
答案 1 :(得分:3)
感谢您的回答。这就是我想出的:
// constructor
public function MyBox() {
states = new Array();
for each (var name:String in ['working', 'active', 'disabled']) {
var state:State = new State();
state.name = name;
states.push(state);
}
}