点中圆表示击中否则没有击中,击中10次为win。
主要练习的就是addEventListener的使用。
- var num:uint=20;//代码生成目标数量
- var score:uint=0;
- var miss:uint=0;
- var SW:uint=stage.stageWidth;
- var SH:uint=stage.stageHeight;
- var tf:TextField = new TextField();
- tf.text="开始";
- tf.x = tf.y = 25;
- tf.autoSize = "left";//对齐方式
- tf.width = 200;
- addChild(tf);
- const YOU_WIN : String ="youWin";
- const YOU_LOSE : String="youLose";
- stage.addEventListener(MouseEvent.CLICK,kill);
- stage.addEventListener(YOU_WIN,win);
- stage.addEventListener(YOU_LOSE,lose);
- for(var i : uint = 0 ; i < num ; i++)
- {
- var target:Sprite = new Sprite();
- target.graphics.beginFill(0xffffff*Math.random());
- target.graphics.drawCircle(0,0,40);
- target.graphics.endFill();
- target.scaleX=target.scaleX=Math.random()*.5+.5;
- addChildAt(target,0);
- target.x=Math.random()*(SW-target.width)+target.width/2;
- target.y=Math.random()*(SH-target.height)+target.height/2;
- }
- function kill(e:MouseEvent):void
- {
- if(e.target != e.currentTarget)
- {
- e.target.parent.removeChild(e.target);
- score++;
- tf.text="打中了,已经打中了"+score+"枪";
- }
- else
- {
- miss++;
- tf.text="失误了,已经失误了"+miss+"枪";
- }
- if(score>=10)
- {
- stage.dispatchEvent(new Event(YOU_WIN));
- }
- else if(miss>=10)
- {
- stage.dispatchEvent(new Event(YOU_LOSE));
- }
- }
- function win(e:Event):void
- {
- tf.text="you win";
- stage.removeEventListener(MouseEvent.CLICK,kill);
- stage.removeEventListener(YOU_WIN,win);
- stage.removeEventListener(YOU_WIN,lose);
- }
- function lose(e:Event):void
- {
- tf.text="you lose";
- stage.removeEventListener(MouseEvent.CLICK,kill);
- stage.removeEventListener(YOU_WIN,win);
- stage.removeEventListener(YOU_WIN,lose);
- }
转载于:https://blog.51cto.com/sincerecorner/677999