forked from: Cube

by bradsedito forked from Cube (diff: 45)
キューブ
♥0 | Line 130 | Modified 2011-03-30 03:54:09 | MIT License
play

ActionScript3 source code

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

// forked from quail24eggs's Cube
// キューブ

package 
{
    import flash.display.Sprite;
    import flash.events.Event;
    public class Main extends Sprite 
    {
        
        public function Main():void 
        {
            var nUnit:Number = 200;//格子定数
            var sq1:Sprite  = new Sprite();
            var sq2:Sprite  = new Sprite();
            var sq3:Sprite  = new Sprite();
            var sq4:Sprite  = new Sprite();
            var sq5:Sprite  = new Sprite();
            var sq6:Sprite  = new Sprite();
            var sq11:Sprite = new Sprite();
            var sq22:Sprite = new Sprite();
            var sq33:Sprite = new Sprite();
            var sq44:Sprite = new Sprite();
            var sq55:Sprite = new Sprite();
            var sq66:Sprite = new Sprite(); 
            mySquare(sq1,  nUnit);
            mySquare(sq2,  nUnit);
            mySquare(sq3,  nUnit);
            mySquare(sq4,  nUnit);
            mySquare(sq5,  nUnit);
            mySquare(sq6,  nUnit);
            mySquare(sq11, nUnit);
            mySquare(sq22, nUnit);
            mySquare(sq33, nUnit);
            mySquare(sq44, nUnit);
            mySquare(sq55, nUnit);
            mySquare(sq66, nUnit);
            function mySquare(sqName:Sprite, m:Number):void //Sprite のプロパティ設定
            {
                sqName.graphics.beginFill(0xFFFFFF* Math.random());
                sqName.x = m;
                sqName.y = m;
                sqName.alpha = 0.2;
                sqName.graphics.drawRect(0, 0, m, m);
            }
            
            var nX:Number = stage.stageWidth / 2;
            var nY:Number = stage.stageHeight / 2;
            var nDec:Number = 1/80;//減速率
            var mySprite:Sprite = new Sprite();
            
            this.addChild(mySprite);
            mySprite.x = nX;
            mySprite.y = nY;//mySprite  stage 中央へ
            
            
            mySprite.addChild(sq1  );
            mySprite.addChild(sq2  );
            mySprite.addChild(sq3  );
            mySprite.addChild(sq4  );
            mySprite.addChild(sq5  );
            mySprite.addChild(sq6  );
            mySprite.addChild(sq11 );
            mySprite.addChild(sq22 );
            mySprite.addChild(sq33 );
            mySprite.addChild(sq44 );
            mySprite.addChild(sq55 );
            mySprite.addChild(sq66 );
            sq1.x = -nUnit / 2;
            sq1.y = -nUnit / 2;
            sq1.z = -nUnit / 2;
            sq2.x = nUnit / 2;
            sq2.y = -nUnit / 2;
            sq2.z = -nUnit / 2;
            sq3.x = nUnit / 2;
            sq3.y = -nUnit / 2;
            sq3.z = nUnit / 2;
            sq4.x = -nUnit / 2;
            sq4.y = -nUnit / 2;
            sq4.z =   nUnit / 2;
            sq5.x = -nUnit / 2;
            sq5.y = -nUnit / 2;
            sq5.z = -nUnit / 2;
            sq6.x = -nUnit / 2;
            sq6.y =   nUnit / 2;
            sq6.z = -nUnit / 2;
            
            sq11.x = -nUnit / 2;
             sq11.y = -nUnit / 2;
              sq11.z = -nUnit / 2;
            sq22.x = -nUnit / 2;
              sq22.y = -nUnit / 2;
               sq22.z = -nUnit / 2;
            sq33.x = -nUnit / 2;
             sq33.y = -nUnit / 2;
              sq33.z = -nUnit / 2;
            sq44.x = -nUnit / 2;
             sq44.y = -nUnit / 2;
              sq44.z = -nUnit / 2;
            sq55.x = -nUnit / 2;
             sq55.y = -nUnit / 2;
              sq55.z = -nUnit / 2;
            sq66.x = -nUnit / 2;
             sq66.y = -nUnit / 2;
              sq66.z = -nUnit / 2;
    
            sq2.rotationY = -90;
            sq3.rotationY = -180;
            sq4.rotationY = -270;
            sq5.rotationX = 90;
            sq6.rotationX = 90;

            sq22.rotationZ += -190;
            sq33.rotationZ += -1180;
            sq44.rotationZ += -1270;
            sq55.rotationZ -= 190;
            sq66.rotationZ -= 190;

            addEventListener(Event.ENTER_FRAME,xyRotate);
            
            function xyRotate(obj:Event):void
            {
                var nRotX:Number = mySprite.rotationX;
                nRotX -= (mouseY - nY) * nDec; //The Variable nDec is defined in the line 34. 
                nRotX = getDegree(nRotX);
                mySprite.rotationX = nRotX;
                
                var nRotY:Number = mySprite.rotationY;
                nRotY += (mouseX - nX) * nDec;
                nRotY = getDegree(nRotY);
                mySprite.rotationY = nRotY;
                
            }
            function getDegree(n:Number):Number
            {
                n += 180;
                n %= 360;
                n += 360;
                n %= 360;
                n -= 180;
                return n;
            }
        }
        
    }
    
}