小菜学Flex2(二 currentState初步使用)

currentState意思是当前的状态,Flex可以设置当前页面的多个状态(states),只需要将页面的currentState属性设置为其中某个状态,就会让当前页面变成这个状态时的样式,其中可以设置由A状态转化(transitions)为B状态的过程
下面是实现的代码

  1. 38-39为一个Panel,ID为catalogPanel,其中有Click事件
  2. 5-15行,为AS3脚本,目的是执行在点击Panel时的改变当前的状态
  3. 19-26行为状态集,分别为toLeft和toRight两个状态,toLeft就是设置目标为catalogPanel的left样式值为1,即让此Panel左边距为1,toRight同理
  4. 28-36行为转化集,其中Sequence表示按顺序转化,Parallel表示同时转化,这里由于只有Move一种转化,所以不存在顺序或同时转化的情况,duration表示延迟的时间,毫秒为单位。

总的来说,此段代码的意思就是最开始时,即在Application里设置当前状态为toLeft,所以Panel在左边。然后当点击Panel时,Panel的状态变为了toRight,由于设置了变化过程是Move,在1000毫秒完成,所以就有了移动的效果,再次点击,状态又改回为toLeft,则Panal就移回了左侧。

 1 None.gif <? xml version="1.0" encoding="utf-8" ?>
 2 None.gif < mx:Application  xmlns:mx ="http://www.adobe.com/2006/mxml"  layout ="absolute"  currentState ="toLeft" >
 3 None.gif     < mx:Script >
 4 None.gif         <![CDATA[
 5 None.gif            public function movePanel(): void
 6 None.gif            {
 7 None.gif                if (currentState == 'toLeft')
 8 None.gif                {
 9 None.gif                    currentState = 'toRight';
10 None.gif                }
11 None.gif                else
12 None.gif                {
13 None.gif                    currentState = 'toLeft';
14 None.gif                }
15 None.gif            }
16 None.gif         ]]>
17 None.gif     </ mx:Script >
18 None.gif    
19 None.gif     < mx:states >
20 None.gif        < mx:State  name ="toLeft" >
21 None.gif           < mx:SetStyle  target ="{catalogPanel}"  name ="left"  value ="1" />
22 None.gif        </ mx:State >         
23 None.gif        < mx:State  name ="toRight" >
24 None.gif            < mx:SetStyle  target ="{catalogPanel}"  name ="right"  value ="1" />
25 None.gif         </ mx:State >
26 None.gif     </ mx:states >
27 None.gif    
28 None.gif     < mx:transitions >
29 None.gif        < mx:Transition  fromState ="*"  toState ="*" >
30 None.gif            < mx:Sequence  id ="t1"  target ="{catalogPanel}" >             
31 None.gif                < mx:Parallel >
32 None.gif                      < mx:Move  duration ="1000" />
33 None.gif                </ mx:Parallel >     
34 None.gif             </ mx:Sequence >
35 None.gif         </ mx:Transition >
36 None.gif     </ mx:transitions >
37 None.gif    
38 None.gif     < mx:Panel  id ="catalogPanel"  width ="400"  height ="300"  x ="0"  y ="0"  click ="movePanel();" >
39 None.gif     </ mx:Panel >
40 None.gif    
41 None.gif </ mx:Application >
42 None.gif

样例展现:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值