package
{
import flash.display.Sprite;
import flash.display.*
import flash.events.Event;
import flash.filters.DisplacementMapFilter;
import flash.geom.*
/**
* @author:Frost.Yen
* @E-mail:871979853@qq.com
* @create: 2016-6-28 下午3:37:51
*
*/
[SWF(width="1024",height="768")]
public class FireEffect extends Sprite
{
private var bmd:BitmapData;
private var target:Sprite = createSharp(400, 30,0);
private var speed:Number = Math.random() * 4 + 4;
private var strengh:Number = Math.random() * 60 + 60;
private var size:Number = Math.random() * 17 + 20;
private var randomseed:Number = Math.floor(Math.random() * 10);
private var offset:Point = new Point();
private var v:Point;
private var w:Number = 50;
public function FireEffect()
{
addChild(target);
addTo(target);
target.x = 0;
target.y = 200;
}
private function createSharp(width:Number,height:Number,angle:Number):Sprite {
var s:Sprite = new Sprite();
s.graphics.beginFill(0, 0);
s.graphics.drawRect( -w, -w, width + 2 * w, w);
s.graphics.beginFill(0xffffff);
s.graphics.drawRect( -w, height, width + 2 * w, w);
var fillType:String = GradientType.LINEAR;
var colors:Array = [0x900000, 0x900000,0xff9900,0xfffd8a,0xffffff];
var alphas:Array = [0,1,1,1, 1];
var ratios:Array = [0x00,0xff/16,0xff*2/6,0xff*2/3, 0xFF];
var matr:Matrix = new Matrix();
matr.createGradientBox(width, height, Math.PI / 2);
var spreadMethod:String = SpreadMethod.PAD;
s.graphics.beginGradientFill(fillType, colors, alphas, ratios, matr, spreadMethod);
s.graphics.drawRect(0, 0, width, height);
return s;
}
public function addTo(target:Object):void {
bmd = new BitmapData(target.width, target.height);
v = new Point(Math.random() * (speed / 4) - speed / 8,Math.random() * (speed / 4) + speed / 4 * 3);
target.addEventListener(Event.ENTER_FRAME, update);
}
private function update(e:Event):void {
target.filters = [new DisplacementMapFilter(bmd, new Point(), BitmapDataChannel.RED,BitmapDataChannel.RED, 10, strengh, "clamp")];
offset=offset.add(v);
bmd.perlinNoise(size / 2, size, 3, randomseed, false, true, 1, true, [offset, offset]);
}
}
}

[ActionScript 3.0] AS3.0 火焰效果的更多相关文章

  1. [ActionScript 3.0] AS3.0和AS2.0的相互通信

    AS3和AS2之间的通信,最好的方式可能就是LocalConnection了. AS2向AS3发送数据,即AS2调用AS3的函数: as2.0代码(按钮上写的发送信息代码): on (release) ...

  2. [ActionScript 3.0] AS3.0 让一个视频无缝循环播放的一个偏方

    一个视频要循环播放,通常的办法都是播放完后再重新播放,但是不可避免的播放结束和重新开始播放这个时间点上会有停顿,如何解决这个问题,说个偏方吧! package com.views { import f ...

  3. [ActionScript 3.0] AS3.0 下雨及涟漪效果

    帧代码: stage.frameRate = 80; function init(x1:Number,y1:Number) { var mc:MovieClip=new MovieClip(); ad ...

  4. [ActionScript 3.0] AS3.0 本机鼠标指针

    Flash Player 10.2添加了内置的本机鼠标指针(native mouse cursor)支持,虽然在之前的版本里我们可以侦听MouseEvent事件来模拟鼠标指针,但是在有了原生的本机鼠标 ...

  5. [ActionScript 3.0] AS3.0 动态加载显示内容

    可以将下列任何外部显示资源加载到 ActionScript 3.0 应用程序中: 在 ActionScript 3.0 中创作的 SWF 文件 — 此文件可以是 Sprite.MovieClip 或扩 ...

  6. [ActionScript 3.0] AS3.0 涂鸦及擦除功能,撤销重做步骤记录实例

    package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BlendMo ...

  7. [ActionScript 3.0] AS3.0 简单封装Socket的通信

    Socket服务器 package com.controls.socket { import com.models.events.AppEvent; import com.models.events. ...

  8. [ActionScript 3.0] AS3.0 Socket通信实例

    以下类是充当Socket服务器的例子 package { import flash.display.Sprite; import flash.events.Event; import flash.ev ...

  9. [ActionScript 3.0] AS3.0 对象在矩形范围随机运动

    package com.views { import flash.display.Bitmap; import flash.display.MovieClip; import flash.displa ...

随机推荐

  1. SQL语句---nvl 用法

    SQL语句---nvl 用法   一NVL函数是一个空值转换函数 NVL(表达式1,表达式2) 如果表达式1为空值,NVL返回值为表达式2的值,否则返回表达式1的值. 该函数的目的是把一个空值(nul ...

  2. Gridview布局界面练习Base Adapter

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZcAAAJVCAIAAACdzC94AAAgAElEQVR4nOy953Ij2bGuLTVJmFrelf

  3. stage simulator

    ---恢复内容开始--- 运行自带地图 rosrun stage_ros stageros /opt/ros/indigo/share/stage_ros/world/willow-erratic.w ...

  4. ROS 使用自带和usb摄像头获取图像

    笔记本自带的摄像头的设备号一般为/dev/video0 第一步:安装Webcam 驱动 $ sudo apt-get install git-core $ cd ~/catkin_ws/src $ g ...

  5. Linux 编写c++程序之openssl

    在使用openssl 库前,需检测是否安装openssl , shell 窗口输入:openssl version  , 在openssl 安装完成之后, 可通过vi 编写测试代码 . 本例中附上加密 ...

  6. C#学习笔记----枚举、结构、方法及构造函数的总结

    一.枚举 语法: [public] enum 枚举名 { 值1, 值2, 值3, ........ } public:访问修饰符.公开的公共的,哪都可以访问. enum:关键字,声明枚举的关键字 枚举 ...

  7. Jmeter—4 添加断言 判断响应数据是否符合预期

    发出请求之后,通过添加断言可以判断响应数据是否是我们的预期结果. 1 在Jmeter中发送一个登录的http请求(参数故意输入错误).结果肯定是登陆失败啦. 但结果树中http请求的图标显示‘绿色’表 ...

  8. SQL取行最大值

    create table T(A decimal(10,1), B decimal(10,1), C decimal(10,1), D decimal(10,1), E decimal(10,1)) ...

  9. 12-8 php基础

    <?php //单行注释/* 多行注释*/ //弱类型语言//var a = 10;/*$a=10;$b = "hello";var_dump($a);$a="wo ...

  10. Array.prototype.indexOf

    arr.indexOf(searchElement[, fromIndex = 0]) Array.prototype.indexOf()