1. package
  2. {
  3. import com.tweener.transitions.Tweener;
  4.  
  5. import flash.display.Bitmap;
  6. import flash.display.BitmapData;
  7. import flash.display.Sprite;
  8. import flash.events.MouseEvent;
  9. import flash.geom.PerspectiveProjection;
  10. import flash.geom.Point;
  11. import flash.utils.getDefinitionByName;
  12. import flash.utils.setTimeout;
  13.  
  14. /**
  15. * @author Frost.Yen
  16. * @E-mail 871979853@qq.com
  17. * @create 2015-7-29 下午4:53:03
  18. *
  19. */
  20. [SWF(width="1024",height="768",backgroundColor = "0x000000")]
  21. public class FlipCard extends Sprite
  22. {
  23. [Embed(source="card.png")]
  24. private var _card:Class;
  25. [Embed(source="back.jpg")]
  26. private var _back:Class;
  27. public function FlipCard()
  28. {
  29. initViews();
  30. }
  31. private function initViews():void
  32. {
  33. var cardClass:Class = getDefinitionByName("FlipCard__card") as Class;
  34. var backClass:Class = getDefinitionByName("FlipCard__back") as Class;
  35. var cardBitmap:Bitmap = new cardClass();
  36. var backBitmap:Bitmap = new backClass();
  37.  
  38. for(var i:int = 0;i<18;i++){
  39. var card:Card = new Card();
  40. var backBmp:Bitmap = new Bitmap();
  41. var cardBmp:Bitmap = new Bitmap();
  42. var backBmpd:BitmapData = new BitmapData(backBitmap.width,backBitmap.height);
  43. var cardBmpd:BitmapData = new BitmapData(cardBitmap.width,cardBitmap.height);
  44. backBmpd.draw(backBitmap);
  45. cardBmpd.draw(cardBitmap);
  46. backBmp.bitmapData = backBmpd;
  47. cardBmp.bitmapData = cardBmpd;
  48. cardBmp.width = backBmp.width = 79;
  49. cardBmp.height = backBmp.height = 115;
  50. card.getCard(cardBmp,backBmp);
  51. card.x = 200 + i%6*110+79*0.5;
  52. card.y = 100 + Math.floor(i/6)*140+115*0.5;
  53. this.addChild(card);
  54. var perspective:PerspectiveProjection = new PerspectiveProjection();
  55. perspective.projectionCenter = new Point(card.x,card.y)
  56. card.transform.perspectiveProjection = perspective;
  57. }
  58. setTimeout(turnTheCard,1000*2);
  59. }
  60. private function onCardClick(e:MouseEvent):void
  61. {
  62. turnTween(e.currentTarget as Card);
  63. }
  64. private function turnTheCard():void
  65. {
  66. for(var i:int = 0;i<this.numChildren;i++){
  67. turnTween(this.getChildAt(i) as Card);
  68. this.getChildAt(i).addEventListener(MouseEvent.CLICK,onCardClick);
  69. }
  70. }
  71. private function turnTween(card:Card):void
  72. {
  73. Tweener.addTween(card,{rotationY:90,time:0.3,transition:"linear",onComplete:onComplete,onCompleteParams:[card]});
  74. function onComplete(obj:Card):void
  75. {
  76. obj.swapCard();
  77. Tweener.addTween(obj,{rotationY:180,time:0.3,transition:"linear",onComplete:function():void{obj.rotationY = 0;obj.setRotationY();}});
  78. }
  79. }
  80. }
  81. }
  82. import flash.display.Bitmap;
  83. import flash.display.Sprite;
  84.  
  85. class Card extends Sprite{
  86. private var _back:Sprite;
  87. private var _card:Sprite;
  88. private var _rotationY:Number;
  89. public function Card(){
  90. _back = new Sprite();
  91. _card = new Sprite();
  92. this.addChild(_back);
  93. this.addChild(_card);
  94. }
  95. public function getCard(card:Bitmap,back:Bitmap):void
  96. {
  97. card.x = back.x = -back.width*0.5;
  98. card.y = back.y = -back.height*0.5;
  99. _card.addChild(card);
  100. _back.addChild(back);
  101. }
  102.  
  103. public function swapCard():void
  104. {
  105. this.swapChildren(_card,_back);
  106. setRotationY();
  107. }
  108. public function setRotationY():void
  109. {
  110. if(this.rotationY == 90){
  111. _card.rotationY = _back.rotationY = 180;
  112. }else if(this.rotationY == 0){
  113. _card.rotationY = _back.rotationY = 0;
  114. }
  115. }
  116. }

