About

<#TEMPLATE_INCLUDE_NINEPAGE_ABOUTME#>
  • Sep

    8

    Starling 自带的 Tween vs. TweenLite

    • 0 Comments
    • Flash Platform

    测试结果 TweenLite 略高于 Starling 自带的 Tween 补间类,在 Y460 笔记本上生成 3000 个对象同时运动,TweenLite 稳定时在 17 fps左右,而 Tween + juggler 只有 14 fps左右。

    package
    {
        import com.greensock.TweenLite;

        import flash.display.BitmapData;
        import flash.geom.Rectangle;

        import starling.animation.Transitions;
        import starling.animation.Tween;
        import starling.core.Starling;
        import starling.display.Image;
        import starling.display.Sprite;
        import starling.textures.Texture;

        public class StarlingMain extends Sprite
        {
            public function StarlingMain()
            {
                super();
                var bm:BitmapData = new BitmapData(1010, false,0 );
                    bm.fillRect(new Rectangle(1188), 0xFF0000);

                var t:Texture = Texture.fromBitmapData(bm);
                var n:Image;

                for (var i:int = 0 ; i <= 3000 ; i++ ) {
                    n = new Image(t);
                    addChild(n);

                    tweenStarling(n)//Starling Tween 测试
                    //tweenGreenSock(n); // Greensock TweenLite 测试
                }    
            }

            private function tweenStarling( obj:Image ):void {
                var tw:Tween = new Tween(obj, 1+(Math.random()*3), Transitions.EASE_OUT );
                tw.moveTo( Math.random() * 480 , Math.random() * 762);
                tw.onComplete = tweenStarling;
                tw.onCompleteArgs = [obj];
                Starling.current.juggler.add(tw);
            }

            private function tweenGreenSock( obj:Image ):void {
                var tw:TweenLite = new TweenLite(obj, 1 + (Math.random() * 3) , {
                    x:Math.random() * 480 ,
                    y: Math.random() * 762 ,
                    onComplete:tweenGreenSock ,
                    onCompleteParams:[obj]
                } );
            }
        }
    }