利用MovieClip对象的rotationY属性实现翻转动画效果

利用MovieClip对象的rotationY属性实现翻转动画效果

    最近用AS3代码实现了一套动画效果,做个记录备忘。

需求

实现模拟洗牌、翻扑克牌的效果。总共有4种牌,牌的数量不固定,每次操作把牌都背扣在桌面,模拟洗牌。洗牌结束后,用户用鼠标点击一张牌后,播放翻牌的动画(以牌的Y轴为轴旋转),显示牌的内容(这个过程需要和服务器通信得到牌的种类)。

翻转动画实现过程

    1:制作牌的MovieClip资源。将每种牌的正面和背面图片做成这个MC的1-5帧。
    2:点击牌后启动一个timer,这个timer已经监听了TimerEvent.TIMER事件,每次计时完成都会执行一个方法FlipFun,在FlipFun中做这样的事情:
    (1)rotationY自增1;
    (2)判断rotationY大于90度后(此时牌和屏幕是垂直状态),通过gotoAndStop方法控制MC播放的帧数实现显示牌的正面;如果rotationY等于180度,此时牌已经完全翻转过来,正面面向屏幕,这时停止计时,善后。
    3:扣牌动画类似2的操作。

 遇到的问题

1:MC的对齐点的问题。需要改到牌的x坐标中央(修改这个同时也要修改牌的位置摆放代码)。
2:MC的透视属性问题。需要修改默认属性,否则所有的3D属性操作其投影中心(消失点)都在舞台中央,如果MC恰巧(其实是一定)不在舞台的中央,透视效果都会和预期的出现偏差。这里是这样设置MC的透视属性的:
var perspective:PerspectiveProjection = 
this.transform.perspectiveProjection ? this.transform.perspectiveProjection : new PerspectiveProjection();
// 这句设置其投影中心为牌的正中央(由于MC对齐点的问题,x坐标就是牌的x坐标中央)
perspective.projectionCenter = new Point(((this.x)), ((this.y+this.height)/2));
this.transform.perspectiveProjection = perspective;




注:this即MC
参考资源:
http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/flash/geom/PerspectiveProjection.html
http://bbs.9ria.com/forum.php?mod=viewthread&tid=120073&page=1#pid1188198
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值