Texture
一定間隔にオブジェクトを配置したtextureを作成します。
♥0 |
Line 80 |
Modified 2011-10-29 23:52:53 |
MIT License
archived:2017-03-20 16:52:50
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/5ult
*/
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();
}
}