旋转时正反双面的实现

来源:互联网 发布:java程序设计基础教程 编辑:程序博客网 时间:2024/05/01 00:12

 

正反双面的本质: 两个照片/MC放在一起,坐标和宽度都一样!只是通过深度索引关系,来显示正面为其中的一张.

 

demo : http://3556.8b8b.info/swf/BothSides.swf

 

下面是最原始的代码:

 

 

import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.MouseEvent;

//Card1 Card是两个影片剪辑MC
var card1 :MovieClip= new Card1();// front
var card2 :MovieClip= new Card2();//back
var back:Sprite= new Sprite();//它主要用来改变下方位,不要它的话,反面的图片将会是倒置的.
back.name="cardBack";
card1.name = "cardFront";
card1.width = 300;
card1.height = 200;
card1.x =  -  card1.width / 2;
card1.y =  -  card1.height / 2;

card2.width = 300;
card2.height = 200;
card2.x =0//  -  card2.width / 2;
card2.y =card2.height//  -  card2.height / 2;
card2.rotationX=180
back.addChild(card2);
back.x= -  card2.width / 2;
back.y=-  card2.height / 2;


var container:Sprite= new Sprite();
container.x = 250;
container.y = 250;
this.addChild(container);
container.addChild(back);

container.addChild(card1);

//下面开始旋转container;
stage.addEventListener(MouseEvent.CLICK,onClick,false,1,true);
function onClick(e:MouseEvent=null)
{
 
container.rotationX +=  10;
container.rotationX=container.rotationX%360;

 trace("旋转角度为:"+container.rotationX);

 
 if(container.rotationX<270&&container.rotationX>=90) //这里不能写连等式
 {
  if(!container.getChildByName("cardBack")){
   container.addChild(back);
   }
  trace("back");
  if (container.getChildByName("cardFront"))
  {
   container.removeChild(card1);
  }

 }
 
 //if (container.rotationX<90&&container.rotationX>=0)
 else
 {
  if(!container.getChildByName("cardFront")){
   container.addChild(card1);
   }
 
  if (container.getChildByName("cardBack"))
  {
   container.removeChild(back);
  }
  trace("front");
 }


 
}

 

原创粉丝点击