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

📄 dancingpolygon.as

📁 跳动的五彩多边形
💻 AS
字号:
package com.shinedraw.drawings {
	import flash.events.TimerEvent;	
	import flash.utils.Timer;	
	import flash.events.Event;	
	import flash.display.Sprite;
	
	/*
	*	A Dancing Polygon Demonstration in Actionscript 3
	*   from shinedraw.com
	*/
	
	public class DancingPolygon extends Sprite {
        private static var APP_WIDTH:Number = 550;    	// Application Width
        private static var APP_HEIGHT:Number = 400;   	// Application Height
        private static var TOTAL_POLYGON:int = 50;		// Number of polygon to be displayed
        private static var ALPHA_MIN:Number = 0;		// Minimum alpha 
        private static var ALPHA_MAX:Number = 0.5;		// Maximum alpha
        private static var CORNER_MIN:int = 3;			// Minimum corner
        private static var CORNER_MAX:int = 10;			// Maximum corner
        private static var RADIUS_MIN:Number = 20;		// Minimum radius
        private static var RADIUS_MAX:Number = 150;		// Maximum radius
		
		private var _timer : Timer;						// Control the next animation
		private static var WAIT_PERIOD:int = 8000;		// Time wait for next animation
		private var _polygons:Array = new Array();		// Store all the added polygons
		private var _addPolygon : Boolean = false;		// flag for adding polygon
		private var _counter:int = 0;					// Counter for number of added polygon

		public function DancingPolygon() {
			
			// initialize all the polygons first
			for(var i:int = 0; i < TOTAL_POLYGON; i++){
				var polygon : Polygon = new Polygon();
				_polygons.push(polygon);
			}
			
			// create handlers
			_timer = new Timer(WAIT_PERIOD, 1);
			_timer.addEventListener(TimerEvent.TIMER_COMPLETE, on_timer_complete);
			addEventListener(Event.ENTER_FRAME, on_enter_frame);
			
			// add the first batch of polygons
			startAddingPolygon();
		}
		
		/////////////////////////////////////////////////////        
		// Handlers 
		/////////////////////////////////////////////////////	
		
		private function on_timer_complete(e : TimerEvent):void{
			// remove and start adding polygons
			clearAllPolygon();
			startAddingPolygon();
		}

		private function on_enter_frame(e : Event):void{
			if(_addPolygon){
				if(_counter < TOTAL_POLYGON){
					var alpha:Number = ALPHA_MIN + (ALPHA_MAX  - ALPHA_MIN) * Math.random();	
					var corner:int = int(CORNER_MIN + Math.round(CORNER_MAX - CORNER_MIN) * Math.random());
					var radius:Number = RADIUS_MIN + (RADIUS_MAX  - RADIUS_MIN) * Math.random();
					var color:uint = uint(0xFFFFFF * Math.random());
					var offsetX:Number = APP_WIDTH * Math.random();
					var offsetY:Number = APP_HEIGHT * Math.random();
					
					var polygon : Polygon = _polygons[_counter] as Polygon;
					polygon.draw(corner, radius, color, alpha);
					polygon.x = offsetX;
					polygon.y = offsetY;
					
					if(!contains(polygon)){
						addChild(polygon);
					}
					polygon.startAnimation();
					_counter ++;
				}else{
					_addPolygon = false;
					_timer.start();	
				}
			}
		}
		
		/////////////////////////////////////////////////////        
		// Private Methods 
		/////////////////////////////////////////////////////	
		
		private function startAddingPolygon():void{
			// enable the flag and restart counter
			_counter = 0;
			_addPolygon = true;
		}
		
		// clear all added polygons
		private function clearAllPolygon():void{
			for(var i:int = 0; i < TOTAL_POLYGON; i++){
				var polygon : Polygon = _polygons[i] as Polygon;
				if(contains(polygon)){
					removeChild(polygon);
				}	
			}	
		}
		
		/////////////////////////////////////////////////////        
		// Public Methods 
		/////////////////////////////////////////////////////	
		
		/////////////////////////////////////////////////////        
		// Properties
		/////////////////////////////////////////////////////			
	}
}

⌨️ 快捷键说明

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