forked from: ActionScriptの宿題の質問

by tepe
すみません、大学の宿題で出された問題なんですが分からないので誰か教えてくれませんか。
ちなみに授業での条件としてWonderflやFlash Builderで動くことになっています。

問題

CTRLキー、スペースキー、zの文字キーを3つ同時に押すと円が消える。
♥0 | Line 44 | Modified 2012-04-25 10:35:54 | MIT License
play

ActionScript3 source code

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

// forked from chilno's ActionScriptの宿題の質問
/*すみません、大学の宿題で出された問題なんですが分からないので誰か教えてくれませんか。
ちなみに授業での条件としてWonderflやFlash Builderで動くことになっています。

問題

CTRLキー、スペースキー、zの文字キーを3つ同時に押すと円が消える。
*/
package {
    import flash.display.*;
    import flash.events.*;
    import flash.ui.*;
    public class FlashTest extends Sprite {
        //キーフラグ
        private var ctrl:Boolean;
        private var space:Boolean;
        private var zKey:Boolean;
        //円描画用
        private var circle:Sprite = new Sprite();
        
        public function FlashTest() {
           
            draw(233,233);//円描画
            
            //イベント登録
            stage.addEventListener(KeyboardEvent.KEY_DOWN,onKey);//キーダウン
            stage.addEventListener(KeyboardEvent.KEY_UP,offKey);//キーアップ
            
        }
        //キーダウン
        private function onKey(e:KeyboardEvent):void{
            
            if(e.ctrlKey == true)ctrl = true;
            if(e.keyCode == Keyboard.SPACE)space = true;
            if(e.keyCode == Keyboard.Z)zKey = true;
            
            //フラグ判定
            if(ctrl && space && zKey)clear();
               
        } 
        //キーアップ
        private function offKey(e:KeyboardEvent):void{
            if(e.ctrlKey == false)ctrl = false;
            if(e.keyCode == Keyboard.SPACE)space = false;
            if(e.keyCode == Keyboard.Z)zKey = false;
        }
        //円描画
        private function draw(x:Number,y:Number):void{
            
            var color:uint = Math.random()*0xffffff;//
            var alpha:Number = Math.random();//透過率
            const r:Number = 100;//円の半径
            //円の表示位置
            circle.x = x;
            circle.y = y;
            //円の描画
            with(circle.graphics){
                lineStyle(0,0x000000);
                beginFill(color,alpha);
                drawCircle(0,0,r);
                endFill();
            }
            addChild(circle);//表示
            
        }
        //円を消す
        private function clear():void{
            circle.graphics.clear();//クリア
        }




    }
}