Показать сообщение отдельно
Старый 04.09.2008, 17:08
divinus вне форума Посмотреть профиль Отправить личное сообщение для divinus Найти все сообщения от divinus
  № 4  
Ответить с цитированием
divinus
 
Аватар для divinus

Регистрация: Dec 2005
Адрес: мухосранск
Сообщений: 661
Отправить сообщение для divinus с помощью ICQ
что-то типа такого?
Код:
package {
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.filters.BlurFilter;
	import flash.geom.Point;

	public class particleTest extends Sprite {
		
		private const blurFilter:BlurFilter = new BlurFilter( 2, 2, 2 );
		private const NUM_PARTICLES:Number = 1000;
		
		public function particleTest() {
			super.stage.addEventListener(MouseEvent.CLICK, this.handler_mouseClick);
		}
		
		private var _particles:Array;
		
		private var _renderScreen:BitmapData;
		
		private function init(x:Number, y:Number):void {
			this._particles = new Array();
			for(var i:int = 0; i < this.NUM_PARTICLES; i++) {
				this._particles.push(new Particle(x, y, Math.random()*10-5, Math.random()*10-9, i));
			}
			if(this._renderScreen) this._renderScreen.dispose();
			
			this._renderScreen = new BitmapData( super.stage.stageWidth, super.stage.stageHeight, true, 0 );
			super.addChild(new Bitmap(this._renderScreen));
			
			super.addEventListener(Event.ENTER_FRAME, this.handler_enterFrame);
		}
		
		private function handler_mouseClick(event:MouseEvent):void {
			this.init(super.stage.mouseX, super.stage.mouseY);
		}
		
		private function handler_enterFrame(event:Event):void {
			this._renderScreen.lock();
			
			for each (var p:Particle in this._particles) {
				this._renderScreen.setPixel32(p.sx, p.sy, 0xFFFF00FF);
				p.sx += p.tx;
				p.sy += p.ty;
				p.tx *= .99;
				p.ty += .3;
				if(p.sy > super.stage.stageHeight) this._particles.splice(p.id, 1);
			}
			
			this._renderScreen.applyFilter( this._renderScreen, this._renderScreen.rect, new Point(), this.blurFilter );			
			this._renderScreen.unlock();
		}
	}
}

internal class Particle	{
	public var sx: Number;
	public var sy: Number;
	public var tx: Number;
	public var ty: Number;
	public var id:int;
	
	public function Particle( sx: Number, sy: Number, tx:Number, ty:Number, id:int) {
		this.sx = sx;
		this.sy = sy;
		this.tx = tx;
		this.ty = ty;
		this.id = id;
	}
}
__________________
Кто может делать - делает, кто не может делать - учит, кто не может учить - управляет...


Последний раз редактировалось divinus; 04.09.2008 в 17:10.