正反双面的本质: 两个照片/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");
}
}