Flex Effect Using | Flex 效果使用

Flex中Effect的可以为程序增添特效,可以让程序更生动,下面的源码整理自Using Flex 4.6一书,将常用几种特效都演示一下:

EffectUsingExamples.mxml

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
			   xmlns:s="library://ns.adobe.com/flex/spark"
			   xmlns:mx="library://ns.adobe.com/flex/mx"
			   minWidth="955" minHeight="600" pageTitle="Effect Using Examples">
	<s:layout>
		<s:VerticalLayout horizontalAlign="center" paddingBottom="40" paddingLeft="40"
						  paddingRight="40" paddingTop="40"/>
	</s:layout>
	<fx:Script>
		<![CDATA[
			import mx.geom.TransformOffsets;
			// Define an instance of TransformOffsets.
			private var myXForm:TransformOffsets = new TransformOffsets();
			// Initialize the postLayoutTransformOffsets property of the target.
			private function initOffsets():void {
				targetImg7.postLayoutTransformOffsets = myXForm;
			}
			// Move the target 20 pixels to the left and
			// increase its x and y scale by 0.1.
			private function nudgeImageLeft():void {
				targetImg7.postLayoutTransformOffsets.x =
					targetImg7.postLayoutTransformOffsets.x - 20;
				targetImg7.postLayoutTransformOffsets.scaleX =
					targetImg7.postLayoutTransformOffsets.scaleX + 0.1;
				targetImg7.postLayoutTransformOffsets.scaleY =
					targetImg7.postLayoutTransformOffsets.scaleY + 0.1;
			}
			// Move the target 20 pixels to the right and
			// decrease its x and y scale by 0.1.
			private function nudgeImageRight():void {
				targetImg7.postLayoutTransformOffsets.x =
					targetImg7.postLayoutTransformOffsets.x + 20;
				targetImg7.postLayoutTransformOffsets.scaleX =
					targetImg7.postLayoutTransformOffsets.scaleX - 0.1;
				targetImg7.postLayoutTransformOffsets.scaleY =
					targetImg7.postLayoutTransformOffsets.scaleY - 0.1;
			}
			// Reset the transform.
			private function resetImage():void {
				targetImg7.postLayoutTransformOffsets.x = 0;
				targetImg7.postLayoutTransformOffsets.scaleX = 1.0;
				targetImg7.postLayoutTransformOffsets.scaleY = 1.0;
			}
		]]>
	</fx:Script>
	<fx:Declarations>
		<!-- Place non-visual elements (e.g., services, value objects) here -->
		<s:Animate id="scaleUp"
				   target="{myB1}">
			<s:SimpleMotionPath property="scaleX"
								valueFrom="1.0" valueTo="1.5"/>
		</s:Animate>
		<s:Animate id="scaleDown"
				   target="{myB1}">
			<s:SimpleMotionPath property="scaleX"
								valueFrom="1.5" valueTo="1.0"/>
		</s:Animate>
		<s:Animate id="scaleIncrease"
				   target="{myB2}">
			<s:SimpleMotionPath property="scaleX"
								valueFrom="1.0" valueTo="1.5"/>
			<s:SimpleMotionPath property="scaleY"
								valueFrom="1.0" valueTo="1.5"/>
		</s:Animate>
		<s:Animate id="scaleDecrease"
				   target="{myB2}">
			<s:SimpleMotionPath property="scaleX"
								valueFrom="1.5" valueTo="1.0"/>
			<s:SimpleMotionPath property="scaleY"
								valueFrom="1.5" valueTo="1.0"/>
		</s:Animate>
		<s:Parallel id="parallelRMForward1"
				target="{myImage1}">
		<s:Rotate
			angleBy="180"/>
		<s:Move
			xBy="100"
			yBy="100"/>
	</s:Parallel>
	<s:Parallel id="parallelRMBack1"
				target="{myImage1}">
		<s:Rotate
			angleBy="180"/>
		<s:Move
			xBy="-100"
			yBy="-100"/>
	</s:Parallel>
		<s:Parallel id="parallelRMForward2"
					target="{myImage2}">
			<s:Rotate
				angleBy="180"
				autoCenterTransform="true"/>
			<s:Move
				xBy="100"
				yBy="100"
				autoCenterTransform="true"/>
		</s:Parallel>
		<s:Parallel id="parallelRMBack2"
					target="{myImage2}">
			<s:Rotate
				angleBy="180"
				autoCenterTransform="true"/>
			<s:Move
				xBy="-100"
				yBy="-100"
				autoCenterTransform="true"/>
		</s:Parallel>
		<s:Move3D id="moveEffect1" target="{targetImg1}"
				  xBy="100" zBy="100"
				  repeatCount="2" repeatBehavior="reverse"
				  effectStart="playButton1.enabled=false;"
				  effectEnd="playButton1.enabled=true;"/>
		<s:Rotate3D id="rotateEffect1" target="{targetImg2}"
					angleYFrom="0" angleYTo="360"
					repeatCount="2" repeatBehavior="reverse"
					effectStart="playButton2.enabled=false;"
					effectEnd="playButton2.enabled=true;"/>
		<s:Rotate3D id="rotateEffect2" target="{targetImg3}"
					angleYFrom="0" angleYTo="360"
					duration="3000"
					autoCenterTransform="true"
					repeatCount="2" repeatBehavior="reverse"
					effectStart="playButton3.enabled=false;"
					effectEnd="playButton3.enabled=true;"/>
		<s:Rotate3D id="rotateEffect3" target="{targetImg4}"
					angleYFrom="0" angleYTo="360"
					duration="3000"
					repeatCount="2" repeatBehavior="reverse"
					effectStart="playButton4.enabled=false;"
					effectEnd="playButton4.enabled=true;"/>
		<s:Rotate3D id="rotateEffect4" target="{targetImg5}"
					angleZFrom="0" angleZTo="360"
					applyChangesPostLayout="false"
					duration="5000"
					repeatCount="2" repeatBehavior="reverse"
					effectStart="playButton5.enabled=false;"
					effectEnd="playButton5.enabled=true;"/>
		
		<s:Fade id="vsFade" alphaFrom="0" alphaTo="1" duration="1000"
				target="{vs}"/>
