【游客模式】——注册会员,加入11RIA 闪客社区吧!一起见证Flash的再次辉煌……
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 TKCB 于 2018-2-7 17:35 编辑
转载:9RIA游戏开发者社区(天地会)
作者:伱永远不可以(原天地会大神)
大概是要发个专题吧....把自己学到的总结下,顺便能给不懂的同学们提供思路!
【s7教你做特效】系列教程(总目录)
【叠加模式】(混合模式BlendMode)
可以到下面的网站先了解:
AS3 BlendMode(混合模式)的测试 ——http://www.11ria.com/forum.php?mod=viewthread&tid=737
----效果如下:
---------------
新手们可千万别一看到代码就头晕的--
1.初始化个 mcVec Vector.<MovieClip> r来储存 光斑MC 【Vector效率比Array高,而且有代码提示哦!】
----mcLayer:Sprite 用于显示 光斑的
[Actionscript3] 纯文本查看 复制代码 //装入MC的
var mcVec:Vector.<MovieClip>=new Vector.<MovieClip>()
//
var mcLayer:Sprite =new Sprite()
//
addChild(this.mcLayer )
2.写个函数叫 initMc() 用来初始化 光斑的! n是光斑数量-
[Actionscript3] 纯文本查看 复制代码 //初始化光斑-------------------------
function initMc(n:uint=20):void
{
while(n-->0)
{
var mc:MovieClip =new MovieClip ()
drawCirle(mc.graphics )//画圆
//在舞台上上随机分布
mc.x=stage.stageWidth *Math.random ()
mc.y=stage.stageHeight *Math.random ()
//设置速度,
mc.vx=Math.random ()*2-1
mc.vy=Math.random ()*2-1
//让MC看起模糊些
var b:Number =Math.random ()*4+1
mc.filters =[new BlurFilter (b,b)]
mc.blendMode =BlendMode.ADD
//加入到显示容器
this.mcLayer .addChild (mc)
---请看代码注释!
3.让MC动起来!
[Actionscript3] 纯文本查看 复制代码 //移动MC---------------
function move():void
{
var mc:MovieClip
for(var i in mcVec)
{
mc=mcVec[i]
4.这些函数都准备好了,来一个驱动吧,就用 帧事件好了
[Actionscript3] 纯文本查看 复制代码 this.addEventListener ( Event .ENTER_FRAME ,update)
//更新
function update(e:Event ):void
{
move()
}
看看效果吧!
源代码【直接粘贴到帧上运行--须注意,舞台背景不能为白色啊,请随便画个渐变什么的,不然看不见哦】:
[Actionscript3] 纯文本查看 复制代码 import flash.events.Event;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.display.Graphics;
import flash.display.BlendMode;
import flash.filters.BlurFilter;
//装入MC的
var mcVec:Vector.<MovieClip>=new Vector.<MovieClip>()
//
var mcLayer:Sprite =new Sprite()
//
addChild(this.mcLayer )
this.initMc (50)
this.addEventListener ( Event .ENTER_FRAME ,update)
//初始化光斑-------------------------
function initMc(n:uint=20):void
{
while(n-->0)
{
var mc:MovieClip =new MovieClip ()
drawCirle(mc.graphics )//画圆
mc.x=stage.stageWidth *Math.random ()
mc.y=stage.stageHeight *Math.random ()
mc.vx=Math.random ()*2-1
mc.vy=Math.random ()*2-1
var b:Number =Math.random ()*4+1
mc.filters =[new BlurFilter (b,b)]
mc.blendMode =BlendMode.ADD
this.mcLayer .addChild (mc)
mcVec.push (mc)
}
}
//画圆-----------------
function drawCirle(g:Graphics ):void
{
g.beginFill (Math.random ()*0xffffff,0.8)
g.drawCircle (0,0,Math.random ()*10+12)
g.endFill ()
}
//移动MC---------------
function move():void
{
var mc:MovieClip
for(var i in mcVec)
{
mc=mcVec[i]
mc.x+=mc.vx
mc.y+=mc.vy
//简单的边界检测---
mc.x=mc.x>stage.stageWidth?0:mc.x
mc.x=mc.x<0?stage.stageWidth:mc.x
mc.y=mc.y>stage.stageHeight ?0:mc.y
mc.y=mc.y<0?stage.stageHeight:mc.y
}
}
//更新
function update(e:Event ):void
{
move()
}
该有的都有了,现在有了封装好的两个效果 ...1.本帖效果 2.位图爆破
---使用方法就变得简单多了
[Actionscript3] 纯文本查看 复制代码 var sls:LightSpot =new LightSpot ()
//参数:num:光斑数量 r: 光斑大小 rect :光斑生存范围 pic:光斑的图片
sls.init ({num:20,r:20,rect:new Rectangle (-50,-50,600,450)})
sls.show (this)
下载:
教你做特效0.0.0.0.1.zip
(1.24 MB, 下载次数: 6)
|