亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? firefx.as

?? I ll probably write up a short article next week outlining how the ActionScript works, so people can
?? AS
字號:
?/*** FireFX by Grant Skinner. May 30, 2007* Visit www.gskinner.com/blog for documentation, updates and more free code.** You may distribute and modify this class freely, provided that you leave this header intact,* and add appropriate headers to indicate your changes. Credit is appreciated in applications* that use this code, but is not required.** Please contact info@gskinner.com for more information.*/package com.gskinner.effects {	import flash.display.BitmapData;	import flash.geom.Matrix;	import flash.geom.Point;	import flash.geom.ColorTransform;	import flash.filters.ColorMatrixFilter;	import flash.filters.BlurFilter;	import flash.filters.DisplacementMapFilter;	import flash.display.Sprite;	import flash.display.MovieClip;	import flash.events.Event;	import flash.display.Bitmap;	import flash.display.DisplayObject;		public class FireFX extends Sprite {		private var _fadeRate:Number=0.4;		private var _distortionScale:Number=0.4;		private var _distortion:Number=0.5;		private var _flameHeight:Number=0.3;		private var _flameSpread:Number=0.3;		private var _blueFlame:Boolean = false;		private var _smoke:Number = 0;			// private properties:		// display elements:		private var displayBmp:BitmapData;		private var scratchBmp:BitmapData;		private var perlinBmp:BitmapData;				// geom:		private var mtx:Matrix;		private var pnt:Point;		private var drawColorTransform:ColorTransform;				// filters:		private var fireCMF:ColorMatrixFilter;		private var dispMapF:DisplacementMapFilter;		private var blurF:BlurFilter;				// other:		private var endCount:Number;		private var bmpsValid:Boolean=false;		private var perlinValid:Boolean=false;		private var filtersValid:Boolean=false;		private var _target:DisplayObject;				public function FireFX() {			var frame:DisplayObject = getChildAt(0);			frame.visible = false;			frame.height = height;			frame.width = width;			scaleX = scaleY = 1;						mtx = new Matrix();			pnt = new Point();						startFire();		}				// getter/setters:		override public function set width(value:Number):void {			bmpsValid &&= (value == width);			super.width = value|0;		}		override public function get width():Number {			return super.width;		}				override public function set height(value:Number):void {			bmpsValid &&= (value == height);			super.height = value|0;		}		override public function get height():Number {			return super.height;		}				[Inspectable(defaultValue=0.4,name='fadeRate (0-1)')]		/**         * Sets the rate that flames fade as they move up. 0 is slowest, 1 is fastest.         *         * @default 0.4		 */		public function set fadeRate(value:Number):void {			filtersValid &&= (value == _fadeRate);			_fadeRate = value;		}		public function get fadeRate():Number {			return _fadeRate;		}				[Inspectable(defaultValue=0.4,name='distortionScale (0-1)')]		/**         * Sets the scale of flame distortion. 0.1 is tiny and chaotic, 1 is large and smooth.         *         * @default 0.4		 */		public function set distortionScale(value:Number):void {			perlinValid &&= (value == _distortionScale);			_distortionScale = value;		}		public function get distortionScale():Number {			return _distortionScale;		}				[Inspectable(defaultValue=0.4,name='distortion (0-1)')]		/**         * Sets the amount of distortion. 0.1 is little, 1 is chaotic.         *         * @default 0.4		 */		public function set distortion(value:Number):void {			filtersValid &&= (value == _fadeRate);			_distortion = value;		}		public function get distortion():Number {			return _distortion;		}				[Inspectable(defaultValue=0.3,name='flameHeight (0-1)')]		/**         * Sets the how high the flame will burn. 0 is zero gravity, 1 is a bonfire.         *         * @default 0.3		 */		public function set flameHeight(value:Number):void {			perlinValid &&= (value == _flameHeight);			_flameHeight = value;		}		public function get flameHeight():Number {			return _flameHeight;		}				[Inspectable(defaultValue=0.3,name='flameSpread (0-1)')]		/**         * Sets the how much the fire will spread out around the target. 0 is no spread, 1 is a lot.         *         * @default 0.3		 */		public function set flameSpread(value:Number):void {			filtersValid &&= (value == _flameSpread);			_flameSpread = value;		}		public function get flameSpread():Number {			return _flameSpread;		}				[Inspectable(defaultValue=false,name='blueFlame')]		/**         * Indicates whether it should use a blue or red flame.         *         * @default false		 */		public function set blueFlame(value:Boolean):void {			filtersValid &&= (value == _blueFlame);			_blueFlame = value;		}		public function get blueFlame():Boolean {			return _blueFlame;		}				[Inspectable(defaultValue=0,name='smoke (0-1)')]		/**         * Sets the amount of smoke. 0 little, 1 lots.         *         * @default 0		 */		public function set smoke(value:Number):void {			filtersValid &&= (value == _smoke);			_smoke = value;		}		public function get smoke():Number {			return _smoke;		}						[Inspectable(defaultValue='',name='target')]		/**         * Sets the amount of smoke. 0 little, 1 lots.         *         * @default 		 */		public function set targetName(value:String):void {			var targ:DisplayObject = parent.getChildByName(value);			if (targ == null) {				try { targ = parent[value] as DisplayObject; }				catch (e:*) {}			}			target = targ;		}				/**         * Defines the shape of the fire. The fire will burn upwards, so it should be near the bottom, and centered in the FireFX component.         *         * @default 		 */		public function set target(value:DisplayObject):void {			_target = value;			clear();		}		public function get target():DisplayObject {			return _target;		}				/**         * Clears the fire.		 */		public function clear():void {			if (displayBmp) {				displayBmp.fillRect(displayBmp.rect,0);			}		}				/**         * Stops the fire effect after letting it burn down over 20 frames.		 */		public function stopFire():void {			// let the fire burn down for 20 frames:			if (endCount == 0) { endCount = 20; }		}						private function updateBitmaps():void {			if (displayBmp) {				displayBmp.dispose();				displayBmp = null;				scratchBmp.dispose();				scratchBmp = null;				perlinBmp.dispose();				perlinBmp = null;			}						displayBmp = new BitmapData(width, height, true, 0);			scratchBmp = displayBmp.clone();			perlinBmp = new BitmapData(width*3, height*3, false, 0);						while (numChildren) { removeChildAt(0); }			addChild(new Bitmap(displayBmp));						updatePerlin();			updateFilters();			bmpsValid = true;		}				private function updatePerlin():void {			perlinBmp.perlinNoise(30*_distortionScale,20*_distortionScale,1,-Math.random()*1000|0,false,true,1|2,false);			perlinBmp.colorTransform(perlinBmp.rect,new ColorTransform(1,  1-_flameHeight*0.5  ,1,1,0,0,0,0));			perlinValid = true;		}				function updateFilters():void {			if (_blueFlame) {				fireCMF = new ColorMatrixFilter([0.8-0.55*_fadeRate,0,0,0,0,												 0,0.93-0.48*_fadeRate,0,0,0,												 0,0.1,0.96-0.35*_fadeRate,0,0,												 0,0.1,0,1,-25+_smoke*24]);				drawColorTransform = new ColorTransform(0,0,0,1,210,240,255,0);			} else {				fireCMF = new ColorMatrixFilter([0.96-0.35*_fadeRate,0.1,0,0,-1,												 0,0.9-0.45*_fadeRate,0,0,0,												 0,0,0.8-0.55*_fadeRate,0,0,												 0,0.1,0,1,-25+_smoke*24]);				drawColorTransform = new ColorTransform(0,0,0,1,255,255,210,0);			}			dispMapF = new DisplacementMapFilter(perlinBmp,pnt,1,2,14*_distortion,-30,"clamp");			blurF = new BlurFilter(32*_flameSpread,32*_flameSpread,1);						filtersValid = true;		}								private function startFire():void {			endCount = 0;			addEventListener(Event.ENTER_FRAME,doFire);		}				private function doFire(evt:Event):void {			if (_target == null) { return; }			if (!bmpsValid) { updateBitmaps(); }			if (!perlinValid) { updatePerlin(); }			if (!filtersValid) { updateFilters(); }			if (endCount == 0) {				var drawMtx:Matrix = _target.transform.matrix;				drawMtx.tx = _target.x-x;				drawMtx.ty = _target.y-y;				scratchBmp.fillRect(scratchBmp.rect,0);				drawColorTransform.alphaOffset = -Math.random()*200|0;				scratchBmp.draw(_target,drawMtx,drawColorTransform,"add");				scratchBmp.applyFilter(scratchBmp,scratchBmp.rect,pnt,blurF);				displayBmp.draw(scratchBmp,mtx,null,"add");			}			dispMapF.mapPoint = new Point( -Math.random()*(perlinBmp.width-displayBmp.width)|0, -Math.random()*(perlinBmp.height-displayBmp.height)|0 );			displayBmp.applyFilter(displayBmp,displayBmp.rect,pnt,dispMapF);			displayBmp.applyFilter(displayBmp,displayBmp.rect,pnt,fireCMF);						if (endCount != 0 && --endCount == 0) {				removeEventListener(Event.ENTER_FRAME,doFire);			}		}			}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩美一区二区三区| 欧美精品一区在线观看| 91精品久久久久久久91蜜桃| 国产三级欧美三级| 亚洲精品乱码久久久久久久久| 免费观看久久久4p| 色综合天天综合网天天狠天天| 日韩三级免费观看| 亚洲一区二区三区国产| 成人免费视频视频在线观看免费| 欧美一三区三区四区免费在线看| 亚洲欧洲精品一区二区三区| 国产一区久久久| 91精品久久久久久久99蜜桃| 亚洲免费av在线| 成人网在线播放| 欧美精品一区男女天堂| 午夜在线成人av| 色综合久久66| 亚洲欧美影音先锋| 国产在线观看一区二区| 日韩欧美国产高清| 日本欧洲一区二区| 欧美日韩色一区| 夜夜操天天操亚洲| 91视频一区二区| 国产精品亲子伦对白| 国产激情视频一区二区在线观看| 欧美一区二区久久久| 亚洲成人久久影院| 欧美午夜寂寞影院| 亚洲在线视频一区| 欧美性猛交xxxxxx富婆| 一区二区三区 在线观看视频| 91在线码无精品| 中文字幕一区二区日韩精品绯色| 粉嫩aⅴ一区二区三区四区| 国产午夜精品一区二区三区视频| 激情六月婷婷综合| 国产亚洲综合av| 国产超碰在线一区| 中文欧美字幕免费| 99精品久久久久久| 亚洲女女做受ⅹxx高潮| 欧美在线不卡一区| 天天色综合天天| 日韩视频免费观看高清完整版在线观看| 日韩激情av在线| 欧美成人女星排行榜| 国产一区999| 日韩理论片网站| 欧美在线免费观看视频| 五月天亚洲精品| 欧美草草影院在线视频| 国产一区高清在线| 亚洲欧美日韩在线不卡| 欧美日韩三级一区| 韩国三级在线一区| 国产精品美女一区二区三区| 色噜噜久久综合| 天堂影院一区二区| 久久综合给合久久狠狠狠97色69| 国产精品自拍一区| 亚洲在线中文字幕| 精品国产伦一区二区三区观看方式| 成人丝袜18视频在线观看| 一区二区三区小说| 欧美xxx久久| 白白色 亚洲乱淫| 视频一区中文字幕| 中文字幕乱码久久午夜不卡 | 国产91精品一区二区麻豆亚洲| 国产亚洲人成网站| 在线免费观看视频一区| 久久99最新地址| 亚洲视频狠狠干| 欧美亚洲国产一区在线观看网站| 午夜欧美视频在线观看| 国产欧美综合在线观看第十页| 色呦呦一区二区三区| 久久成人久久鬼色| 亚洲欧美另类久久久精品| 日韩欧美在线观看一区二区三区| 成人蜜臀av电影| 免费在线一区观看| ...xxx性欧美| 久久久国产精品麻豆| 91麻豆免费看| 国产精品亚洲专一区二区三区| 亚洲综合网站在线观看| 久久久久国产精品厨房| 91成人国产精品| 成人性生交大片免费看视频在线| 日韩精品国产欧美| 一区二区三区中文字幕在线观看| 日韩欧美一级二级三级久久久| 99天天综合性| 国产精品一卡二卡在线观看| 青青草国产精品亚洲专区无| 亚洲午夜一区二区| 亚洲乱码日产精品bd| 欧美激情一区二区三区四区| 精品久久久久久久久久久久包黑料| 在线精品亚洲一区二区不卡| www.久久精品| 丰满亚洲少妇av| 国产一区二区三区电影在线观看| 日本一道高清亚洲日美韩| 亚洲另类中文字| 中文字幕亚洲在| 国产精品毛片a∨一区二区三区| 欧美精品一区二区高清在线观看| 欧美日本在线观看| 欧美日韩性生活| 欧美日韩一区小说| 精品视频一区二区三区免费| 91精品福利视频| 国v精品久久久网| 夜夜精品浪潮av一区二区三区| 日本一区二区三区国色天香 | 亚洲午夜视频在线| 亚洲一区二区三区四区在线免费观看 | 欧美体内she精视频| 一本一本大道香蕉久在线精品| 国产超碰在线一区| 成人网在线播放| 99免费精品在线观看| 99re66热这里只有精品3直播| 99久久伊人精品| 色综合天天做天天爱| 日本一区二区三区国色天香| 欧美国产精品专区| 亚洲婷婷国产精品电影人久久| 亚洲视频中文字幕| 午夜精品一区在线观看| jlzzjlzz亚洲女人18| 99久久精品免费看国产| 色av成人天堂桃色av| 欧美综合欧美视频| 在线播放日韩导航| 欧美一区二区黄| 精品久久一二三区| 国产精品久久免费看| 夜夜嗨av一区二区三区中文字幕| 亚洲综合免费观看高清完整版在线| 亚洲一区av在线| 久久成人久久爱| 91亚洲精华国产精华精华液| 欧美午夜电影在线播放| 精品国产3级a| 亚洲精品中文字幕乱码三区 | 午夜精品久久久久久久蜜桃app| 男女激情视频一区| 岛国av在线一区| 欧美午夜不卡视频| 精品成a人在线观看| 亚洲欧美另类久久久精品2019| 日本vs亚洲vs韩国一区三区| 国产成人综合亚洲网站| 色狠狠色噜噜噜综合网| 日韩欧美在线一区二区三区| 亚洲天堂中文字幕| 欧美a级理论片| 91丨九色丨蝌蚪丨老版| 日韩一区二区在线免费观看| 国产精品久99| 精品在线免费观看| 欧洲精品视频在线观看| 久久久久久久免费视频了| 亚洲国产色一区| 国产精品69久久久久水密桃 | 99久久99久久久精品齐齐| 欧美一级日韩不卡播放免费| 中文字幕亚洲在| 国产尤物一区二区在线| 欧美色中文字幕| 中文字幕一区二区三区乱码在线| 久久黄色级2电影| 欧美视频一区在线观看| 国产精品你懂的在线欣赏| 日韩黄色免费网站| 色噜噜狠狠色综合欧洲selulu | 欧美在线视频不卡| 国产精品视频一二| 久久精品国产99国产精品| 色先锋资源久久综合| 国产精品免费看片| 国产一区二区在线影院| 日韩视频一区二区| 午夜久久久影院| 91电影在线观看| 亚洲婷婷在线视频| 99久久综合99久久综合网站| 久久亚洲一区二区三区明星换脸| 免费人成在线不卡| 777色狠狠一区二区三区| 一区二区三区四区在线| eeuss鲁片一区二区三区在线看| 2023国产精品| 国产原创一区二区|