/**
* Copyright yuugurenote ( http://wonderfl.net/user/yuugurenote )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/7m7L
*/
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
[SWF(width=465,height=465,backgroundColor=0xFFFFFF,frameRate=60)]
public class FlashTest extends Sprite {
var nx:Number=10;//この数値が六角形の基準値 あとは無理矢理計算です。
var ny:Number=nx*1.6875;
var num:Number=nx*3.714286;
//Illusratorで立方体を作成するときに
//六角形を3つ作り角度を回転してから
//周りに並べてパスファインダの分割で
//立方体にします。そのときの動きを
//ASで表現してみました。計算方法とか
//Spriteの書き方とか無茶苦茶かと思います(´・ω・`)
public function FlashTest() {
// write as3 code here..
stage.addEventListener(MouseEvent.MOUSE_DOWN,xDown);
function xDown(e:MouseEvent):void {
//六角形を回転させるためのbase
var base:Sprite = new Sprite();
base.graphics.lineStyle(1,0x000000,0);
base.graphics.drawRect(-num/2,-num/2,num,num);
base.x=mouseX;//0;
base.y=mouseY;//0;
base.rotation=-90;
addChild(base);
//六角形Sprite1
var mySprite:Sprite = new Sprite();
mySprite.graphics.lineStyle(1,0x000000,1);
mySprite.graphics.moveTo(nx,0);
mySprite.graphics.lineTo(nx * 2.875,0);
mySprite.graphics.lineTo(nx * 3.875,ny);
mySprite.graphics.lineTo(nx * 2.875,ny * 2);
mySprite.graphics.lineTo(nx,ny * 2);
mySprite.graphics.lineTo(0,ny);
mySprite.graphics.lineTo(nx,0);
mySprite.alpha=1;
mySprite.x=- num/2;
mySprite.y=- num/2;
base.addChild(mySprite);
//六角形Sprite2
var mySprite2:Sprite = new Sprite();
mySprite2.graphics.lineStyle(1,0x000000,1);
mySprite2.graphics.moveTo(nx,0);
mySprite2.graphics.lineTo(nx * 2.875,0);
mySprite2.graphics.lineTo(nx * 3.875,ny);
mySprite2.graphics.lineTo(nx * 2.875,ny * 2);
mySprite2.graphics.lineTo(nx,ny * 2);
mySprite2.graphics.lineTo(0,ny);
mySprite2.graphics.lineTo(nx,0);
mySprite2.alpha=0;
mySprite2.x=mySprite.x*2;
mySprite2.y=mySprite.y;
base.addChild(mySprite2);
//六角形Sprite3
var mySprite3:Sprite = new Sprite();
mySprite3.graphics.lineStyle(1,0x000000,1);
mySprite3.graphics.moveTo(nx,0);
mySprite3.graphics.lineTo(nx * 2.875,0);
mySprite3.graphics.lineTo(nx * 3.875,ny);
mySprite3.graphics.lineTo(nx * 2.875,ny * 2);
mySprite3.graphics.lineTo(nx,ny * 2);
mySprite3.graphics.lineTo(0,ny);
mySprite3.graphics.lineTo(nx,0);
mySprite3.alpha=0;
mySprite3.x= mySprite.x/2 + (mySprite.x*-0.08266)/2;
mySprite3.y= -(mySprite.x*-0.08266);//15.35;
base.addChild(mySprite3);
//立方体の線0
var mySprite0:Sprite = new Sprite();
mySprite0.graphics.lineStyle(1,0x000000,1);
mySprite0.graphics.moveTo(nx,0);
mySprite0.graphics.lineTo(nx * 2.875,0);
mySprite0.graphics.lineTo(nx * 3.875,ny);
mySprite0.graphics.lineTo(nx * 2.875,ny * 2);
mySprite0.graphics.lineTo(nx,ny * 2);
mySprite0.graphics.lineTo(0,ny);
mySprite0.graphics.lineTo(nx,0);
mySprite0.alpha=0;
mySprite0.x=- num/2;
mySprite0.y=- num/2;
base.addChild(mySprite0);
//立方体の線1
var mySprite4:Sprite = new Sprite();
mySprite4.graphics.lineStyle(1,0x000000,1);
mySprite4.graphics.moveTo(mySprite.width/2 + (mySprite.x*-0.08266)/2,mySprite.height/2);
mySprite4.graphics.lineTo(nx * 3.875,ny);
mySprite4.alpha=0;
mySprite0.addChild(mySprite4);
//立方体の線2
var mySprite5:Sprite = new Sprite();
mySprite5.graphics.lineStyle(1,0x000000,1);
mySprite5.graphics.moveTo(mySprite.width/2 + (mySprite.x*-0.08266)/2,mySprite.height/2);
mySprite5.graphics.lineTo(nx,ny * 2);
mySprite5.alpha=0;
mySprite0.addChild(mySprite5);
//立方体の線3
var mySprite6:Sprite = new Sprite();
mySprite6.graphics.lineStyle(1,0x000000,1);
mySprite6.graphics.moveTo(mySprite.width/2 + (mySprite.x*-0.08266)/2,mySprite.height/2);
mySprite6.graphics.lineTo(nx,0);
mySprite6.alpha=0;
mySprite0.addChild(mySprite6);
//六角形の動き
base.addEventListener(Event.ENTER_FRAME,xMove);
function xMove(e:Event):void {
base.rotation+=3;
if (base.rotation>=90) {
base.rotation=90;
mySprite2.addEventListener(Event.ENTER_FRAME,mySpAlpha);
mySprite3.addEventListener(Event.ENTER_FRAME,mySpAlpha);
mySprite0.addEventListener(Event.ENTER_FRAME,mySpAlpha);
mySprite4.addEventListener(Event.ENTER_FRAME,mySpAlpha);
mySprite5.addEventListener(Event.ENTER_FRAME,mySpAlpha);
mySprite6.addEventListener(Event.ENTER_FRAME,mySpAlpha);
base.removeEventListener(Event.ENTER_FRAME,xMove);
}
}
function mySpAlpha(e:Event):void {
var mySp:Sprite=e.target as Sprite;
mySp.alpha+=0.01;
if (mySp.alpha>1) {
base.removeChild(mySprite);
base.removeChild(mySprite2);
base.removeChild(mySprite3);
mySprite2.removeEventListener(Event.ENTER_FRAME,mySpAlpha);
mySprite3.removeEventListener(Event.ENTER_FRAME,mySpAlpha);
mySprite0.removeEventListener(Event.ENTER_FRAME,mySpAlpha);
mySprite4.removeEventListener(Event.ENTER_FRAME,mySpAlpha);
mySprite5.removeEventListener(Event.ENTER_FRAME,mySpAlpha);
mySprite6.removeEventListener(Event.ENTER_FRAME,mySpAlpha);
}
}
}
}
}
}