您的位置:首页 > 产品设计 > UI/UE

Flex中如何利用ActionScript代替mx:Sequence标签实现顺序效果

2008-10-17 17:32 567 查看
原: http://elanso.com/ArticleModule/ONU0RRHGGJGJHlKeS4SYTgIi.html
在前面的Flex中利用mx:Sequence标签实现顺序效果(Sequencing effects)以及划变效果(Wipe effects)的例子中,我们了解了如何利用<mx:Sequence />这个MXML标签,创建一个按顺序执行的组合效果。接下来的例子演示了如何用ActionScript来代替MXML,实现相同的效果。
让我们先来看一下Demo(
可以右键View Source或点击这里察看源代码


下面是完整代码(或点击这里察看):
Download: main.mxml<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
verticalAlign="middle"
backgroundColor="white">

<mx:Script>
<![CDATA[
import mx.effects.Fade;
import mx.effects.Pause;
import mx.effects.Sequence;
import mx.effects.SetPropertyAction;
import mx.effects.WipeRight;

private var fader:Sequence;
private var wiper:Sequence;

private function fade_click():void {
var fadeIn:Fade = new Fade();
fadeIn.alphaFrom = 0.0;
fadeIn.alphaTo = 1.0;

var fadeOut:Fade = new Fade();
fadeOut.alphaFrom = 1.0;
fadeOut.alphaTo = 0.0;

var pause:Pause = new Pause();
pause.duration = slider.value;

fader = new Sequence();
fader.addChild(fadeIn);
fader.addChild(pause);
fader.addChild(fadeOut);

fader.stop();
fader.play([box]);
}

private function wipe_click():void {
var wipeIn:WipeRight = new WipeRight();
wipeIn.showTarget = true;

var wipeOut:WipeRight = new WipeRight();
wipeOut.showTarget = false;

var pause:Pause = new Pause();
pause.duration = slider.value;

var alphaOn:SetPropertyAction = new SetPropertyAction();
alphaOn.name = "alpha";
alphaOn.value = 1.0;

var alphaOff:SetPropertyAction = new SetPropertyAction();
alphaOff.name = "alpha";
alphaOff.value = 0.0;

wiper = new Sequence();
wiper.addChild(alphaOn);
wiper.addChild(wipeIn);
wiper.addChild(pause);
wiper.addChild(wipeOut);
wiper.addChild(alphaOff);

wiper.stop();
wiper.play([box]);
}
]]>
</mx:Script>

<mx:ApplicationControlBar dock="true">
<mx:Button label="fade box"
click="fade_click();" />
<mx:Button label="wipe box"
click="wipe_click();" />

<mx:Spacer width="100%" />

<mx:Label text="effect pause ({slider.value} ms):" />
<mx:HSlider id="slider"
minimum="1000"
maximum="3000"
value="1500"
labels="[1000,2000,3000]"
liveDragging="true"
showTrackHighlight="true"
snapInterval="100"
tickInterval="500"
dataTipPrecision="0" />
</mx:ApplicationControlBar>

<mx:Box id="box"
width="100%"
height="100%"
backgroundColor="haloSilver"
alpha="0.0" />

</mx:Application>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