使用Flex states时不用字符串

来源:互联网 发布:数据分析表 编辑:程序博客网 时间:2024/06/06 12:53
我喜欢使用Flex的 <states>,但是有一件事情让我感到很烦,就是当设置this.currentState=”some_state”的时候,为了能让它运行,我必须准确地记住 “some_state”这个字符串。假如我拼写不正确,然后就会报告一个运行时错误。所以当我在写程序的时候我发现我经常向上滚动代码,找到<states>定义的地方,准确地拷贝下这个字符串,这样才没有错误。
但是这样做非常麻烦。
今天我突然想到,关于这个问题有一个非常简单的方法。不是像我这样声明states:
       <s:states>
        <s:State name="default" />
        <s:State name="logged_in" />
        <s:State name="logged_out" />
</s:states>
这样的话我将要使用this.currentState=”logged_in”;来改变state.
     现在我可以这样做:
       <s:states>
        <s:State id="defaultState" name="default" />
        <s:State id="loggedInState" name="logged_in" />
        <s:State id="loggedOutState" name="logged_out" />
</s:states>
     我可以不使用任何字符串来改变state.
     this.currentState = loggedInState.name;

    我相信很多人都想到了这个方法。但是,我还没有看见过有人这样用过,所以我想我应该和大家分享。


 转载:http://bbs.9ria.com/thread-105658-1-1.html