自己做的Effect特效

下面这个示例是用Move3D特效来进行两个视图(view)间的移动,给人一种以滑动的效果。为了做测试,这里用了两个方向(x和y方向),根据改变state来触发该特效

 

还有一个知识点需要注意(与该示例无关)的就是   Transition 中的fromState和toState,分别用来指定应用过渡时的原视图状态和目标视图状态,指定为星号(*)的话,表示任意的视图状态。如:fromState = "*" toState = "*"。

 

<?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" xmlns:local="*">

    <s:states>

        <s:State name="stateView1"/>

        <s:State name="normal"/>

    </s:states>

    <fx:Script>

        <![CDATA[

            [Bindable]

            protected var showVisible:Boolean = false;

        ]]>

    </fx:Script>

   

    <s:transitions>

        <s:Transition fromState="stateView1" toState="normal">

            <s:Sequence duration="150">

                <s:Move3D xFrom="57" xTo="260" target="{view2}" effectEnd="showVisible = true"/>

                <s:Move3D xFrom="300" xTo="57" target="{view1}" />

            </s:Sequence>

        </s:Transition>

        <s:Transition fromState="normal" toState="stateView1">

            <s:Sequence duration="150">

                <s:Move3D yFrom="57" yTo="260" target="{view1}" effectEnd="showVisible = false"/>

                <s:Move3D yFrom="300" yTo="57" target="{view2}" />

            </s:Sequence>

        </s:Transition>

    </s:transitions>

 

    <s:BorderContainer width="300" height="260" backgroundColor="0x696969">

        <s:Button label="我的老婆" x="129" y="91" height="49" width="89" click="this.currentState = 'stateView1' "/>

        <s:Button label="我的小艳艳" x="129" y="152" height="49" width="89" click="this.currentState='normal' "/>

       

        <mx:Image id="view1" source="@Embed('assets/images/TimesheetOverBtn.png')" visible="{!showVisible}"/>

        <mx:Image id="view2" source="@Embed('assets/images/EmailBtn.png')" visible="{showVisible}"/>

    </s:BorderContainer>

</s:Application>

 

 

---下面是从网上看到的篇帖子,给出的特效也不错,搬来学习一下:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx=" http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="top"
paddingTop="100" viewSourceURL="srcview/index.html">

<!-- ====================================淡出淡入效果 ==================================== -->
   <!-- <mx:Dissolve id="xiaoshi" duration="1000" alphaFrom="1.0" alphaTo="0.0" />
    <mx:Dissolve id="xianshi" duration="1000" alphaFrom="0.0" alphaTo="1.0" />
   
    <mx:Image visible="{aaas.selected}" source="@Embed('E:/WS workspace/Flex/image/001.png')" hideEffect="{xiaoshi}" showEffect="{xianshi}" />
    <mx:CheckBox id="aaas" label="显示/隐藏" selected="true" />-->
   <!-- ==================================== over ==================================== -->
  
   <!-- ====================================以矩形 淡出淡入效果 ==================================== -->
   <!--<mx:Iris id="xianshi" duration="1000" showTarget="true" />
   <mx:Iris id="xiaoshi" duration="1000" showTarget="false" />
  
    <mx:Image visible="{abc.selected}" source="@Embed('E:/WS workspace/Flex/image/002.png')" hideEffect="{xianshi}" showEffect="{xiaoshi}"/>
    <mx:CheckBox id="abc" visible="true" selected="true" label="巨型显示和出现" />-->
    <!-- ==================================== over ==================================== -->
   
     <!-- ==================================== 左右移动图片 ==================================== -->
     <mx:Script>
    <![CDATA[
       import mx.controls.Alert;
       private function moveImage(e:MouseEvent){
      
        var point:Point = new Point(mouseX,mouseY);
        var localPoint:Point = canvas.globalToContent(point);
       
        myMove.xTo = localPoint.x+200;
        myMove1.xTo = localPoint.x+200;
        myMove2.xTo = localPoint.x+200;
        myMove.play();
       }
      
       private function outImage(e :MouseEvent){
       
        var point:Point = new Point(mouseX,mouseY);
        var localPoint:Point = canvas.globalToContent(point);
       
        myMove.xTo = myMove.yTo-200;
        myMove1.xTo = myMove.yTo-200;
        myMove2.xTo = myMove.yTo-200;
       myMove.end();
       }
    ]]>
    </mx:Script>
    <mx:Move id="myMove" target="{img}" xTo="200" yTo="200"/>
    <mx:Move id="myMove1" target="{img1}" xTo="200" yTo="200"/>
    <mx:Move id="myMove2" target="{img2}" xTo="200" yTo="200"/>
   
        <mx:HBox id="canvas" width="100%" borderStyle="inset" height="397">
         <mx:Image id="img" source="@Embed('E:/WS workspace/Flex/image/001.png')" mouseOver="moveImage(event)" mouseOut="outImage(event)"/>
         <mx:Image id="img1" source="@Embed('E:/WS workspace/Flex/image/002.png')" mouseOver="moveImage(event)" mouseOut="outImage(event)"/>
         <mx:Image id="img2" source="@Embed('E:/WS workspace/Flex/image/003.png')" mouseOver="moveImage(event)" mouseOut="outImage(event)"/>
   </mx:HBox>
    <!-- ==================================== over ==================================== -->
</mx:Application>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值