クルクル

by mikelito33bdx
♥0 | Line 63 | Modified 2010-08-11 14:01:52 | MIT License
play

ActionScript3 source code

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

package 
{
    import flash.display.Graphics;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.text.TextField;
    import flash.geom.*;
    
    public class Main extends Sprite {
        
        private var _sp:Sprite;
        private var _w:Number = 100;
        private var _h:Number = 100;
        private var _gray:Sprite;
        private var _black:Sprite;
        public function Main():void {
            
            _sp = new Sprite();
            var g:Graphics = _sp.graphics;
            g.beginFill(0xFF0000);
            g.drawRect(0, 0, 0, 0);
            g.endFill();
            this.addChild(_sp);
            _sp.x = stage.stageWidth/2;
            _sp.y = stage.stageHeight / 2;
            _sp.addEventListener(Event.ENTER_FRAME, doRotate);
            
            creatRects();
        }
        
        private function creatRects():void {
            
            _gray = new Sprite();
            _sp.addChild(creatRect(_gray, 0xCCCCCC, _w / 2, -_h / 2, 180,"hoge" ));
            
            _black = new Sprite();
            _sp.addChild(creatRect(_black, 0, -_w / 2, -_h / 2, 0,"hoge"));
        }
        
        private function creatRect(mySp:Sprite, color:Number, myX:Number, myY:Number, rotaY:Number,myText:String):Sprite {
            var mySp = new Sprite();
            var myG:Graphics = mySp.graphics;
            myG.beginFill(color);
            myG.drawRect(0, 0, 100, 100);
            myG.endFill();
            mySp.rotationY = rotaY;
            mySp.x = myX;
            mySp.y = myY;
            mySp.z = 0;
            
            var myTF:TextField = new TextField();
            myTF.text = myText;
            myTF.textColor = 0xFFFFFF;
            myTF.x = 50;
            myTF.y = 50;
            mySp.addChild(myTF);
            
            return mySp;
        }
        
        private function doRotate(e:Event):void {
            _sp.rotationY += 5;
            changeOrder();
        }
        
        private function changeOrder():void {
            var faceSp:Sprite;
            faceSp = _sp.getChildAt(0) as Sprite;
            var myVector3D:Vector3D = faceSp.transform.getRelativeMatrix3D(this).position;
            if (myVector3D.x < stage.stageWidth/2) {
                _sp.setChildIndex(faceSp, 1);
            }
            
        }
        
    }
    
}