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

本文探讨了使用ActionScript创建程序的必要性,特别是关于如何通过定制效果(CUSTOMEFFECT)来控制Flex UI组件的状态。文章提供了详细的源代码分析,包括如何创建带有过渡效果的状态(STATE),并介绍了使用mx.states.SetProperty改变UI组件尺寸的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);

//应用转移效果

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值