`
wsliujian
  • 浏览: 96620 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

flash player10的rotationY的使用

阅读更多
flash player10提供了对3D的支持,虽然功能不够强大,但是有些功能还是很不错的,下面是用10写的一个翻牌游戏。
public class Card extends Sprite
{
[Embed(source='../../../lib/goodbyewow02.jpg')]
private var FrontFace:Class;

[Embed(source='../../../lib/goodbyewow04.jpg')]
private var BackFace:Class;

private var fFace:Sprite;
private var bFace:Sprite;
private var cleanObj:Sprite;
private var dirtyObj:Sprite;

public function Card()
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}

private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point

var frontBg:DisplayObject = new FrontFace();
var backBg:DisplayObject = new BackFace();
frontBg.x = backBg.x = - frontBg.width / 2; frontBg.y = backBg.y = - frontBg.height / 2; fFace = new Sprite();
bFace = new Sprite();
fFace.addChild(frontBg);
bFace.addChild(backBg);
//背面需要额外处理一下,
//翻转过来,并且暂时隐藏
bFace.scaleX *= -1;
bFace.visible = false;
bFace.buttonMode = fFace.buttonMode = true;

//测试的文字
var testTF:TextField = new TextField();
testTF.width = 400;
testTF.height = 200;
testTF.textColor = 0xFFFFFF;
testTF.htmlText = "我的文字描述";          testTF.appendText(testTF.text);
testTF.selectable = true;
testTF.multiline = true;
testTF.wordWrap = true;
testTF.x = frontBg.x + 10;
testTF.y = frontBg.y + 200;
testTF.type = TextFieldType.INPUT;
fFace.addChild(testTF);

cleanObj = new Sprite();
dirtyObj = new Sprite();

dirtyObj.addChild(fFace);
dirtyObj.addChild(bFace);
addChild(dirtyObj);
addChild(cleanObj);

addEventListener(MouseEvent.CLICK, clickHandler);

}
private function clickHandler(e:MouseEvent = null):void
{
// 修改文字时不动
if (e.target is TextField) return;

if (e.target == fFace || e.target.parent == fFace)
{
// flip to back
dirty();
TweenLite.killTweensOf(dirtyObj); TweenLite.to( dirtyObj, 1, {
rotationY:180,ease: Back.easeOut,
onComplete: cleanBackFace,
onUpdate: update} );
} else if (e.target == bFace || e.target.parent == bFace) {
dirty();
TweenLite.killTweensOf(dirtyObj);
TweenLite.to( dirtyObj, 1, {
rotationY:0,
ease: Back.easeOut,
onComplete: cleanFrontFace,
onUpdate: update
} );
}
}
private function update():void
{
bFace.visible = dirtyObj.rotationY > 90 && dirtyObj.rotationY < 270;
fFace.visible = !bFace.visible;
}
private function cleanFrontFace():void
{
if (dirtyObj.contains(fFace))
{
  dirtyObj.removeChild(fFace);             cleanObj.addChild(fFace);
}
}
private function cleanBackFace():void
{
if (dirtyObj.contains(bFace))
{            dirtyObj.removeChild(bFace);
cleanObj.addChild(bFace);
bFace.scaleX *= -1;
}
}
private function dirty():void
{
if (cleanObj.contains(fFace) || cleanObj.contains(bFace))
{
var face:DisplayObject = cleanObj.getChildAt(0);
cleanObj.removeChild(face);
dirtyObj.addChild(face);
if (face == fFace)
{
dirtyObj.swapChildren(face, bFace);
} else {
bFace.scaleX *= -1;
}
}
      }
}
同时如果在mc中有动态文本,和图片,哪么在选择rotationY后,就会变的模糊,解决的办法是在他停止的时候删除后在重新添加。
http://www.webdesign-cn.com
http://www.levs.cn
分享到:
评论

相关推荐

    flash as3 pv3d实现的魔方效果源文件

    PV3D通过利用硬件加速,提高了在Flash Player中的3D性能。 在"flash as3 pv3d实现的魔方效果源文件"中,我们重点关注的核心技术有: 1. **3D对象建模**:魔方是由多个立方体组成的,每个立方体在3D空间中都有自己...

    flash 三维展示源文件

    ActionScript 3是Flash Player支持的脚本语言,相较于之前的版本,AS3具有更严格的类型检查、更高的性能以及更好的面向对象编程特性。在这个项目中,开发者通过AS3编写代码,实现了图片的三维展示效果,这包括图片的...

    3D效果的as3源码

    ActionScript 3是Adobe Flash Professional和Flash Player支持的一种编程语言,它以其强大的性能和面向对象的特性,为开发人员提供了丰富的功能。在AS3中实现3D效果,主要是通过Stage3D API来完成的。Stage3D是Flash...

    rotate.zip旋转登录框,实现3d效果,flex

    1. **Flex框架**:Flex是由Adobe公司开发的开源框架,基于ActionScript 3.0和Flash Player或Adobe AIR运行时环境。它提供了丰富的组件库,用于创建交互式、动态的Web应用,支持XML、CSS、AS3等技术。 2. **Flex布局...

    spark下_3D旋转

    1. **Spark组件**:Spark是Adobe Flex中的一个UI组件集,相比Flash Player时代的MX组件,Spark组件更注重性能和可定制性。在Spark组件中实现3D旋转,需要利用其强大的渲染引擎和事件处理机制。 2. **3D旋转原理**:...

    papervision3d 中的坐标(1)--坐标系

    在3D图形编程领域,PaperVision3D是一个广泛使用的开源ActionScript库,它允许开发者在Adobe Flash Player中创建丰富的3D交互式体验。本篇主要探讨的是PaperVision3D中的坐标系统,它是理解3D场景构建的基础。 首先...

    Minko3d 灯光学习

    Minko3D是一个开源的2D和3D图形渲染引擎,基于Adobe Flash Player和HTML5的WebGL技术。它提供了一套完整的工具和API,用于创建交互式3D应用程序。在这个特定的例子中,我们将使用Minko3D来创建一个3D游戏场景,并在...

    如何把Papervision3d物体加到 flex项目中(附 旋转圆球例子)

    Papervision3D是一个强大的开源库,用于在Adobe Flash Player环境中构建三维(3D)图形。而Flex则是一种基于ActionScript 3.0的开发框架,用于构建富互联网应用程序(RIA)。将两者结合,可以创建具有高级3D视觉效果...

Global site tag (gtag.js) - Google Analytics