TextButtonTest3

by Nowloading_
♥0 | Line 128 | Modified 2010-10-20 00:26:07 | MIT License
play

ActionScript3 source code

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

// forked from ton_'s TextButtonTest2
// forked from ton_'s TextButtonTest1
/**
テキストボタン実験4
右中に簡易演出窓作成
クリック時の_nowの値に+1して(1<=_now+1<=6)
それを6で割り、0xffffffに書けている

とりあえずここまでで終了。
BitmapData,Bitmapの知識と
Button(),Sprite,などなど要勉強

次回からスロット制作サンプルとし、
抽選の具体化、演出の複雑かを行う
**/
package {
    import flash.geom.Matrix;
    import flash.events.Event;
    import flash.display.Sprite;
    import flash.display.MovieClip;
    import flash.events.MouseEvent;
    import flash.text.TextField;
    import flash.text.TextFormat;
    import flash.display.BitmapData;
    import flash.display.Bitmap;
    
    public class FlashTest extends Sprite {
        private var _fld:TextField;
        private var _fld2:TextField;
        private var _tf2:TextFormat;
        private var _XY:Array = new Array();
        private var _Sai:Array = [0,0,0,0,0,0];
        private var _now:int;
        private var _Sum:int = 0;
        public var bgColor:Sprite;
        private var _button:MyButton; 
        private var _bData:BitmapData;
        private var _bmat:Matrix;
        private var _bspr:Sprite;
        
        //メインファンクション        
        public function FlashTest() {
            setStage();              
            Text();
            Text2();

            Button();
            addEvent();
        }   
        //ステージ描画
        private function setStage():void{
            graphics.lineStyle(1,0x000000);
            graphics.drawRect(0,0,464,464);
            graphics.drawRect(300,45,464,360);
        }      
        //テキストフィールド1(画面左)の情報
        private function Text():void{
            _fld = new TextField();
            _fld.wordWrap = true;
            _fld.height = 355;
            _fld.width = 300;
            _fld.border = true; 
            addChild(_fld);         
        }
        //テキストフィールド2(画面右上)の情報
        private function Text2():void{
            //書式設定
            _tf2 = new TextFormat();
            _tf2.size = "22";
            
            _fld2 = new TextField();
            _fld2.wordWrap = true;
            _fld2.x = 300;
            _fld2.y = 0; 
            _fld2.height = 45;
            _fld2.width = 164;
            _fld2.border = true; 
            _fld2.defaultTextFormat = _tf2;
            addChild(_fld2); 
        }
        //演出画面(画面右中)の情報
        public function bmp1(color:int):void{
            color = color+1;
            var bc : uint  = color/6 * 0xffffff;
            
            var matrix:Matrix = new Matrix();
            matrix.createGradientBox(200, 200, 45 * Math.PI / 180);
 
            var canvas:Sprite = new Sprite();
            canvas.graphics.beginGradientFill("linear", [0xFFFFFF, bc], [1.0 , 1.0], [0, 255], matrix);
            canvas.graphics.drawRect(0, 0, 163, 359);
            canvas.graphics.endFill();
 
            var newbd:BitmapData = new BitmapData(163, 359, false);
            matrix = new Matrix();
            matrix.tx = 0;
            matrix.ty = 0;
 
            newbd.draw(canvas, matrix);
 
            var bitmap:Bitmap = new Bitmap(newbd);
            bitmap.x = 301;
            bitmap.y = 46;
            addChild(bitmap);
        }  
        //ボタン情報
        private function Button():void{
            _button = new MyButton()
            _button.x = 304;
            _button.y = 410;  
            addChild(_button);            
        }       
        //イベントリスナー登録
        private function addEvent():void {
            _button.addEventListener(MouseEvent.CLICK, onClick);
            _button.addEventListener(MouseEvent.MOUSE_OUT, mOut);
            _button.addEventListener(MouseEvent.MOUSE_OVER, mOver);
        }        
        private function mOut(e:Event):void{
            _button.out();
        }
        private function mOver(e:Event):void{
            _button.over();
        }       
        //演算処理部分(そのうち外部クラスにする予定
        public function onClick(e:MouseEvent):void{
            //サイコロ処理部分
            _now = Math.ceil(Math.random()*6)-1;
            _Sai[_now] += 1;
            _Sum += 1;
            _now += 1;
            //演出窓表示部分
            bmp1(_now);
            //テキスト表示部分
            _XY.unshift(["Nr : " + _now + " Total = [" + _Sai[0],
            _Sai[1],_Sai[2],_Sai[3],_Sai[4],_Sai[5] + 
            "] [count = " + _Sum + "]\n"]);
            _fld.text = "," + String(_XY);
            _fld2.text = "Number Is ..." + String(_now+1);
        }                         
    }    
}

import flash.display.Sprite;
class MyButton extends Sprite { 
    private var _over:Sprite;  
    public function MyButton () { 
        graphics.beginFill(0x995555); 
        graphics.drawRoundRect(0, 0, 156, 49, 45);
        graphics.endFill(); 

        // マウス・オーバー時に表示させるSpriteのインスタンスを生成 
        _over = new Sprite();  
        _over.graphics.beginFill(0xff0000); 
        _over.graphics.drawRoundRect(0, 0, 156, 49, 45); 
        _over.graphics.endFill(); 
        _over.visible = false; 
        addChild(_over); 
        // マウス・カーソルを手のカーソルに変える 
        buttonMode = true;         
    } 
    public function over():void { 
        _over.visible = true; 
    } 
    public function out():void { 
        _over.visible = false; 
    } 
}