(5)創建文檔類Main類,如圖3-所示,首先創建一個牌的容器“container”,并將其放置于舞臺中心位置,如構造函數第20到23行代碼所示,然后創建撲克牌容器對象并添加到容器“container”中,如第25、26行代碼所示,并將撲克牌容器對象停止播放(也就是停留在第1幀)、啟動按鈕模式和注冊偵聽器函數,如第27到29行代碼所示。
AS3代碼
| 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 所示。

AS3代碼
| 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("已清除事件偵聽"); } } } |
圖15-5 文檔類
(7) 當用戶單擊撲克牌容器對象,在第34行代碼中注冊的偵聽器后,執行偵聽器函數enterFrameHandler ,并通過時時判斷撲克牌容器對象的rotationY的值來判斷撲克牌容器對象要切換跳轉到哪一幀,如第50到59行代碼所示,最后,清除無用的偵聽器,如第57行代碼所示。
(8)把onClick偵聽器函數中第39、43兩行代碼放開,發布測試,當用戶單擊撲克牌容器對象后,撲克牌切換翻轉并放大(其實際是對象的z軸值減小),如下圖3- 所示,當再次單擊后,撲克牌切換翻轉并縮小致原始狀態。
進入論壇參與討論和交作業:http://www.missyuan.com/viewthread.php?tid=425890
情非得已
Flash CS4教程:制作調入式聲音控制的按鈕2009-10-22
Flash CS4教程:詳細解析抓喜慶游戲教程2009-10-13
Flash AS3.0教程:制作3D旋轉動畫效果2009-09-01
Flash詳細解析制作出的動畫如何導出GIF
相關文章94122015-10-12
Flash制作遮罩圖片切換特效教程
相關文章151672014-03-26
Flash制作牛奶搖搖杯實例教程
相關文章133692014-03-26
Flash教你如何制作蝙蝠在月夜里飛翔
相關文章218902014-03-22
Flash制作可愛吹泡泡動畫效果教程
相關文章154212014-03-22
Flash教你制作悠閑來喝茶動畫教程
相關文章56682014-03-22
Flash制作一幅詩意的水墨卷軸展開的動畫
相關文章71862014-03-22
Flash制作有趣的親嘴豬動畫教程
相關文章76312014-03-22
