市松模様
最初にしたかったことと大幅にズレてしまい結局もう何が何だか。
♥0 |
Line 89 |
Modified 2010-05-28 10:19:33 |
MIT License
archived:2017-03-20 04:08:04
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/n5rc
*/
//最初にしたかったことと大幅にズレてしまい結局もう何が何だか。
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);
timer = new Timer(500);
timer.addEventListener("timer", function():void{
var dist:int = 20;
for(var i:int=0;i<= stage.stageWidth;i+=dist){
var menuRing:Sprite = new MenuRing(i,cnt*dist-dist/2);//カオス。
menuRing.alpha = 1/cnt;
stage.addChild(menuRing);
}
cnt++;
if(cnt*dist >= stage.stageWidth || cnt*dist >= stage.stageHeight){
stage.removeEventListener("timer", arguments.callee);
timer.stop();
}
});
timer.start();
}
//本来の目的の名残
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;
class MenuRing extends Sprite{
public function MenuRing(centerX:int,centerY:int):void{
const distance:int = 10;
var cPoint:Point = new Point(centerX,centerY); //中心ポイント
var ragArr:Array = new Array(); //各ボタンが移動するべき角度を入れる配列
var ragian:int;
var timer:Timer;
var cnt:int = 0;
var btnArr:Array = new Array;
for(var i:int=0;i<4;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].x = cPoint.x - (btnArr[cnt].width / 2);
btnArr[cnt].y = cPoint.y - (btnArr[cnt].height / 2);
btnArr[cnt].setting(distance,ragian*(cnt+1));
addChild(btnArr[cnt]);
cnt++;
if(cnt == btnArr.length){
stage.removeEventListener("timer", arguments.callee);
timer.stop();
}
});
timer.start();
}
}
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(0x000000,1);
graphics.drawRect(0,0,10,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);
}
}
}