(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
