[ActionScript 3.0] AS3.0 火焰效果
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 火焰效果的更多相关文章
- [ActionScript 3.0] AS3.0和AS2.0的相互通信
AS3和AS2之间的通信,最好的方式可能就是LocalConnection了. AS2向AS3发送数据,即AS2调用AS3的函数: as2.0代码(按钮上写的发送信息代码): on (release) ...
- [ActionScript 3.0] AS3.0 让一个视频无缝循环播放的一个偏方
一个视频要循环播放,通常的办法都是播放完后再重新播放,但是不可避免的播放结束和重新开始播放这个时间点上会有停顿,如何解决这个问题,说个偏方吧! package com.views { import f ...
- [ActionScript 3.0] AS3.0 下雨及涟漪效果
帧代码: stage.frameRate = 80; function init(x1:Number,y1:Number) { var mc:MovieClip=new MovieClip(); ad ...
- [ActionScript 3.0] AS3.0 本机鼠标指针
Flash Player 10.2添加了内置的本机鼠标指针(native mouse cursor)支持,虽然在之前的版本里我们可以侦听MouseEvent事件来模拟鼠标指针,但是在有了原生的本机鼠标 ...
- [ActionScript 3.0] AS3.0 动态加载显示内容
可以将下列任何外部显示资源加载到 ActionScript 3.0 应用程序中: 在 ActionScript 3.0 中创作的 SWF 文件 — 此文件可以是 Sprite.MovieClip 或扩 ...
- [ActionScript 3.0] AS3.0 涂鸦及擦除功能,撤销重做步骤记录实例
package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BlendMo ...
- [ActionScript 3.0] AS3.0 简单封装Socket的通信
Socket服务器 package com.controls.socket { import com.models.events.AppEvent; import com.models.events. ...
- [ActionScript 3.0] AS3.0 Socket通信实例
以下类是充当Socket服务器的例子 package { import flash.display.Sprite; import flash.events.Event; import flash.ev ...
- [ActionScript 3.0] AS3.0 对象在矩形范围随机运动
package com.views { import flash.display.Bitmap; import flash.display.MovieClip; import flash.displa ...
随机推荐
- bzoj 3171: [Tjoi2013]循环格
#include<cstdio> #include<iostream> #include<cstring> #define M 10000 #define inf ...
- 实现手机扫描二维码页面登录,类似web微信-第二篇,关于二维码的自动生成
转自:http://www.cnblogs.com/fengyun99/p/3541251.html 接上一章,我们已经基本把业务逻辑分析清楚了 下面我们第一步,实现二维码的web动态生成. 页面的二 ...
- [转]Linux中设置服务自启动的三种方式
from:http://www.cnblogs.com/nerxious/archive/2013/01/18/2866548.html 有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统 ...
- Objective-C学习笔记-第三天(1)
今天开始用oc写iOS程序,遇到的问题有 1.在不同的类使用类的方法或者访问类的属性的时候(公开的方法或者属性),方法或者属性必须在类头文件中声明. 2.对象类型的声明以及定义需要用*,表明这个是一个 ...
- Android中SQLite下 Cursor的使用。
引自博客大神一篇文 地址: http://blog.sina.com.cn/s/blog_15e2abdd90102wcdu.html rawQuery()方法用于执行select语句. /* ...
- javascript 中的 delete
那么,为什么我们能删除一个对象的属性: var x = { a: 1 }; delete x.a; // true x.a; // undefined 但却不能删除一个变量: var x = 1; d ...
- 传智播客JavaWeb day09-mysql入门、数据库操作、数据库表操作、数据行操作
不知不觉已到了第九天了,今天主要讲了关系数据库的基本概述.安装.数据库.表和数据行的操作 1. 基本概述 1.1 数据库就是用来存储数据的.早期是存在文件里面的操作起来效率低而且不是很安全. 1.2 ...
- Application.Exit()结束程序,但线程还在的解决方法。
出现此情况大多原因是使用了多线程编程,或者你所调用的dll使用了多线程.我们知道,一般情况下的线程执行完指定的任务之后是会关闭了的,但是如果对于一些循环类线程,或者忘记关掉的线程时,这个时候就需要我们 ...
- SQL 函数集锦
..STUFF()用另一子串替换字符串指定位置.长度的子串.STUFF (<character_expression1>, <start_ position>, <len ...
- pytho day6 <正则表达式、常用模块、反射>
本节介绍: 一:正则表达式: 正则表达并不是python 独有的.在各个语言里都有该语法的介绍.正则表达是处理字符串的强大的处理工具.拥有自己的独特的 处理方法.和处理引擎.虽然性能没有python ...