<dd id="zpvot"><pre id="zpvot"></pre></dd>
  • <em id="zpvot"><acronym id="zpvot"><u id="zpvot"></u></acronym></em>
    <rp id="zpvot"></rp>
    1. <rp id="zpvot"><ruby id="zpvot"></ruby></rp>
      <strong id="zpvot"></strong>
      教程分類
      教程瀏覽排行

      用flash cs4制作撲克牌簡易翻轉的三維效果

            通過本例的制作,來加強所學知識的理解,并學習如何配合使用達到更好效果,用簡單的方法創作很酷的三維效果,在結合創作中加深理解應用。

      本例思路:

       <1> 創建實例背景。

       <2> 繪制牌的正面和反面并轉換為圖形元件。
       <3> 創建一個牌的容器,轉換為元件類“Card”,將正反面牌分別放置于第1、2幀。
       <4> 創建文檔類,控制撲克牌對象的rotationY屬性。
       實例步驟:(1)新建一個空白文檔,舞臺大小設置為500*250,幀頻設置為120,繪制一個與舞臺大小同

       樣大小的矩形,并填充放射狀漸變色,設置第一色標顏色為(R:0,G:246,B:93)Alpha: 100%,設

       置第二色標顏色為(R:0,G:131,B:49)Alpha: 100% ,設置第三色標顏色為(R:0,G:62,B:23

       )Alpha: 100% ,如下圖15-1所示。

      flash


             圖15-1  繪制背景

       

       (2)使用“漸變變形工具”進行調整高光位置和漸變分布模式,如下圖15-2 所示。

      flash

              圖15-2  漸變調整

       

       (3)分別創建兩個圖形元件,命名為“back”和“9”。簡單繪制撲克牌“9”的正反面,注冊點在中心

       位置且大小必需相同,如下圖15- 3所示。

      flash

                圖15-3  撲克牌正反面

       

       (4)新建一個影片剪輯,命名為“Card” ,命名元件類名也為“Card”,如圖3-所示。將上面步驟中

       創建的撲克牌“9”的正反面分別放置于第1、2幀處正中心位置,如下圖15-4所示。

      flash

               圖15-4 創建“Card”對象

       (5)創建文檔類Main類,如圖3-所示,首先創建一個牌的容器“container”,并將其放置于舞臺中心

       位置,如構造函數第20到23行代碼所示,然后創建撲克牌容器對象并添加到容器“container”中,如第

       25、26行代碼所示,并將撲克牌容器對象停止播放(也就是停留在第1幀)、啟動按鈕模式和注冊偵聽器

       函數,如第27到29行代碼所示。

       package      

       {     

          import flash.display.*;     

          import flash.events.*;     

          import caurina.transitions.Tweener;     

          /**    

           * ...    

           * @author lbynet (Tools -> Custom Arguments...)    

           */    

          public class Main extends Sprite {     

              private var container:Sprite;     

              private var pane:MovieClip;     

              private var isback:Boolean;     

              private var currentPlane:MovieClip;     

              private var currentRotationY:Number;     

              public function Main():void {     

                  container = new Sprite();     

                  container.x=stage.stageWidth/2;     

                  container.y=stage.stageHeight/2;     

                  addChild(container);     

                  pane = new Card();     

                  container.addChild(pane);     

                  pane.stop();     

                  pane.buttonMode=true;     

                  pane.addEventListener(MouseEvent.CLICK, onClick);     

              } 
       (6)當撲克牌容器對象被單擊時調用onClick偵聽器函數,為stage注冊事件偵聽來控制何時切換為正面

       或是反面,通過判斷變量isback 來重新設置被單擊撲克牌的rotationY屬性,如第36到44行代碼所示,

       在第38、42行代碼,通過Tweener 來切換撲克牌的rotationY值在0與-180度之間,如下原理圖15-5 所示

       。

      flash

       

      圖15-5  文檔類

       

       private function onClick(event:MouseEvent):void {     


              stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);     

              currentPlane = MovieClip(event.currentTarget);     

              if (isback) {     

                  Tweener.addTween(currentPlane, { rotationY:0,time:1 } );     

                  //Tweener.addTween(currentPlane, { z:0,time:1 } );     

              } else {     

                  Tweener.addTween(currentPlane, { rotationY:-180,time:1 } );     

                  //Tweener.addTween(currentPlane, { z:-200,time:1 } );     

              }     

              isback = ! isback;     

          }     

          private function enterFrameHandler(event:Event):void {     

              currentRotationY = currentPlane.rotationY;     

              if (currentRotationY >= -90 && currentRotationY <= 10) {     

                  if (isback) {     

                      currentPlane.gotoAndStop(2);     

                  } else {     

                      currentPlane.gotoAndStop(1);     
                  }     

                  stage.removeEventListener(Event.ENTER_FRAME, enterFrameHandler); 

                  trace("已清除事件偵聽");     

              }     
                   
          }     
                

       }    

       (7) 當用戶單擊撲克牌容器對象,在第34行代碼中注冊的偵聽器后,執行偵聽器函數enterFrameHandler ,

       并通過時時判斷撲克牌容器對象的rotationY的值來判斷撲克牌容器對象要切換跳轉到哪一幀,如第50到59行代

       碼所示,最后,清除無用的偵聽器,如第57行代碼所示。


       (8)把onClick偵聽器函數中第39、43兩行代碼放開,發布測試,當用戶單擊撲克牌容器對象后,撲克

       牌切換翻轉并放大(其實際是對象的z軸值減小),如下圖3- 所示,當再次單擊后,撲克牌切換翻轉并

       縮小致原始狀態。

      來源:不詳 發布時間:2012-4-14 18:23:14 瀏覽次數
      上一篇教程:Flash教你制作悠閑來喝茶
      下一篇教程:在PowerPoint中播放多種音視頻文件
      教程評論


      評論人: 驗證碼:
      內 容:
      相關教程
      奇米影视首页