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. iOS开发UI篇—无限轮播(循环展示)

    iOS开发UI篇—无限轮播(循环展示) 一.简单说明 之前的程序还存在一个问题,那就是不能循环展示,因为plist文件中只有五个数组,因此第一个和最后一个之后就没有了,下面介绍处理这种循环展示问题的小 ...

  2. Codeforces Round #370 (Div. 2) E. Memory and Casinos 线段树

    E. Memory and Casinos 题目连接: http://codeforces.com/contest/712/problem/E Description There are n casi ...

  3. Zabbix汉化方法

    1.windows下选择一个汉化字体包 2.拷贝到linux字体目录下 [root@www Desktop]# cd /var/www/html/zabbix/fonts/[root@www font ...

  4. 烟草公司基于BPM的IT一体化变革

    广州烟草有限公司隶属于广东省烟草专卖局,中国烟草总公司统一领导.垂直管理.主要职能是负责广州市的烟草生产.经营企业和市场的专卖管理.成立20多年来,广州烟草致力于烟叶和卷烟的生产经营.多元化经营.技术 ...

  5. STL模板之_map,stack(计算矩阵相乘的次数)

    #include <map>#include <stack>#include <iostream>using namespace std; struct Node ...

  6. 关于jquery中的事件绑定bind()和live()

    live可以说是bind是方法的变种. 二者的主要区别就是live方法的作用机理是事件委托,live方法的作用机理是将事件绑定DOM的根节点上. live方法的处理机制就是把事件绑定在DOM树的根节点 ...

  7. OSI模型

    1.物理层 •设备间接收或发送比特流 •说明电压.线速和线缆等 例子: EIA/TIA-232 V.35 2. 数据链路层 •将比特组合成字节进而组合成帧 •用MAC地址访问介质 •错误发现但不能纠正 ...

  8. YII2.0 验证表单

    控制器代码 <?php namespace app\modules\pub\controllers; use Yii; use backend\base\BaseController; use ...

  9. xmind的第六天

  10. HDU 2274 Magic WisKey

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2274 Magic WisKey Time Limit: 2000/1000 MS (Java/Othe ...