Fire Saqoosha forked:35 favorite:55 lines:110 license : MIT License modified : 2017-03-03 12:12:56 package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BlendMode; import flash.display.DisplayObject; import flash.display.Loader; import flash.display.LoaderInfo; import flash.display.Sprite; import flash.display.StageQuality; import flash.display.StageScaleMode; import flash.events.Event; import flash.events.MouseEvent; import flash.filters.ColorMatrixFilter; import flash.filters.ConvolutionFilter; import flash.geom.ColorTransform; import flash.geom.Point; import flash.system.LoaderContext; import flash.system.Security; import flash.net.SharedObject; import flash.net.URLRequest; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.TextFormat; [SWF(width=465, height=465, backgroundColor=0x0, frameRate=30)] public class Fire extends Sprite { private static const ZERO_POINT:Point = new Point(); private var _fireColor:BitmapData; private var _currentFireColor:int; private var _canvas:Sprite; private var _grey:BitmapData; private var _spread:ConvolutionFilter; private var _cooling:BitmapData; private var _color:ColorMatrixFilter; private var _offset:Array; private var _fire:BitmapData; private var _palette:Array; private var _zeroArray:Array; public function Fire() { trace("aaaa"); Security.allowDomain("*"); Security.loadPolicyFile("https://saqoo.sh/crossdomain.xml"); this.stage.scaleMode = StageScaleMode.NO_SCALE; this.stage.quality = StageQuality.LOW; var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, this._onLoaded); loader.load(new URLRequest('https://saqoo.sh/a/labs/Moyasu/srcview/source/fire-color.png'), new LoaderContext(true)); } private function _onLoaded(e:Event):void { this._fireColor = Bitmap(LoaderInfo(e.target).loader.content).bitmapData; this._canvas = new Sprite(); this._canvas.graphics.beginFill(0x0, 0); this._canvas.graphics.drawRect(0, 0, 465, 465); this._canvas.graphics.endFill(); this._canvas.addChild(this._createEmitter()); this._grey = new BitmapData(465, 465, false, 0x0); this._spread = new ConvolutionFilter(3, 3, [0, 1, 0, 1, 1, 1, 0, 1, 0], 5); this._cooling = new BitmapData(465, 465, false, 0x0); this._offset = [new Point(), new Point()]; this._fire = new BitmapData(465, 465, false, 0x0); this.addChild(new Bitmap(this._fire)); this._createCooling(0.16); this._createPalette(this._currentFireColor = 0); this.addEventListener(Event.ENTER_FRAME, this._update); this.stage.addEventListener(MouseEvent.CLICK, this._onClick); } private function _onClick(e:MouseEvent):void { if (++this._currentFireColor == int(this._fireColor.height / 32)) { this._currentFireColor = 0; } this._createPalette(this._currentFireColor); } private function _createEmitter():DisplayObject { var tf:TextField = new TextField(); tf.selectable = false; tf.autoSize = TextFieldAutoSize.LEFT; tf.defaultTextFormat = new TextFormat('Verdana', 80, 0xffffff, true); tf.text = 'Wonderfl'; tf.x = (465 - tf.width) / 2; tf.y = (465 - tf.height) / 2; return tf; } private function _createCooling(a:Number):void { this._color = new ColorMatrixFilter([ a, 0, 0, 0, 0, 0, a, 0, 0, 0, 0, 0, a, 0, 0, 0, 0, 0, 1, 0 ]); } private function _createPalette(idx:int):void { this._palette = []; this._zeroArray = []; for (var i:int = 0; i < 256; i++) { this._palette.push(this._fireColor.getPixel(i, idx * 32)); this._zeroArray.push(0); } } private function _update(e:Event):void { this._grey.draw(this._canvas); this._grey.applyFilter(this._grey, this._grey.rect, ZERO_POINT, this._spread); this._cooling.perlinNoise(50, 50, 2, 982374, false, false, 0, true, this._offset); this._offset[0].x += 2.0; this._offset[1].y += 2.0; this._cooling.applyFilter(this._cooling, this._cooling.rect, ZERO_POINT, this._color); this._grey.draw(this._cooling, null, null, BlendMode.SUBTRACT); this._grey.scroll(0, -3); this._fire.paletteMap(this._grey, this._grey.rect, ZERO_POINT, this._palette, this._zeroArray, this._zeroArray, this._zeroArray); } } } Code Fullscreen Preview Fullscreen That's great. I'm made my own version with logo. by drthands at 2009/10/26 03:15:10 coutlass.sup.. hacker_lra4m.. snowsunny Hwang gaziya Qaziro gomako rimanman linktale NINECUBE mitien korooooon Sharakusai akira_odohir.. dizgid umhr kitsionchen DOS FlashFit poponasu kenz skn tkinjo soundkitchen.. flasher_bbb a24 paq nki2 Nyarineko eternity_hir.. everdibe nondelion katopz ross fallen iBLA ore timothyd ngtn XELF webpenta alumican_net.. makisho : bitmapdata filter FIRE carbonhci : 火焰 特效 Pong : effect fire zotin95 : effect KiKiKi : ファイヤぁー nilab : 炎のエフェクト takeken : text tail_y : effect hacker_cd64e.. : bitmapdata effects fire berian : bitmapdata filter text 文字が燃えてるよー Kay : Fire! mnordine : fire ton : 炎!すげえ! FIRE bitmapdata effect effects filter text 火焰 特效 Security.allowDomain ConvolutionFilter Security.loadPolicyFile MouseEvent.COMPLETE StageScaleMode.NO_SCALE URLRequest trace Point push Array Number int sort new page view favorite forked pv 243 forked from: Fire jmbyh521 forked:0 favorite:0 lines:106 ( diff:1 ) pv 317 forked from: Fire Henky.Wu forked:0 favorite:0 lines:106 ( diff:1 ) pv 360 forked from: Fire Amnesiac1000 forked:0 favorite:0 lines:107 ( diff:3 ) pv 576 forked from: Fire faseer forked:0 favorite:0 lines:105 ( diff:4 ) pv 557 forked from: Fire Carlos.Guerrero forked:0 favorite:0 lines:106 ( diff:7 ) pv 488 forked from: Fire KIN forked:0 favorite:0 lines:106 ( diff:1 ) pv 552 forked from: Fire michaellance forked:0 favorite:0 lines:106 ( diff:1 ) pv 480 forked from: Fire ekumeko forked:0 favorite:0 lines:106 ( diff:1 )