• 矩阵烟花


                                                                         矩阵烟花

    package

    {

            import flash.display.Sprite;

      import flash.events.MouseEvent;

      import flash.events.Event;

      import flash.display.Bitmap;

      import flash.display.BitmapData;

      import flash.geom.ColorTransform;

      import flash.filters.BlurFilter;

      import flash.geom.Point;

      [SWF(width="500",height="450")]

        public class MyColorPicker extends Sprite

            {

                    private var pixelNum:int = 500;

                    private var bm:Bitmap;

                    private var bmd:BitmapData;

                    private var container:Sprite;

                    private var pixelList:Array = new Array();

                    private var gravity:Number = 0.1;

                    private var ctf:ColorTransform = new ColorTransform(0.9, 0.96, 0.96);

                    private var bf:BlurFilter = new BlurFilter(6, 6, 2);               

                    public function MyColorPicker()

                    {

                            init();

                    }               

                    private function init():void

                        {

                            container = new Sprite();

                            container.x = 50;

                            container.y = 0;

                            addChild(container);

                            bmd = new BitmapData(400,400,true,0xff000000);

                            bm = new Bitmap( bmd );

                            container.addChild( bm );

                            container.addEventListener(MouseEvent.CLICK, onClick);

                    }

                    private function onClick(event:MouseEvent):void

                         {

                            fire(container.mouseX, container.mouseY);

                    }

                    private function fire( toX:Number, toY:Number ):void

                    {

                            for( var i:int=0; i<pixelNum; i++)

                            {  

                                   var vo:PixelVO = new PixelVO();

                                    vo.xpos = toX;

                                    vo.ypos = toY;

                                    vo.speedX = 2 - Math.random() * 4;

                                    vo.speedY = 1 - Math.random() * 4;

                                    pixelList.push(vo);

                            }

                            if( !this.hasEventListener(Event.ENTER_FRAME) )

                            {

                                    this.addEventListener(Event.ENTER_FRAME, onEF);

                            }

                    }               

                    private function onEF(event:Event):void

                      {

                           bmd.lock();

                          bmd.colorTransform( bmd.rect, ctf );

                          bmd.applyFilter(bmd, bmd.rect, new Point(), bf);

                            for ( var i:int=0; i<pixelList.length; i++ )

                            {

                                    var item:PixelVO = pixelList[i] as PixelVO;

                                    item.xpos += item.speedX;

                                    item.ypos += item.speedY;

                                    item.speedY += gravity;

                                    bmd.setPixel( item.xpos, item.ypos, 0xffffff );

                                    if( item.ypos > 400 ){

                                            pixelList.splice( i, 1 );

                                            i--;

                                            item = null;

                                    }

                            }

                            bmd.unlock()

                    }  

     }

    }

    ——————————————————————————————————————————————————————————————————————————

    package

    {

            public class PixelVO

            {

                    public var xpos:Number;

                    public var ypos:Number;

                    public var speedX:Number;

                    public var speedY:Number;

                   

            }

    }

  • 相关阅读:
    “我爱淘”冲刺阶段Scrum站立会议1
    《大道至简》阅读笔记3
    冲刺阶段站立会议每天任务3
    冲刺阶段站立会议每天任务2
    冲刺阶段站立会议每天任务1
    cnblogs体验
    《软件工程-理论、方法与实践》读书笔记三
    《软件工程-理论、方法与实践》读书笔记二
    《软件工程-理论、方法与实践》读书笔记一
    典型用户 persona
  • 原文地址:https://www.cnblogs.com/klh5211314/p/2754264.html
Copyright © 2020-2023  润新知