flash as 制作被风吹效果代码

风吹散效果。

详细代码:

package

 

{

 

import flash.display.Bitmap;

 

import flash.display.BitmapData;

 

import flash.display.MovieClip;

 

import flash.display.Sprite;

 

import flash.events.Event;

 

import flash.filters.BlurFilter;

 

import flash.geom.Point;

 

import flash.geom.Rectangle;

 

 

 

/**

 

* ...

 

* @author flashk

 

*/

 

public class Min extends Sprite

 

{

 

public var a_mc:MovieClip;

 

 

 

private var bd:BitmapData;

 

private var bds:BitmapData;

 

private var ps:Array;

 

 

 

public function Min() {

 

bd = new BitmapData(1420, 300, true);

 

bds = new BitmapData(a_mc.width, a_mc.height, true);

 

bds.draw(a_mc);

 

var bp:Bitmap = new Bitmap();

 

bp.bitmapData = bd;

 

this.addChild(bp);

 

start();

 

}

 

private function start():void {

 

ps = new Array();

 

for (var i:int = 1; i <= bds.width; i++) {

 

for (var j:int = 1; j <= bds.height; j++) {

 

ps.push(new Po(i, j, bds.getPixel32(i, j),bds.width));

 

}

 

}

 

this.addEventListener(Event.ENTER_FRAME, render);

 

this.removeChild(a_mc);

 

}

 

private function render(event:Event):void {

 

var po;

 

//bd.fillRect(new Rectangle(0, 0, bd.width, bd.height), 0);

 

bd.applyFilter(bd, new Rectangle(0, 0, bd.width, bd.height), new Point(0, 0), new BlurFilter(2, 2, 1));

 

bd.lock();

 

var len = ps.length;

 

for (var i:int = 0 ; i < len; i+=1) {

 

po = ps[i];

 

po.move();

 

bd.setPixel32(po.x, po.y+80, po.color);

 

}

 

bd.unlock();

 

}

 

}

 

 

 

}

 

class Po {

 

public var x:Number;

 

public var y:Number;

 

public var color:uint;

 

private var speed:Number;

 

private var r:Number = 0;

 

private var by:Number;

 

 

 

public function Po(x:Number, y:Number, color:uint,w:Number) {

 

this.x = x;

 

this.y = y;

 

this.color = color;

 

this.speed = Math.random() * 10 - (w - x) / 2;

 

//r = Math.random() * 50;

 

this.by = y;

 

}

 

public function move():void {

 

speed += 0.5;

 

if(speed>0){

 

this.x += speed;

 

r += 10;

 

this.y = this.by + Math.sin(r* Math.PI/180)*50;

 

}

 

}

 

}

源文件和swf下载s2demo.rar:

再来玩个加鼠标控制的,美女被风吹散...

package

 

{

 

import flash.display.Bitmap;

 

import flash.display.BitmapData;

 

import flash.display.MovieClip;

 

import flash.display.Sprite;

 

import flash.events.Event;

 

import flash.filters.BlurFilter;

 

import flash.filters.ColorMatrixFilter;

 

import flash.geom.ColorTransform;

 

import flash.geom.Point;

 

import flash.geom.Rectangle;

 

 

 

/**

 

* ...

 

* @author flashk

 

*/

 

public class Min extends Sprite

 

{

 

public var a_mc:MovieClip;

 

 

 

private var bd:BitmapData;

 

private var bds:BitmapData;

 

private var ps:Array;

 

private var ns:uint;

 

private var checks:Array;

 

private var noise:BitmapData;

 

private var randomSeed:Number;

 

private var image:BitmapData;

 

private var rect:Rectangle;

 

private var cTra:ColorTransform;

 

private var vectorList:Array;

 

private var num:uint = 10000;

 

 

 

public function Min() {

 

 

 

noise = new BitmapData(a_mc.width, a_mc.height, false, 0x000000);

 

randomSeed = Math.floor(Math.random() * 0xFFFF);

 

noise.perlinNoise(a_mc.width, a_mc.height, 4, randomSeed, false, false, 1 | 2 | 0 | 0 );

 

image = new BitmapData(465, 465, true, 0);

 

this.addChild(new Bitmap(image));

 

rect = new Rectangle( 0, 0, 465, 465 )

 

cTra = new ColorTransform(1, 1, 1, 0.9, 0, 0, 0, 0)

 

 

 

bd = new BitmapData(600, 450, true);

 

bds = new BitmapData(a_mc.width, a_mc.height, true,0x00FFFFFF);

 

bds.draw(a_mc);

 

var bp:Bitmap = new Bitmap();

 

bp.bitmapData = bd;

 

ps = new Array();

 

start(1);

 

this.removeChild(a_mc);

 

}

 

private function start(s:uint):void {

 

ns = s;

 

vectorList = [];

 

for (var i:int = s; i <= bds.width; i++) {

 

for (var j:int = 1; j <= bds.height; j++) {

 

vectorList.push(new Po(i, j, bds.getPixel32(i, j),bds.width,this));

 

}

 

}

 

this.addEventListener(Event.ENTER_FRAME, render);

 

}

 

private function render(event:Event):void {

 

image.colorTransform( rect, cTra );

 

image.lock();

 

var len:uint = vectorList.length;

 

for (var i:uint = 0; i < len; i++) {

 

var body:Po = vectorList[i];

 

body.speed += 0.4;

 

if(body.speed>0){

 

var col:Number = noise.getPixel(body.px, body.py);

 

body.ax += ((col >> 16 & 0xFF) - 128)/1000;

 

body.ay += ((col >> 8 & 0xFF) -128)/1000;

 

 

 

body.vx += body.ax;

 

body.vy += body.ay;

 

body.px += body.vx;

 

body.py += body.vy;

 

 

 

body.ax *= .975;

 

body.ay *= .975;

 

body.vx *= .92;

 

body.vy *= .92;

 

}

 

if (body.px < 0) {

 

vectorList.splice(i, 1);

 

len -= 1;

 

}

 

image.setPixel32( body.px, body.py+100, body.color );

 

}

 

image.unlock();

 

}

 

}

 

}

 

