In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

ButtonTest04: 1問だけのクイズ形式にしてみました

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

// forked from hacker_7daxapax's ButtonTest03: 複数ボタン作成

package {
    import flash.display.*;
    import flash.events.*;
    import flash.text.*;

    public class ButtonTest extends Sprite {
        
        private var button01 : SimpleButton;//ボタン1 
        private var button02 : SimpleButton;//ボタン2
        private var button03 : SimpleButton;//ボタン3
                
        private var question : TextField;//問題テキスト
        private var questionFormat : TextFormat;//問題テキストフォーマット
        private var judge : TextField;//判定テキスト
        private var judgeFormat : TextFormat;//判定テキストフォーマット
        
        private var target : CustomButton;//マウスイベントでターゲット情報取得用
            
        public function ButtonTest() {
            //問題文字列設定
            question = new TextField;
            question.text = "ButtonTest!";
            question.x = 10;
            question.y = 10;
            question.width = 300;
            question.multiline = true;
            question.text = "以下の漢字の読みを答えなさい\n"
                          + "\n" 
                          + "未曾有\n"
                          + "1、みぞうゆう\n"
                          + "2、まつぞうゆう\n"
                          + "3、みぞう\n";
            addChild(question);  
            //問題文字列用フォーマット設定
            questionFormat = new TextFormat();
            questionFormat.font = "Courier New";
            questionFormat.bold = true;
            questionFormat.size = 13;
            question.setTextFormat(questionFormat);

            //判定文字列設定
            judge = new TextField;
            judge.x = 55;
            judge.y = 170;
            judge.width = 400;
            judge.height = 200;
            judge.multiline = false;
            judge.text = "";           
            addChild(judge);  

                        
            //回答ボタン設定
            button01 = new CustomButton("1",1);
            button01.x = 350;
            button01.y = 50;
            button02 = new CustomButton("2",2);
            button02.x = 350;
            button02.y = 80;
            button03 = new CustomButton("3",3);
            button03.x = 350;
            button03.y = 110;

            button01.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown);
            button02.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown);
            button03.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown);
            
            button01.addEventListener(MouseEvent.MOUSE_UP,onMouseUp);
            button02.addEventListener(MouseEvent.MOUSE_UP,onMouseUp);
            button03.addEventListener(MouseEvent.MOUSE_UP,onMouseUp);
            
            addChild(button01);
            addChild(button02);
            addChild(button03);
        }
   
        //マウスダウンイベントの処理
        private function onMouseDown(evt:MouseEvent):void {
            target = CustomButton(evt.currentTarget);
            if (target.getBtnNo() == 3) {
                judge.text = "当たり";
            } else {
                judge.text = "ハズレ";
            }
            //判定文字列用フォーマット設定
            judgeFormat = new TextFormat();
            judgeFormat.font = "Courier New";
            judgeFormat.bold = true;
            judgeFormat.size = 150;
            judge.setTextFormat(judgeFormat);
        }

        //マウスアップイベントの処理
        private function onMouseUp(evt:MouseEvent):void {
            //judge.text = "";
        }        
    }
}

import flash.display.*;
import flash.system.*;
import flash.text.*;

//カスタムボタン
class CustomButton extends SimpleButton {
        private var btnName : String = "";//ボタン名
        private var btnNo : int = 0;//ボタン番号
        //コンストラクタ    
        public function CustomButton(label:String="",no:int=0) {
            btnName = label;
            btnNo = no;
            //状態
            upState = makeSprite(label,0x00FF00);
            overState = upState;
            downState = makeSprite(label,0x0000FF);
            hitTestState = upState;
        }
        
        public function getBtnName():String {
            return btnName;
        }
        public function getBtnNo():int {
            return btnNo;
        }
                
        //ボタン用スプライト作成
        private function makeSprite(text:String,color:uint):Sprite{
            //ボタン用ラベル作成
            var label : TextField = new TextField();
            label.text = text;
            label.autoSize = TextFieldAutoSize.CENTER;
            label.selectable = false;

            //ボタン用スプライト作成
            var sp:Sprite = new Sprite();
            sp.graphics.beginFill(color);
            sp.graphics.drawRoundRect(0, 0, 100, 20, 15);
            sp.graphics.endFill();
            sp.alpha = 0.8;            
            sp.addChild(label);
            
            //ラベル用フォーマット設定
            var format:TextFormat=new TextFormat();
            format.font = "Courier New";
            format.bold = true;
            format.size = 13;
            label.setTextFormat(format);

            return sp;
        }    
}