对图片进行爆破
在flint 的例子里有
下面是对它的注解
import org.flintparticles.twoD.actions.*;
import org.flintparticles.twoD.emitters.Emitter2D;
import org.flintparticles.twoD.particles.Particle2DUtils;
import org.flintparticles.twoD.renderers.*;
import org.flintparticles.twoD.zones.RectangleZone;
var txt:TextField = new TextField();
txt.text = "Click on the image";
txt.textColor = 0xFFFFFF;
addChild( txt );
var emitter:Emitter2D = new Emitter2D();
var particles:Array = Particle2DUtils.createRectangleParticlesFromBitmapData( BitmapData(new Image1(384,255)), 10, emitter.particleFactory, 56, 47 );// 10指的是其爆炸后每一小块的像素大小 后面的56,47是图片的坐标 Image1 是图片的链接名
emitter.addExistingParticles( particles, false );
var renderer:DisplayObjectRenderer = new DisplayObjectRenderer();
renderer.addEmitter( emitter );
addChild( renderer );
emitter.start();
stage.addEventListener( MouseEvent.CLICK, explode, false, 0, true );
function explode( ev:MouseEvent ):void
{
var p:Point = renderer.globalToLocal( new Point( ev.stageX, ev.stageY ) );//转化为全局坐标 渲染环境renderer也是DisplayObject 用的是flash player的globalToLocal方法
emitter.addAction( new Explosion( 8, p.x, p.y, 500 ) );// 后面的500值爆破的程度 即开始爆破的像素 (爆破500像素,一开始就出现500像素的缺口,然后慢慢的往外延伸)
emitter.addAction( new Move() );
emitter.addAction( new DeathZone( new RectangleZone( -10, -10, 510, 360 ), true ) );
stage.removeEventListener( MouseEvent.CLICK, explode );