Texture

by t2421
一定間隔にオブジェクトを配置したtextureを作成します。
♥0 | Line 80 | Modified 2011-10-29 23:52:53 | MIT License
play

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();
    }


    
}

Forked