发新话题
打印

[Flash] 简单的火焰效果 及图示原理

简单的火焰效果 及图示原理

原理:
1 获取整个舞台的BitmapData数据,放到__bm(声明的 BitmapData())里,
2 对__bm进行 BlurFilter  和 ColorMatrixFilter(可选 只是处理颜色) 处理,
3 在enterframe事件里 不断的重复步骤1,2。

//========================   code   ========================
package{
   
import flash.display.*;
import flash.ui.Mouse;
import flash.events.*;
import flash.filters.* ;
import flash.geom.*;
public class main extends Sprite{
   private var __bmd:BitmapData;
   private var __bm:Bitmap;
   private var __bf:BlurFilter;
   private var __asfox_mc:MovieClip;
   private var __cmf:ColorMatrixFilter;
   public function main(){
    __init();
    __initEvt();
  }
private function __init():void{
     stage.frameRate = 35;
           Mouse.hide();
     __bmd= new BitmapData(550,400,true,0x000000)
           __bm=new Bitmap(__bmd);
           addChild(__bm);
     
           __bf=new BlurFilter(7,10,3)
           __asfox_mc=new asfox();
           __asfox_mc.scaleX =0.4
           __asfox_mc.scaleY =0.4
           addChild(__asfox_mc);
     
     __cmf=new ColorMatrixFilter([1,0,0,0,0,
          0,1,0,0,0,
          0,0,1,0,0,
          0,0,0,0.8,0]);
   }
   private function __initEvt():void{
    stage.addEventListener(MouseEvent.MOUSE_MOVE, __onMouseMove);
       addEventListener(Event.ENTER_FRAME, __loop);
   }
   
   private  function __loop(evt:Event):void{

   __bmd.draw(this);
   __bmd.applyFilter(__bmd,__bmd.rect,new Point(0,0),__bf);
   __bmd.applyFilter(__bmd,__bmd.rect,new Point(0,0),__cmf);
   __bmd.scroll(0,-6);
   }
    private function __onMouseMove(evt:MouseEvent):void{
     __asfox_mc.x=evt.stageX
     __asfox_mc.y=evt.stageY
    }
}
}

[ 本帖最后由 totem_nee 于 2008-2-5 12:08 编辑 ]

附件

flame.swf (3.1 KB)

2008-2-5 12:08, 下载次数: 293

asfox.blogbus.com
基于SFS的flash网游及应用基础知识

TOP

帮顶一下

TOP

没明白 继续学习

TOP

TOP

谢谢楼主!

TOP

如何知道自己应该导入哪一类包呢

如何知道自己应该导入哪一类包呢  Flash cs3有没这类的帮助软件呢...要怎么才知道自己用到那种了呢?

TOP

一些改进与说明.

首先感谢作者的分享,不过在本人的调试过程中出了一些问题,以下是改正后的.希望大家一起讨论.
package{
   
import flash.display.*;
import flash.ui.Mouse;
import flash.events.*;
import flash.filters.* ;
import flash.geom.*;
public class main extends Sprite{
   private var __bmd:BitmapData;
   private var __bm:Bitmap;
   private var __bmd2:BitmapData;
   private var __bm2:Bitmap;
   private var __bf:BlurFilter;
   private var __asfox_mc:MovieClip;
   private var __cmf:ColorMatrixFilter;
   public function main(){
    __init();
    __initEvt();
  }
private function __init():void{
     stage.frameRate = 35;
           Mouse.hide();
     __bmd= new BitmapData(550,400,false,0x000000)
//原来是"__bmd= new BitmapData(550,400,true,0x000000)"相当于把图像设置为透明,效果有出入,本人改为false后成功.
           __bm=new Bitmap(__bmd);
           addChild(__bm);
     
           __bf=new BlurFilter(7,10,3)
           __asfox_mc=new MovieClip();//原来是这样的"__asfox_mc=new asfox();",没有发现这样的类,所以应该是一个影片,
                   //__bmd2=new BitmapData(20,20,false,0xff0000);
                   //__bm2=new Bitmap(__bmd2);
                   //__asfox_mc.addChild(__bm2);
                   __asfox_mc.graphics.beginFill(0xFF0000, 1);//为影片添加图像.
                   __asfox_mc.graphics.drawRect(0,0,50,50);
                   __asfox_mc.graphics.endFill();
           __asfox_mc.scaleX =0.4
           __asfox_mc.scaleY =0.4
           addChild(__asfox_mc);
     
     __cmf=new ColorMatrixFilter([1,0,0,0,0,
          0,1,0,0,0,
          0,0,1,0,0,
          0,0,0,0.8,0]);
   }
   private function __initEvt():void{
    stage.addEventListener(MouseEvent.MOUSE_MOVE, __onMouseMove);
       addEventListener(Event.ENTER_FRAME, __loop);
   }
   
   private  function __loop(evt:Event):void{

   __bmd.draw(this);
   __bmd.applyFilter(__bmd,__bmd.rect,new Point(0,0),__bf);
   __bmd.applyFilter(__bmd,__bmd.rect,new Point(0,0),__cmf);
   __bmd.scroll(0,-6);
   }
    private function __onMouseMove(evt:MouseEvent):void{
     __asfox_mc.x=evt.stageX
     __asfox_mc.y=evt.stageY
    }
}
}

TOP

看不懂

TOP

game gold

Buy Online Game Currency From our sites. Professional Game Gold Store, Fast delivery.
maplestory mesos
wow gold
lotro gold
maple story
runescape gold

TOP

谢谢`

TOP

TOP

没明白 继续学习

没明白 继续学习

TOP

看不到.~~~~

TOP

顶顶顶顶

TOP

学习下

TOP

不是很懂 看来我还要修炼

TOP

很难明白

TOP

TOP

TOP

发新话题