用flashcs4制作扑克牌简易翻转的三维效果
通过本例的制作,来加强所学知识的理解,并如何配合使用达到更好效果,用简单的方法创作很酷的三维效果,在结合创作中加深理解应用。
本例思路:
1 创建实例背景。
2 绘制牌的正面和反面并转换为图形元件。
3 创建一个牌的容器,转换为元件类“Card”,将正反面牌分别于第1、2帧。
4 创建文档类,控制扑克牌对象的rotationY属性。
实例步骤:1新建一个空白文档,舞台大小设置为500*250,帧频设置为120,绘制一个与舞台大小同
置第二色标颜色为R:0,G:131,B:49Alpha: 100% ,设置第三色标颜色为R:0,G:62,B:23
Alpha: 100% ,如下图15-1所示。
图15-1 绘制背景
2使用“渐变变形工具”进行调整高光位置和渐变分布模式,如下图15-2 所示。
图15-2 渐变调整
3分别创建两个图形元件,命名为“back”和“9”。简单绘制扑克牌“9”的正反面,注册点在中心
位置且大小必需相同,如下图15- 3所示。
图15-3 扑克牌正反面
创建的扑克牌“9”的正反面分别放置于第1、2帧处正中心位置,如下图15-4所示。
图15-4 创建“Card”对象
5创建文档类Main类,如图3-所示,首先创建一个牌的容器“container”,并将其放置于舞台中心
位置,如构造函数第20到23行代码所示,然后创建扑克牌容器对象并添加到容器“container”中,如第
25、26行代码所示,并将扑克牌容器对象停止播放也就是停留在第1帧、启动按钮模式和注册侦听器
函数,如第27到29行代码所示。
package
import .*;
import .*;
import ;
* @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=;
container.y=;
addChildcontainer;
pane = new Card;
, onClick;
6当扑克牌容器对象被单击时调用onClick侦听器函数,为stage注册事件侦听来控制何时切换为正面
或是反面,通过判断变量isback 来重新设置被单击扑克牌的rotationY属性,如第36到44行代码所示,
在第38、42行代码,通过Tweener 来切换扑克牌的rotationY值在0与-180度之间,如下原理图15-5 所示
图15-5 文档类
private function onClickevent:MouseEvent:void
, enterFrameHandler;
currentPlane = ;
if isback
, rotationY:0,time:1 ;
, z:0,time:1 ;
, rotationY:-180,time:1 ;
, z:-200,time:1 ;
isback = ! isback;
private function enterFrameHandlerevent:Event:void
currentRotationY = ;
if currentRotationY = -90 currentRotationY = 10
if isback
, enterFrameHandler;
trace"已清除事件侦听";
7 当用户单击扑克牌容器对象,在第34行代码中注册的侦听器后,执行侦听器函数enterFrameHandler ,
并通过时时判断扑克牌容器对象的rotationY的值来判断扑克牌容器对象要切换跳转到哪一帧,如第50到59行代
码所示,最后,清除无用的侦听器,如第57行代码所示。
8把onClick侦听器函数中第39、43两行代码放开,发布测试,当用户单击扑克牌容器对象后,扑克
牌切换翻转并放大其实际是对象的z轴值减小,如下图3- 所示,当再次单击后,扑克牌切换翻转并
缩小致原始状态。