</fx:Declarations>
	<s:Label width="100%" fontSize="24" fontFamily="微软雅黑" fontWeight="bold" text="所有示例摘抄自UsingADOBE® FLEX® 4.6"/>
		<s:Group width="100%" height="100%">
			<s:layout>
				<s:TileLayout columnWidth="300" horizontalGap="15" rowHeight="200" verticalGap="15"/>
			</s:layout>
			<s:Panel width="200" height="200" title="Scale example">
				<s:layout>
					<s:VerticalLayout/>
				</s:layout>
				
				<s:Button id="myB1"
						  label="Scale Button"
						  mouseDown="scaleUp.end(); scaleUp.play();"
						  mouseUp="scaleDown.end(); scaleDown.play();"/>
				<s:Button id="myB2"
						  label="Scale Button"
						  mouseDown="scaleDecrease.end(); scaleIncrease.play();"
						  mouseUp="scaleIncrease.end(); scaleDecrease.play();"/>
			</s:Panel>
			<s:Panel width="200" height="200" title="Parallel effect example">
				<s:layout>
					<s:VerticalLayout/>
				</s:layout>
				<s:Button label="Play Effect Forward"
						  x="10" y="10"
						  click="parallelRMForward1.end();parallelRMForward1.play();"/>
				<s:Button label="Play Effect Backward"
						  x="150" y="10"
						  click="parallelRMBack1.end();parallelRMBack1.play();" />
				<s:Image id="myImage1"
						 x="10" y="50" width="100" height="100"
						 source="@Embed('resource/images/castle.png')"/>
			</s:Panel>
			<s:Panel width="200" height="200" title="Parallel effect example">
				<s:layout>
					<s:VerticalLayout/>
				</s:layout>
				<s:Button label="Play Effect Forward"
						  x="10" y="10"
						  click="parallelRMForward2.end();parallelRMForward2.play();"/>
				<s:Button label="Play Effect Backward"
						  x="150" y="10"
						  click="parallelRMBack2.end();parallelRMBack2.play();" />
				<s:Image id="myImage2"
						 width="100" height="100"
						 source="@Embed('resource/images/castle.png')"/>
			</s:Panel>
			<s:Panel title="Move3D Effect Example"
					 width="200" height="200" >
				<s:Image id="targetImg1"
						 horizontalCenter="0"
						 verticalCenter="0"
						 width="100" height="100"
						 source="@Embed(source='resource/images/castle.png')"/>
				<s:Button id="playButton1"
						  left="5" bottom="5"
						  label="Move3D"
						  click="moveEffect1.play();"/>
			</s:Panel>
			<s:Panel title="Move3D Effect Example"
					 width="200" height="200" >
				<s:Image id="targetImg2"
						 horizontalCenter="0"
						 verticalCenter="0"
						 width="100" height="100"
						 source="@Embed(source='resource/images/castle.png')"/>
				<s:Button id="playButton2"
						  left="5" bottom="5"
						  label="Rotate3D"
						  click="rotateEffect1.play();"/>
			</s:Panel>
			<s:Panel title="Move3D Effect Example"
					 width="200" height="200" >
				<s:HGroup
					horizontalCenter="0"
					verticalCenter="0">
					<s:Image width="100" height="100"
							 source="@Embed(source='resource/images/castle.png')"/>
					<s:Image id="targetImg3" width="100" height="100"
							 source="@Embed(source='resource/images/castle.png')"/>
					<s:Image width="100" height="100"
							 source="@Embed(source='resource/images/castle.png')"/>
				</s:HGroup>
				<s:Button id="playButton3"
						  left="5" bottom="5"
						  label="Rotate3D"
						  click="rotateEffect2.play();"/>
			</s:Panel>
			<s:Panel title="Move3D Effect Example"
					 width="200" height="200" >
				<s:HGroup
					horizontalCenter="0"
					verticalCenter="0">
					<s:Image width="100" height="100"
							 source="@Embed(source='resource/images/castle.png')"/>
					<s:Image id="targetImg4" width="100" height="100"
							 source="@Embed(source='resource/images/castle.png')"/>
					<s:Image width="100" height="100"
							 source="@Embed(source='resource/images/castle.png')"/>
				</s:HGroup>
				<s:Button id="playButton4"
						  left="5" bottom="5"
						  label="Rotate3D"
						  click="rotateEffect3.play();"/>
			</s:Panel>
			<s:Panel title="Move3D Effect Example"
					 width="200" height="200" >
				<s:HGroup
					horizontalCenter="0"
					verticalCenter="0">
					<s:Image width="100" height="100"
							 source="@Embed(source='resource/images/castle.png')"/>
					<s:Image id="targetImg5" width="100" height="100"
							 source="@Embed(source='resource/images/castle.png')"/>
					<s:Image width="100" height="100"
							 source="@Embed(source='resource/images/castle.png')"/>
				</s:HGroup>
				<s:Button id="playButton5"
						  left="5" bottom="5"
						  label="Rotate3D"
						  click="rotateEffect4.play();"/>
			</s:Panel>
			<s:Panel title="Move3D Effect Example"
					 width="200" height="200" >
				<s:HGroup
					horizontalCenter="0"
					verticalCenter="0">
					<s:Image
						width="100" height="100"
						source="@Embed(source='resource/images/castle.png')"/>
					<s:Image id="targetImg7"
							 width="100" height="100"
							 source="@Embed(source='resource/images/castle.png')"
							 creationComplete="initOffsets();"/>
					<s:Image
						width="100" height="100"
						source="@Embed(source='resource/images/castle.png')"/>
				</s:HGroup>
				<s:HGroup left="5" bottom="5">
					<s:Button id="nudgeLeftButton"
							  label="Nudge Left"
							  click="nudgeImageLeft();"/>
					<s:Button id="nudgeRightButton"
							  label="Nudge Right"
							  click="nudgeImageRight();"/>
					<s:Button id="resetButton"
							  label="Reset"
							  click="resetImage();"/>
				</s:HGroup>
			</s:Panel>
		</s:Group>
</s:Application>

效果参加:

http://cachetian.com/blog/tech/flex/examples/EffectUsingExamples.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sky牟天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值