- 浏览: 12755 次
最新评论
一个as3.0实现的烟花效果,很有思想
2010年05月13日
CDocFirework.as:
package
{
import flash.display.Sprite;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.geom.ColorTransform;
import flash.filters.BlurFilter;
import flash.geom.Point;
import flash.filters.BitmapFilterQuality;
import flash.media.Sound;
import flash.net.URLRequest;
public class CDocFirework extends Sprite
{
private var bgm:Sound;//爆炸声
private var bf:BlurFilter;//模糊滤镜
private var bitmap:BitmapData;//画布
private var firework:Firework;
public function CDocFirework():void
{
bgm=new Sound();
bgm.load(new URLRequest('sound.mp3'));
bgm.addEventListener(Event.COMPLETE,whenComplete);
bf=new BlurFilter(2,2,BitmapFilterQuality.HIGH)
bitmap=new BitmapData(550,400,false,0);
addChild(new Bitmap(bitmap));
}
private function whenComplete(evt:Event):void
{
stage.addEventListener(MouseEvent.MOUSE_DOWN,whenMouseDown);//定义鼠标点击事件
stage.addEventListener(Event.ENTER_FRAME,whenEnterFrame);//定义帧循环事件
}
private function whenEnterFrame(evt:Event):void
{
bitmap.draw(this);//bitmap每帧都把舞台上的内容绘制到自己上面
bitmap.applyFilter(bitmap,bitmap.rect,new Point(),bf);//并每帧都加一个模糊滤镜效果
}
private function whenMouseDown(evt:MouseEvent):void
{
bgm.play();//鼠标点击时就放声音
firework=new Firework();//生成一个新的烟花
firework.x=stage.mouseX;
firework.y=stage.mouseY;
addChild(firework);//显示
}
}
}
复制代码Firework.as:
/* ---------------------------------------
|Firework.as |
|这个类表示每一个烟花 |
---------------------------------------*/
package
{
import FireworkData;
import flash.events.Event;
import flash.display.Sprite;
import flash.display.Graphics;
public class Firework extends Sprite
{
private var m_data:FireworkData;
private var m_canvas:Graphics;
public function Firework():void
{
m_data=new FireworkData();
m_canvas=this.graphics;
addEventListener(Event.ENTER_FRAME,whenEnterFrame);
}
private function whenEnterFrame(evt:Event):void
{
m_canvas.clear();
m_canvas.beginFill(m_data.color);
for (var i=0; i<100; i++)
{
m_canvas.drawCircle(m_data.data.sx,m_data.data.sy,m_data.data.r);
//根据FireworkData类里面数组记录的每个元素的数值绘出各个粒子
}
m_canvas.endFill();
m_data.next();//让FireworkData类把它自身记录的数据更新到下一帧
alpha-=0.01;//每一帧都让自己的alpha减0.01
if (alpha<=0)
{
removeEventListener(Event.ENTER_FRAME,whenEnterFrame);
//如果自身的alpha数值小于等于0就把自身的帧循环事件去掉
}
}
}
}
复制代码FireworkData.as:
/* ----------------------------------------------------
|FireworkData.as |
|这个类的作用是记录每个烟花相关的数据 |
----------------------------------------------------*/
package
{
public class FireworkData
{
private var m_ary:Array;//数组存放这个烟花各个粒子的数据
private var m_color:uint;//这个烟花的颜色
public function FireworkData():void
{
m_color=Math.random()*0xffffff;//随机决定这个烟花的颜色
m_ary=new Array();//初始化数组
for (var i=0; i<100; i++)
{
m_ary.push(
{sx:0
,sy:0
,vx:Math.random()*15*(Math.random()-Math.random())
,vy:Math.random()*15*(Math.random()-Math.random())
,r:Math.random()*3}
);
//每个元素以Object为类型,sx,sy表示粒子当前的位置,都初始化为0,vx,vy分别为粒子在x轴,y轴方向的加速度
//vx,vy的数值随机生成,Math.random()*15规定了数值的范围,后面再*(Math.random()-Math.random())则是
//决定数值的正负符号,也就决定了粒子往正半轴运动还是负半轴运动,r变量决定了每个粒子的半径
}
}
public function get color():uint
{
return m_color;
}
public function get data():Array
{
return m_ary;
}
public function next():void//这个函数会把m_ary的各个元素的数值处理成下一帧的
{
for (var i=0; i<100; i++)
{
m_ary.sx+=m_ary.vx;
m_ary.sy+=m_ary.vy;
}
}
}
}
复制代码
发表评论
-
CQ与其他聊天工具继承
2012-01-20 10:08 692CQ与其他聊天工具继承 2010年06月13日 VBSc ... -
隐藏命令行CMD框
2012-01-20 10:08 686隐藏命令行CMD框 2010年07月18日 vbs脚本: ... -
insert->Step Generator
2012-01-20 10:08 555insert->Step Generator 2010 ... -
[转]使用C#开发ActiveX控件全攻略
2012-01-20 10:08 515[转]使用C#开发ActiveX控 ... -
html 特殊转义字符
2012-01-20 10:08 722html 特殊转义字符 2010年08月11日 HTM ... -
下学期班级工作计划
2012-01-19 15:09 609下学期班级工作计划 20 ... -
2011年大班下学期工作计划
2012-01-19 15:09 5332011年大班下学期工作计划 2011年03月06日 ... -
2010―2011幼儿园大班下学期班务计划
2012-01-19 15:09 8772010―2011幼儿园大班下 ... -
大班2010下学期工作计划
2012-01-19 15:09 586大班2010下学期工作计划 ... -
大班下学期工作计划
2012-01-19 15:09 558大班下学期工作计划 2011年02月27日 ... -
ARM经典100问
2012-01-17 04:56 723ARM经典100问 2011年03月13日 第1章 体系 ... -
volatile――多线程
2012-01-17 04:56 554volatile――多线程 2011 ... -
问题来源TSU
2012-01-17 04:56 627问题来源TSU 2011年11月28日 pthread_ ... -
新手刷机入门知识学习
2012-01-17 04:56 549新手刷机入门知识学习 ... -
delphi经典技艺
2012-01-17 04:56 639delphi经典技艺 2012年01月10日 http: ... -
学习资料总汇:Flash Builder 4、Flex 4 SDK 以及 Flash Catalyst
2012-01-16 03:46 685学习资料总汇:Flash Builder 4、Flex 4 S ... -
深思。感慨。路在何方。。。
2012-01-16 03:46 544深思。感慨。路在何方。。。 2009年10月17日 ... -
as3视觉精要
2012-01-16 03:46 545as3视觉精要 2009年06月08日 原文地址: ht ... -
彻底了解AS3视觉元件架构
2012-01-16 03:46 716彻底了解AS3视觉元件架 ...
相关推荐
采用 flash as3.0开发而成的烟花动画,
基于C++语言实现的非常漂亮的祝福烟花效果完整源码 基于C++语言实现的非常漂亮的祝福烟花效果完整源码 基于C++语言实现的非常漂亮的祝福烟花效果完整源码 基于C++语言实现的非常漂亮的祝福烟花效果完整源码 基于C++...
as3做的烟花粒子实验,给徐娅哦的朋友参考,稍加修改即可产生很赞的效果。
java实现烟花效果,还是比较好看的。自己也可以试着做一做哦
前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+...
Flash烟花效果实现动画
在计算机图形学中,我们通常使用像素来表示图像,每个像素都有一个颜色值。通过控制像素的颜色和位置,我们可以实现各种动态效果,包括烟花效果。 接下来,我们需要了解c语言的基本语法和数据类型。c语言是一种通用...
用python实现烟花效果, 用python实现烟花效果 用python实现烟花效果 用python实现烟花效果
HTML5实现烟花效果
html实现烟花喷泉效果,火焰喷射既视感,前端小白必看! html实现烟花喷泉效果,火焰喷射既视感,前端小白必看! html实现烟花喷泉效果,火焰喷射既视感,前端小白必看! html实现烟花喷泉效果,火焰喷射既视感,...
烟花代码3.0.zip
js烟花效果 前端
这篇文章主要为大家介绍了Python实现春节烟花效果demo,本文为大家提供了两种实现方式代码,详细的实现一场浪漫的烟花秀,有需要的朋友可以借鉴参考下 Python实现春节烟花效果 用tkinter写的python烟花效果 3D旋转烟花 ...
flash as3 烟花效果完整源码,非常漂亮的烟花效果。
Android下烟火效果的实现FireWork,用来开发哄女孩子的应用最好不过了。
CSS3实现烟花特效-图片+css
使用HTML 实现一个烟花效果
用ActionScript3.0制作的七彩烟花雨效果,配以彩色的烟雾和银光泻地的光粒特效,在繁星璀璨的夜空里营造出烟火般绚丽的画面。
用es6语法 实现的一个简单的点击屏幕出现随机颜色的烟花的效果,用h5写的。
scratch3.0作品源代码50个(小游戏): 三国 丧尸生存 丧尸生存2 击败倭寇 击退大作战 厉害了我的国 取款机 口算 守株待兔 密室探险 密室逃脱1.0 小小消防员 小熊挖黄金 小猫超级玛丽 小猫非凡的大冒险 小蝌蚪找妈妈 ...