转一个超炫效果,as3制作的。
来源:互联网 发布:sql中count 1 编辑:程序博客网 时间:2024/05/22 07:19
代码如下:
package
{
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.text.TextField;
import flash.utils.*;
public class PerlinForce extends Sprite
{
private const origin: Point = new Point();
private const w: int = 256;
private const h: int = 256;
private const x1: Matrix = new Matrix( 1, 0, 0, 1, 0, 0 );
private const x2: Matrix = new Matrix( 2, 0, 0, 2, 0, 0 );
//-- fps
private var fpsText:TextField;
private var fr: int;
private var ms: int;
private var force_s: BitmapData;
private var force_b: BitmapData;
private var forceOffsets: Array;
private var points: Array;
private var buffer: BitmapData;
private var output: BitmapData;
private var damp: ColorTransform;
private var fxm: Matrix;
public function PerlinForce()
{
init();
fpsText = new TextField();
fpsText.autoSize = 'left';
fpsText.textColor = 0xefefef;
addChild( fpsText );
ms = getTimer();
fr = 0;
}
private function init(): void
{
output = new BitmapData( w, h, false, 0 );
buffer = new BitmapData( w, h, false, 0 );
var scl: Number = .25;
fxm = new Matrix();
fxm.a = ( w + scl ) / w;
fxm.d = ( h + scl ) / h;
fxm.tx = -scl / 1;
damp = new ColorTransform( 1, 1, 1, 1, -4, -4, -4, 0 );
force_s = new BitmapData( 128, 128, false, 0 );
force_b = new BitmapData( w, h, false, 0 );
addChild( new Bitmap( output ) );
points = new Array();
var point: Object;
var i: Number = 6000;
while( --i > -1 )
{
point = { sx: w / 4 + Math.random() * w / 2, sy: h / 4 + Math.random() * h / 2, vx: 0, vy: 0 };
points.push( point );
}
forceOffsets = [ new Point() ];
stage.addEventListener( 'enterFrame', run );
}
private function run( event: Event ): void
{
forceOffsets[0].x++;
forceOffsets[0].y++;
force_s.perlinNoise( 100, 100, 1, 0, true, true, 6, false, forceOffsets );
force_b.draw( force_s, x2, null, null, null, true );
//-- move points with respect to force
var point: Object;
var sx: Number;
var sy: Number;
var vx: Number;
var vy: Number;
var c: int;
var i: Number = points.length;
while( --i > -1 )
{
point = points[i];
sx = point.sx;
sy = point.sy;
vx = point.vx;
vy = point.vy;
c = force_b.getPixel( sx | 0, sy | 0 );
vx += ( ( ( c >> 8 ) & 0xff ) - 0x80 ) / 256;
vy += ( ( c & 0xff ) - 0x70 ) / 256;
vx *= .97;
vy *= .97;
sx += vx;
sy += vy;
if( sx < 0 )
{
sx = 0;
vx *= -( Math.random() + 1 );
}
if( sx > w )
{
sx = w;
vx *= -( Math.random() + 1 );
}
if( sy < 0 )
{
sy = 0;
vy *= -( Math.random() + 1 );
}
if( sy > h )
{
sy = h;
vy *= -( Math.random() + 1 );
}
point.sx = sx;
point.sy = sy;
point.vx = vx;
point.vy = vy;
buffer.setPixel( sx | 0, sy | 0, 0x66ffff );
}
buffer.draw( buffer, fxm, damp, null, null, true );
output.copyPixels( buffer, buffer.rect, origin );
//– fps
fr++;
if( ms + 1000 < getTimer() )
{
fpsText.text = fr.toString();
fr = 0;
ms = getTimer();
}
}
}
}
本主题包含附件: 17xd_2006101283216.swf (1523bytes)
package
{
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.text.TextField;
import flash.utils.*;
public class PerlinForce extends Sprite
{
private const origin: Point = new Point();
private const w: int = 256;
private const h: int = 256;
private const x1: Matrix = new Matrix( 1, 0, 0, 1, 0, 0 );
private const x2: Matrix = new Matrix( 2, 0, 0, 2, 0, 0 );
//-- fps
private var fpsText:TextField;
private var fr: int;
private var ms: int;
private var force_s: BitmapData;
private var force_b: BitmapData;
private var forceOffsets: Array;
private var points: Array;
private var buffer: BitmapData;
private var output: BitmapData;
private var damp: ColorTransform;
private var fxm: Matrix;
public function PerlinForce()
{
init();
fpsText = new TextField();
fpsText.autoSize = 'left';
fpsText.textColor = 0xefefef;
addChild( fpsText );
ms = getTimer();
fr = 0;
}
private function init(): void
{
output = new BitmapData( w, h, false, 0 );
buffer = new BitmapData( w, h, false, 0 );
var scl: Number = .25;
fxm = new Matrix();
fxm.a = ( w + scl ) / w;
fxm.d = ( h + scl ) / h;
fxm.tx = -scl / 1;
damp = new ColorTransform( 1, 1, 1, 1, -4, -4, -4, 0 );
force_s = new BitmapData( 128, 128, false, 0 );
force_b = new BitmapData( w, h, false, 0 );
addChild( new Bitmap( output ) );
points = new Array();
var point: Object;
var i: Number = 6000;
while( --i > -1 )
{
point = { sx: w / 4 + Math.random() * w / 2, sy: h / 4 + Math.random() * h / 2, vx: 0, vy: 0 };
points.push( point );
}
forceOffsets = [ new Point() ];
stage.addEventListener( 'enterFrame', run );
}
private function run( event: Event ): void
{
forceOffsets[0].x++;
forceOffsets[0].y++;
force_s.perlinNoise( 100, 100, 1, 0, true, true, 6, false, forceOffsets );
force_b.draw( force_s, x2, null, null, null, true );
//-- move points with respect to force
var point: Object;
var sx: Number;
var sy: Number;
var vx: Number;
var vy: Number;
var c: int;
var i: Number = points.length;
while( --i > -1 )
{
point = points[i];
sx = point.sx;
sy = point.sy;
vx = point.vx;
vy = point.vy;
c = force_b.getPixel( sx | 0, sy | 0 );
vx += ( ( ( c >> 8 ) & 0xff ) - 0x80 ) / 256;
vy += ( ( c & 0xff ) - 0x70 ) / 256;
vx *= .97;
vy *= .97;
sx += vx;
sy += vy;
if( sx < 0 )
{
sx = 0;
vx *= -( Math.random() + 1 );
}
if( sx > w )
{
sx = w;
vx *= -( Math.random() + 1 );
}
if( sy < 0 )
{
sy = 0;
vy *= -( Math.random() + 1 );
}
if( sy > h )
{
sy = h;
vy *= -( Math.random() + 1 );
}
point.sx = sx;
point.sy = sy;
point.vx = vx;
point.vy = vy;
buffer.setPixel( sx | 0, sy | 0, 0x66ffff );
}
buffer.draw( buffer, fxm, damp, null, null, true );
output.copyPixels( buffer, buffer.rect, origin );
//– fps
fr++;
if( ms + 1000 < getTimer() )
{
fpsText.text = fr.toString();
fr = 0;
ms = getTimer();
}
}
}
}
本主题包含附件: 17xd_2006101283216.swf (1523bytes)
- 转一个超炫效果,as3制作的。
- 一个超炫的htm5效果.超炫
- 制作超炫的DOCK 像MAC OX 10.5的效果
- 超炫的HTML5效果
- 超炫的js效果
- 如何制作一个纸张的撕裂效果
- 一个无线供电的超外差电路制作过程
- 教你一个快速制作发票的方法,超实用!
- 使用 CSS3 实现超炫的 Loading(加载)动画效果以及cs3的在线制作工具
- AS3 制作的公式显示
- 一个超酷弹出窗口的小效果
- 使用jQuery开发一个超酷的倒计时效果
- 使用jQuery开发一个超酷的倒计时效果
- AS3 的简单变换效果
- Jquery 超炫的导航效果
- android超炫的动画效果
- AndroidImageSlider超炫的轮播图效果
- AndroidImageSlider超炫的轮播图效果
- 实现TEXTAREA数据写入数据库后提取出来原样显示在网页TABLE上并自动换行
- Struts原理与实践(5)
- sqlserver数据库游标的原理
- Struts原理与实践(6)
- Code Review(代码复查)
- 转一个超炫效果,as3制作的。
- SQLSERVER2000的jdbc驱动程序
- Struts原理与实践(7)
- 未完成
- AS3如何移除容器下所有子显示对象
- Rapi
- 如何才能办好程序员的春节晚会
- 邮件发送
- 热望