⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jellypanel.as.svn-base

📁 Flex3实现的掼蛋游戏
💻 SVN-BASE
字号:
/*
projects	: 果冻弹出窗口
author		: sban http://blog.sban.com.cn/
date		: 2008/4/1

more..

flex5 Team	http://groups.google.com/group/flex5/
flex5 Code	http://code.google.com/p/flex5/
flex5 demo	http://flex5.cn/
sban blog	http://blog.sban.com.cn/
.net blog	http://sban.cnblogs.com/

About Me
sban is a software architect base on .net & flash/flex, who living in Beijing, China now.

MSN
sban#live.cn


*/
package sban.controls{
	import com.adobe.ac.mxeffects.Distortion;
	import com.adobe.ac.mxeffects.DistortionConstants;
	
	import flash.events.TimerEvent;
	import flash.geom.Point;
	import flash.utils.Timer;
	
	import mx.containers.Panel;


	public class JellyPanel extends Panel {

		private const InitPoint:Point = new Point(100,100);
		
		private var distortion: Distortion;
		private var currentPoint : Number = 0;
		
		private var pointsSpecimen:Array;
		private var pointsArray : Array;
		private var distortionTimeer : Timer;
		
		//窗口振动次数
		public var vibrationCount : Number = 30;
		
		//振动间隔
		public var delayNumber : Number = 18;
		
		private var dyncDelayNumber : Number = delayNumber;

		public function JellyPanel() {
			//TODO: implement function
			super();
			
			distortionTimeer = new Timer(delayNumber, vibrationCount);
			distortionTimeer.addEventListener(TimerEvent.TIMER, timerHandler);
			
			//欠组尼曲线采样点集合
			pointsSpecimen = [
				50,55.251048395021485,67.86320984930961,83.2024901610665,97.44865698524941,
				108.11123531529728,114.13278592010593,115.6794726556897,113.7514225333381,
				109.74227285271256,105.04958100112648,100.79808814176877,97.69749345012417,
				96.023554262826,95.69027018664536,96.37235141377161,97.63915519115437,
				99.07033390929932,100.33572339218681,101.2341473366892,101.69546822829375,
				101.75619974227371,101.52120076364723,101.12306421982154,100.68788141853504,
				100.312273569012,100.05293362397794,99.9270920221492,99.92062845073377,100
			];
		}
		
		private function timerHandler(evt : TimerEvent) : void {
			
			currentPoint++;
			dyncDelayNumber = dyncDelayNumber + 0.5;
			
			var leftTopPoint : Point = new Point(pointsArray[0][currentPoint], pointsArray[0][currentPoint]);
			var rightTopPoint : Point = new Point(pointsArray[1][currentPoint], pointsArray[1][currentPoint]);
			var rightBottomPoint : Point = new Point(pointsArray[2][currentPoint], pointsArray[2][currentPoint]);
			var leftBottomPoint : Point = new Point(pointsArray[3][currentPoint], pointsArray[3][currentPoint]);
			
			distortion.renderCorners(leftTopPoint, rightTopPoint, rightBottomPoint, leftBottomPoint);
			
			if (currentPoint >= vibrationCount) {
				reset();
			}
		}
		
		private function reset():void {
			if (distortion != null) {
				distortion.destroy();
				distortion = null;
			}
			
			dyncDelayNumber = delayNumber;
			distortionTimeer.repeatCount = vibrationCount;
			currentPoint = 0;
			distortionTimeer.reset();
		}
		
		private function generatePointsArray(): void {

			var tempPointsArr:Array = new Array(4);
			var n1:Number;
			var n2:Number;
			var n3:Number;
			var n4:Number;

			pointsArray = new Array();

			var pointNum : Number = pointNum = 0;

			while (pointNum++ < 5) {
				
				tempPointsArr = [];

				n1 = Math.random() * 0.70 + 0.80;
				n2 = 0;

				while (n2++ <= vibrationCount) {
					
					n4 = Math.round(n2 * n1);
					
					if (n4 <= vibrationCount - 4) {
						tempPointsArr.push(pointsSpecimen[n4]);
						continue;
					}
					
					tempPointsArr.push(100);
				}
				
				pointsArray.push(tempPointsArr);
			}
			
		}

		public function show():void {
			
			if (distortion != null) {
				return;
			}

			distortion = new Distortion(this);
			distortion.buildMode = DistortionConstants.POPUP;
			distortion.smooth = true;
			
			generatePointsArray();
			
			distortionTimeer.repeatCount = vibrationCount;
			distortionTimeer.start();
		}
		
		public function hide():void {
			visible = false;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -