flex学习-----states

一、简介:

      States是一套用于创建状态视图的强大工具,也就是说组件可以有多个视图。所有的UICompnent都可以添加一个或多个State到states数组中,可以通过状态增加或删除子组件。也可以改变组件的样式、特效等。

 

二、通过State设置组件的样式:

      定义State,通过SetProperty与setStyle来改变组件的样式,如:

      <State name="s">

           <mx:SetProperty target="{组件}" name="属性名" value="改变的值" />

           <mx:SetStyle target="{组件}" name="属性名" value="改变的值" />

      </State>

 

三、通过定义Transitions在改变state时运用特效:

      <mx:transitions id="tr" fromState="开始State" toState="变化后的State" effect="{特效}" />

       formState: 就是初使状态(可以是*,表示所有)

       toState:变化后的状态(可以是*,表示所有)

       表示当组件的状态改变时,播放指定的特效

 

四、为特定的子节点过滤Transitions:

      使用EffectTargetFilter对象。如:

      filter.filterFunction = a();

      public function a(p:Array,target:Object):Boolean{

            if(target is HBox){return true;}return false;

      }

 

五、建立State之上的State:

      <mx:State name="st" baseOn="baseOnState" />

      st状态与baseOnState状态都同时调用相同的baseOnState的内容,baseOnState先调用,st状态后调用,类似于父子类的关系。

 

六、用HistoryManager来管理历史纪录

      <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
       implements="mx.managers.IHistoryManagementClient"
       initialize="mx.managers.HistoryManager.register(this);">

      还需要实现IHistoryManagementClient的saveState()与loadSatet方法来完成组件的注册。扩展UICompnent的组件会自动继承loadState()方法。

 

 

感觉State最大的用途就是当前发生某事件时,改变组件的状态视图显示不用的组件或样式更方便的进行操作与改善用户体验。

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值