forked from: Texture
forked from Texture (diff: 36)
ActionScript3 source code
/**
* Copyright t2421 ( http://wonderfl.net/user/t2421 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/mN4I
*/
// forked from t2421's Texture
package {
import flash.events.Event;
import flash.display.Sprite;
public class Main extends Sprite {
private var rect_arr:Array;
private var texture:Texture;
public function Main() {
this.addEventListener(Event.ADDED_TO_STAGE,added2);
trace("start");
}
private function added2(e:Event):void{
texture = new Texture(stage.stageWidth,stage.stageHeight,new RectObject(),Param.OFFSET);
addChild(texture);
}
}
}
import flash.events.TimerEvent;
import flash.utils.*;
import flash.display.Sprite;
class Texture extends Sprite{
public function Texture(horizontalSize:Number,verticalSize:Number,object:Object,offset:Number,basePoint:Number=0){
var hNum:uint = calcNumOfObj(horizontalSize,object.width,offset);
var vNum:uint = calcNumOfObj(verticalSize,object.height,offset);
var totalNum:uint = hNum*vNum;
var hCount:uint = 0;
var vCount:uint = 0;
var className:Class = object.constructor;
var delayCalls:Array=[];
var rects:Array = [];
if (i % hNum == 0 && i != 0){
hCount = 0;
vCount++;
}
for (var i:int = 0; i < totalNum; i++)
{
var rect:RectObject = new className();
if (i % hNum == 0 && i != 0){
hCount = 0;
vCount++;
}
rect.alpha = 0;
rect.x = offset + basePoint + horizontalSize / hNum * hCount;
rect.y = offset + basePoint + verticalSize / vNum * vCount;
addChild(rect);
rects.push(rect);
rects[i].delayCall(1000*i);
//delayCalls.push(new Delay(500,test));
//delayCalls[i].excute();
hCount++
}
function test():void{
rects[i].alpha = 1;
}
function calcNumOfObj(totalSize:Number,objSize:Number,offset:Number):uint{
var num:uint = totalSize / (objSize+offset);
return num;
}
}
}
class Param{
public static const NUM_RECT:uint = 10;
public static const OFFSET:Number = 20;
public static const RECT_WIDTH:Number = 50;
function Param(){
}
}
import flash.utils.ByteArray;
class RectObject extends Sprite{
private var delay:Number;
function RectObject(w:Number=50,h:Number=50,c:uint=0x000000){
this.graphics.beginFill(c);
this.graphics.drawRect(-w/2,-h/2,w,h);
this.graphics.endFill();
}
public function delayCall(delay:Number):void{
this.delay = delay;
var delayCall:Delay = new Delay(delay,doAlpha);
delayCall.excute();
}
private function doAlpha():void{
this.alpha=1;
var delayCall:Delay = new Delay(delay,doRotate);
delayCall.excute();
}
private function doRotate():void{
this.rotation+=45;
}
}
class Delay{
private var delayTimer:Timer;
private var callbackfunc:Function;
function Delay(delay:Number,callback:Function){
callbackfunc = callback;
delayTimer = new Timer(delay,1);
delayTimer.addEventListener(TimerEvent.TIMER_COMPLETE,completeHandler);
}
public function excute():void{
delayTimer.start();
}
private function completeHandler(e:TimerEvent):void{
delayTimer.removeEventListener(TimerEvent.TIMER_COMPLETE,completeHandler);
callbackfunc();
}
}