class Po {

 

public var x:Number;

 

public var y:Number;

 

public var color:uint;

 

public var speed:Number;

 

private var r:Number = 0;

 

private var by:Number;

 

public var vx:Number = 0;

 

public var vy:Number = 0;

 

public var ax:Number = 0;

 

public var ay:Number = 0;

 

public var px:Number;

 

public var py:Number;

 

 

 

public function Po(x:Number, y:Number, color:uint,w:Number,eventLis:Object) {

 

this.x = x;

 

this.y = y;

 

this.px = x;

 

this.py = y;

 

this.color = color;

 

this.speed = Math.random() * 15 - (w - x) / 3 -20;

 

this.by = y;

 

}

 

}

时间: 2024-07-30 23:08:47

flash as 制作被风吹效果代码的相关文章

网站基于flash实现的Banner图切换效果代码_javascript技巧

本文实例讲述了网站基于flash实现的Banner图切换效果代码,该实例的主要切换功能是由flash完成的.分享给大家供大家参考. 具体实现代码如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="

Flash视频教程实例:风吹字体效果

教程|视频教程 制作步骤:(全屏观看教程)

Flash CS4制作切换放大菜单效果

  本例思路 .利用遮罩功能制作高光按钮. .添加代码来控制菜单的切换效果. Part 1 制作高光按钮 (1)新建一个600×300像素,帧频为12fps的空白文档.使用"矩形工具"绘制一个与舞台大小相同的矩形,然后设置填充类型为"放射状",第1个色标颜色为(R:0,G:114,B:188),第2个色标颜色为(R:0,G:0,B:0),填充效果如图9-1所示. 图9-1 制作背景 (2)按Ctrl+F8组合键新建一个影片剪辑(名称为button),然后使用&quo

网站基于flash实现的Banner图切换效果代码

 具体实现代码如下:   代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-e

Flash cs3制作炫丽的烟花效果

所有的人都喜欢烟花.这是一个夏夜观看用明亮的烟花照亮的星空.你可以用你的烟花将每一天装点成七月四日(美国的国庆.译者注)并且没有风险和伤害.用同样简单的渐变填充,一些遮罩和一些补间,你将马上听到 "Oohs!" 和"Ahhhs!" (也许美国人一高兴就这样叫吧.译者注). 1.首先使用一个至少用了4种颜色的放射填充.中间和外面的颜色透明度设为0%.第二和第三个颜色由你的烟花设计来确定.将这个渐变填转换为图形元件. 图1 2.你需要创一个遮罩象本例一样爆发而出的烟花效

Flash AS制作上升的水泡效果动画

效果演示: 点击这里下载源文件 如果一个一个的画,工作量繁重并且效果并不好.我们利用AS的复制语句来实现水泡的数量,利用设置属性来改变透明度,大小等.最后在影片剪辑中设置水泡的左右摆动.这样综合在一起,就可以实现水泡上升的效果了. 具体步骤 1,开MX新建一文档.并适当修改文档属性(400×300,蓝色背景) 2,建一个影片剪辑,命名为"h2o".进入编辑去以后,利用绘图工具,渐变填充绘制一个水泡.如图1所示. 图1   绘制水泡 3,回到主场景,把图层1命名为"h2o&qu

Flash实例制作教程:鼠标效果

教程|鼠标 效果: 点击这里下载源文件

用dom+xhtml+css制作的一个相册效果代码打包下载_图象特效

突然看到那个apple的底下的那个很漂亮,所以呢,我就改进了一下 做了一个图片版本的,好像很多人都做了个 http://home.goofar.com/bqqdqq/photo/a.html 上面这个是预览地址 如果浏览速度慢的话,下面是我做了一个包出来 兼容FF,IE 在线演示http://img.jb51.net/online/photo/a.html本地下载http://img.jb51.net/online/photo/photo.rar

PS制作冰雪字晶莹效果

  最终效果图   1.首先 新建一个图形文件.使用工具箱中的"横排文字工具",在画面中输入文字"冰雪",效果(如 图1)所示,此时系统自动生成一个新的图层. 图1 文字效果 2.按住Ctrl键,单击"图层"调板中刚刚得到的文字图层, 载入文字选区,得到的选区(如图2)所示. 图2 载入的文字选区 3. 按Ctrl+E键将图层进行向下拼合,将文字图层和背景图层合并成一个图层,单击"选择"-"反 选"命令,,