使用ActionScript定制状态和转移效果

 

http://www.actionscript.com/states/srcview/index.html

http://www.actionscript.com/Article/tabid/54/ArticleID/Controlling-Flex-UIComponent-States-in-ActionScript-3-0/Default.aspx

以上分别是原文和代码的链接,作者在这篇里面讨论了使用AS创建程序的必要性,在这里讨论的是一个CUSTOM EFFECT的高级议题

作者还给出了详细的源代码分析真是非常的好啊

 package com.actionscript.states
{
 import mx.containers.Canvas;
 import mx.states.State;
 import mx.states.SetProperty;
 
 public class HideScaler extends Canvas {
  
  public function HideScaler() {
   super();//调用父类的构造函数
   initState();
  }
  
  private function initState():void {
   var hideState:State = new State();
   hideState.name = "hide";//设置其名字对象

 

//The overrides array is an assortment of various objects used to change specific aspects of a UIComponent's state.

//覆盖数组是各种对象的集合,用来改变UI对象的状态的各个方面(大家可以参照英文)


   hideState.overrides.push(new SetProperty(this, "width", 0));

//使用mx.states.SetProperty来改变UI对象的长和宽

//当然还有mx.states.SetEventHandler 和mx.states.SetStyle.


   hideState.overrides.push(new SetProperty(this, "height", 0));
   states.push(hideState);//最后将新状态压栈以便在必要的时候调用之
  }
 }
}

 

以上是第一阶段,这个阶段实现的只是一个没有TWEEN效果的STATE,下面看第二阶段

   var transEffect:Parallel = new Parallel(this);

 

 

//一个转移效果是一个定义转移效果应为多长,应该作用于某个UICOMPONET以及使用什么样的效果的类(在这个例子中是Resize)

//效果分为并发和顺序的,并发的转移效果同时作用于UICOMPONENT的所有UI对象,而顺序转移效果则一一作用于这些UI对象,其实选什么也不重要。


   transEffect.duration = 400;
   transEffect.children.push(new Resize(this));

//定义一个转移效果
   
   var stateTransition:Transition = new Transition();
   stateTransition.toState = stateTransition.fromState = "*";
   stateTransition.effect = transEffect;

//为所有的状态转移设置此转移效果
   
   transitions.push(stateTransition);

//应用转移效果

 

这里分析的只是若干重要的代码,详细的分析还要看作者的原文档。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值