原: http://elanso.com/ArticleModule/ONU0RRHGGJGJHlKeS4SYTgIi.html
在前面的Flex中利用mx:Sequence标签实现顺序效果(Sequencing effects)以及划变效果(Wipe effects)的例子中,我们了解了如何利用<mx:Sequence />这个MXML标签,创建一个按顺序执行的组合效果。接下来的例子演示了如何用ActionScript来代替MXML,实现相同的效果。
让我们先来看一下Demo(
可以右键View Source或点击这里察看源代码)
:
src="http://blog.minidx.com/ext/sequencing-effects-in-flex-using-the-mxsequence-tag-redux/main.html" width="500" height="300">
下面是完整代码(或点击这里察看):
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>