About

<#TEMPLATE_INCLUDE_NINEPAGE_ABOUTME#>
  • Dec

    18

    starling 库 Sprite3D 翻转动画

    • 0 Comments
    • Flash Platform

    用starling做 3D 翻转/旋转效果就是这么简单:

    //样例主代码,以Y轴旋转为例(其它代码都省了)
    var sprite3d: Sprite3D = new Sprite3D();
    sprite3d.addChild(frontImage)//frontImage是一个starling Image对象
    sprite3d.addChild(backImage)//backImage是一个starling Image对象

    sprite3d.x = 300;
    sprite3d.y = 300;
    sprite3d.pivotY = sprite3d.height / 2//让它沿着容器的中间旋转
    sprite3d.pivotX = sprite3d.width / 2;

    addChild(sprite3d);

    //为了偷懒直接用了TweenLite类,否则要添加侦听器,再加Juggler神马神马的很烦人
    TweenLite.to(sprite3d, 2
    {
        rotationY: Math.PI,
        onUpdate: onUpdateHandler,
        onUpdateParams: [sprite3d]
    });

    var vector3D: Vector3D = new Vector3D();

    function onUpdateHandler(_sprite3d: Sprite3D): void 
    {
        vector3D = stage.getCameraPosition(_sprite3d);
        //设置平面图片在旋转时的可见性
        frontImage.visible = vector3D.z > 0;
        backImage.visible = !frontImage.visible;
    }