forked from: Texture
forked from Texture (diff: 1)
ActionScript3 source code
/**
* Copyright Fash_Lee ( http://wonderfl.net/user/Fash_Lee )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/gXez
*/
// 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;
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.x = offset + basePoint + horizontalSize / hNum * hCount;
rect.y = offset + basePoint + verticalSize / vNum * vCount;
addChild(rect);
hCount++
}
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{
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();
}
}
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();
}
}
