変なもの。

by seino forked from 市松模様 (diff: 34)
最初にしたかったことと大幅にズレてしまい結局もう何が何だか。
♥0 | Line 78 | Modified 2010-05-29 23:46:25 | MIT License
play

ActionScript3 source code

/**
 * Copyright seino ( http://wonderfl.net/user/seino )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/pgDt
 */

// forked from kagetiyo523's 市松模様
//最初にしたかったことと大幅にズレてしまい結局もう何が何だか。
package {
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.utils.Timer;
    public class RingCommand extends Sprite {

         public function RingCommand():void {
           var timer:Timer;
    	       var cnt:int = 0;
           stage.addEventListener(MouseEvent.CLICK,mouseClick);
        }
        
        //本来の目的の名残
        public function mouseClick(e:MouseEvent):void{
           var menuRing:Sprite = new MenuRing(stage.mouseX,stage.mouseY);
           stage.addChild(menuRing);
        }
    }
}

  import flash.display.Sprite;
  import flash.geom.Point;
  import flash.utils.Timer;
  import flash.events.TimerEvent;
  import flash.events.MouseEvent;
  class MenuRing extends Sprite{
  	private const distance:int = 20;//中心点からの距離
  	private var btnArr:Array = new Array;
  	
     public function MenuRing(centerX:int,centerY:int):void{
            
            var cPoint:Point = new Point(centerX,centerY); //中心ポイント
            var ragian:int;
            var timer:Timer;
            var cnt:int = 0;
            
            x = centerX;
            y = centerY;
            
            for(var i:int=0;i<Math.round(8*Math.random());i++){
               var spr:Sprite = new MenuButton();
            	   btnArr.push(spr);
            	}
            
           ragian = Math.round(360 / btnArr.length);//360を超えないでください><
            
           timer = new Timer(100);
           timer.addEventListener("timer", function():void{
                                            btnArr[cnt].setting(distance,ragian*(cnt+1));
                                            addChild(btnArr[cnt]);
                                            cnt++;
                                            if(cnt == btnArr.length){
                                               timer.removeEventListener("timer", arguments.callee);
                                               timer.stop();
                                               addEventListener(Event.ENTER_FRAME,onClick);
                                            }
                                           });
           timer.start();

        
     }
     
     private function onClick(e:Event):void{
     	rotationZ +=10;
     }
  
  }

    import flash.display.Sprite;
    import flash.events.Event;
    class MenuButton extends Sprite{
    private var gX:int = 0;
    private var gY:int = 0;
    //引数に画像とか使えるようにしたい。
    public function MenuButton(){
      graphics.beginFill(Math.floor(Math.random() * 0xffffff),1);
      graphics.drawCircle(0,0,10);
      graphics.endFill();
    }
    
    public function setting(distance:int,ragian:int):void{   
      gX = x + Math.cos(ragian * Math.PI / 180) * distance;
      gY = y + Math.sin(ragian * Math.PI / 180) * distance;
      addEventListener(Event.ENTER_FRAME,positionSet);
    }
    
    public function positionSet(e:Event):void{
       x = (x + gX) /2;
       y = (y + gY) /2;
       if(Math.round(y) == gY && Math.round(x) == gX){
          y = gY;
          x = gX;
          removeEventListener(Event.ENTER_FRAME ,positionSet);
        }
     }

    }

Forked