[ActionScript 3.0] 翻牌效果,运用语法rotationY,PerspectiveProjection的更多相关文章

  1. [ActionScript 3.0] 喷泉效果

    pall为水珠影片剪辑 var count:int = 500; var zl:Number = 0.5; var balls:Array; balls = new Array(); for (var ...

  2. [ActionScript 3.0] 幻灯片效果实例

    package com.fylibs.components.effects { import com.fylibs.utils.LoaderQueues; import com.tweener.tra ...

  3. [ActionScript 3.0] 正则表达式

    正则表达式: 正则表达式最早是由数学家Stephen Kleene在对自然语言的递增研究成果的基础上,于1956提出来的.具有完整语法的正则表达式,主要使用在字符串的格式的匹配方面上,后来也逐渐应用到 ...

  4. ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调

    近期项目中可能要用到Flash存取数据,并与JS互调,所以就看了一下ActionScript 3.0,现把学习结果分享一下,希望对新手有帮助. 目录 ActionScript 3.0简介 Hello ...

  5. [转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调

    本文转自:http://www.cnblogs.com/artwl/p/3396330.html 近期项目中可能要用到Flash存取数据,并与JS互调,所以就看了一下ActionScript 3.0, ...

  6. css3之3D翻牌效果

      最近一直在学css3,发现他真的是越来越牛逼.现在的css3已经不在是以前的css了,它能做出的功能效果是我们没法想象的了.它可以实现flash,可以制作一些js能做出来的效果,还可以写出ps做出 ...

  7. Cocos2d-x实现简单的翻牌效果

    触发器互联网影响找了很多.有自己的点重写一个复杂的sprite类来实现.简单的操作来对引擎的使用CCOrbitCamera实现,但是,也存在一些问题,后变反了. 我在用的仅仅是一个简单的翻牌效果,点击 ...

  8. css3 翻牌效果

    <!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/h ...

  9. HTML5 CSS3专题 诱人的实例 CSS3打造百度贴吧的3D翻牌效果

    首先感谢w3cfuns的老师~ 今天给大家带来一个CSS3制作的翻牌效果,就是鼠标移到元素上,感觉可以看到元素背后的信息.大家如果制作考验记忆力的连连看.扑克类的游戏神马的,甚至给女朋友写一些话语,放 ...

随机推荐

  1. python's descriptor

    [python's descriptor] 1.实现了以下三个方法任意一个的,且作为成员变量存在的对象,就是descriptor. 1)object.__get__(self, instance, o ...

  2. SMTPSenderRefused: (530, ‘5.5.1 Authentication Required. Learn more at \n5.5.1

    在跟着<Flask Web开发:基于Python的Web应用开发实战>一书学习时,出现了以上错误提示. 问题出于第11章--博客文章.当运行 python manage.py runser ...

  3. windows系统mysql-5.7.19官方绿色版zip包安装教程

    环境: 系统环境 Windows 10 64位 mysql版本 5.7.19 一.万变不离的下载 下载页面:https://dev.mysql.com/downloads/mysql/ 点击 Down ...

  4. 高性能Web服务器Nginx的配置与部署研究(3)Nginx请求处理机制

    1. 处理什么样的请求 处理访问到 Nginx 所在 IP 地址的请求,并且这些请求的 HTTP 头信息中的 Host 为所要处理的域名(如下以80端口为例),如下几个 server 就对应响应的请求 ...

  5. c# ftp 判断目录是否存在和创建文件夹

    工作中项目一直使用的ftp上传日志文件出现了问题,新的服务器搭建好后,日志无法上传.正好来学习一下ftp. 程序中的流程是,一个计时器,每分钟检测配置文件中本地日志文件路径下有没有日志文件,如果有就上 ...

  6. PHP异常处理详解

      PHP异常处理详解 异常处理(又称为错误处理)功能提供了处理程序运行时出现的错误或异常情况的方法. 异常处理通常是防止未知错误产生所采取的处理措施.异常处理的好处是你不用再绞尽脑汁去考虑各种错误, ...

  7. Docker CE部署

    一.概述 Docker 在1.13版本之后,从2017年的3月1日开始,版本命名规则变为如下: 项目 说明 版本格式 YY.MM Stable 每个季度发行 Edge版本 每个月发行 同时Docker ...

  8. tomcat使用log4j管理日志

    1.JDK+tomcat环境  参考:http://www.cnblogs.com/zzzhfo/p/6444029.html 2.下载相关软件 log4j下载地址 http://www.apache ...

  9. 解决VirtualBox 上的XP 关机时重启 , 启动时蓝屏 ,点击电源选项蓝屏

    三个问题一次性解决. 启动时的蓝屏显示错误信息是: STOP 0x000000CE (...) DRIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATION ...

  10. Openssl rsautl命令

    一.简介 rsautl指令能够使用RSA算法签名,验证身份,加密/解密数据 二.语法 openssl rsautl [-in file] [-out file] [-inkey file] [-pas ...