📄 dancingpolygon.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 + -