你是不是想找相關Flash動畫公司: 二維動畫公司 Flash課件制作 宣傳片制作 還是要找北京上海西安廣州南京的動畫制作公司

flash AS3.0實例教程:蹤跡效果

編輯:翼虎動漫          操作時間:2011/1/15

先看效果:
/UploadFiles/2011115151540862.swf

詳細代碼:

/**

*Flash CS4 ActionScript 3.0

*這里呈現粒子基本技術的一個動畫實例。當它到處移動時,運動的粒子在它后面

*留下了一個彗星的痕跡。這是因為粒子正在繪制到從不被抹掉的一個位圖。

*濾鏡應用到位圖導致舊的圖像慢慢地褪色離開,新的圖像在頂端上繪制。

*/

package {

        import flash.display.Sprite;

        import flash.display.Bitmap;

        import flash.display.BitmapData;

        import flash.events.Event;

        import flash.geom.Point;

        import flash.filters.BlurFilter;

        import flash.geom.ColorTransform;

        import flash.display.Shape;

    

        [SWF(width = "420", height = "320", backgroundColor = "0xffffff", frameRate = "30")];

        public class Main extends Sprite {

                private var particle:Sprite;

                private var bitmapData:BitmapData;

                private var bitmap:Bitmap;

                private var velX:Number;

                private var velY:Number;

                private var radius:Number;

                private var displayWidth:Number;

                private var displayHeight:Number;

                private var display:Sprite;

                private var origin:Point;

                private var blur:BlurFilter;

                private var colorTransform1:ColorTransform;

                private var colorTransform2:ColorTransform;

                private var randomAccel:Number;

                private var maxVelX:Number;

                private var maxVelY:Number;

                private var margin:Number;

                public function Main():void {

                        init();

                }

                private function init():void {

                        radius = 5;

                        margin = radius + 2;



                        particle = new Sprite();

                        particle.graphics.lineStyle(2,0xffffff);

                        particle.graphics.beginFill(0xffffff,0.5);

                        particle.graphics.drawEllipse(-radius,-radius,2 * radius,2 * radius);

                        particle.graphics.endFill();

                        //設定一個開始的位置

                        particle.x = 50;

                        particle.y = 40;

                        display = new Sprite();

                        display.addChild(particle);



                        //運動的參數

                        velX = 1;

                        velY = 1.3;

                        randomAccel = 0.3;

                        maxVelX = 6;

                        maxVelY = 6;



                        //位圖的大小:

                        displayWidth = 400;

                        displayHeight = 300;



                        //見到的位圖:

                        bitmapData = new BitmapData(displayWidth,displayHeight,true,0x00000000);

                        bitmap = new Bitmap(bitmapData);



                        //繪制邊框

                        var frame:Shape = new Shape();

                        frame.graphics.lineStyle(1,0x333333);

                        frame.graphics.drawRect(-0.5,-0.5,displayWidth + 1,displayHeight + 1);



                        //BlurFilter濾鏡

                        blur = new BlurFilter(4,4);

                        colorTransform1 = new ColorTransform(0.999,0.95,0.9,1);

                        origin = new Point(0,0);



                        /*

                        這里是顏色變換改為那一個在上面。它應用透明度衰減和顏色變化。改變代                                                     碼在 onEnter 結束的時候動作,以便改為使用 colorTransform 2 。

                        */

                        colorTransform2 = new ColorTransform(0.999,0.95,0.9,0.999);



                        bitmap.x = frame.x = 10;

                        bitmap.y = frame.y = 10;

                        this.addChild(bitmap);

                        this.addChild(frame);



                        this.addEventListener(Event.ENTER_FRAME, onEnter);





                }

                function onEnter(evt:Event):void {

        

            //隨機的加速。

            velX += randomAccel*(2 * Math.random()-1);

            velY += randomAccel*(2 * Math.random()-1);

        

            //

            if (velX > maxVelX) {

                   velX = maxVelX;

             }

        

             else if (velX < -maxVelX){

                   velX = -maxVelX;

             }

              if (velY > maxVelY) {

                    velY = maxVelY;

             }

            else if (velY < -maxVelY) {

                velY = -maxVelY;

            }

        

            // 移動粒子以及反彈粒子

            

            particle.x += velX;

            if (particle.x < margin) {

                particle.x = margin;

                velX *= -1;

            }

            else if (particle.x > displayWidth - margin) {

                  particle.x = displayWidth - margin;

                    velX *= -1;

            }

        

            particle.y += velY;

              if (particle.y < margin) {

                     particle.y = margin;

                     velY *= -1;

            }

            else if (particle.y > displayHeight - margin) {

                particle.y = displayHeight - margin;

                velY *= -1;

            }

        

            //在繪制新的圖像之前應用濾鏡到舊的圖像。

            //粒子留下的蹤跡從不抹掉,它僅僅逐漸地褪色離開。

            bitmapData.applyFilter(bitmapData,bitmapData.rect,origin,blur);

            bitmapData.colorTransform(bitmapData.rect, colorTransform1);

            bitmapData.draw(display);

        

        }

    }

}
版權申明 ┊ 業務范圍 ┊ 加入我們  ┊ 聯系方式
翼虎動漫工作室承接各類Flash動畫制作 翼虎口號做客戶滿意的flash訂單!!!
地址:上海市青浦區崧澤大道6066號19號樓二樓(整層) 全國免費咨詢熱線:400 804 9112
我們的業務還包括制作各式公交動畫廣告地鐵動畫廣告電視動畫廣告以及多媒體設計與制作
友情鏈接: 北京三維動畫公司 二維動畫制作 Flash動畫制作 北京動畫制作公司 動畫制作公司 蘇ICP備19008057號
广西快乐十分走势图今天