Flash 抽奖程序制作

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

  转眼间2009年又过了六分之五,一年间里面发生很多事情。在这些事情里面,让我了解很多,失去很多也得到一些经验。在这一年期间,认识了很多好友,他们都是一群热爱flash 的好友,走在一起也算是一种缘分。

 

   话说回头,我们都知道flash和flex的内容方向有许多,一个人再厉害精力也是有限,只能选择性去找一些方向来进行学习。曾经过去一次偶然机会,帮大学的一个同学制作个一个As2的抽奖程序,当时我什么项目经验都没有,仅仅会一点As2的编程语法,就这样答应了同学制作了一个抽奖程序,当时没有收过一分钱,当时制作出这个也非常兴奋,心情难以表达成功感。后来,我就喜欢上制作了这些抽奖程序。一口气制作手机抽奖,选号抽奖等几个小应用程序。不过,说到抽奖程序,里面涉及的东西还是很多。最近做了一个小的抽奖程序,现在把最近的笔记都记录一下。

 

  抽奖程序下载地址:

                                游戏抽奖程序需求说明:

 

一、需求背景

  为了一项活动进行一个游戏抽奖活动,需要制作一个flash应用程序完成这一次官方的活动。

 

二、需求功能说明:

游戏当中,有四个礼物区,每一个礼物区里面有125份礼物(125x4=500)。在抽象过程中,随机抽选四个区,同一个区的礼物是相同的。抽奖的过程中,抽奖完一个区的时候,这个区就不可以进行抽取,直到完成了抽奖形式的时候。四个区都变成了不能继续抽取,就结束了抽奖。

 

注意:

为了防止礼物数被误操作,采取到礼物数更改的策略进行礼物数修正。并且可以选那个区为标记不可以再抽取。以做到更加灵活。

 

制作时间:9天内进行交户使用。

 

 

三、制作平台:

 

 Flash cs3 制作

 

 

 

四、制作方案:

 

 

初步方案一:

 

 随机抽取四个区,假设是分别代号为1234

 

 抽奖

 

 

第一次    抽取为1的时候,这时候减去第一区的礼物数()

第二次    抽取为 2 的时候,这时候减去第二区的礼物数()

第三次    抽取为3 的时候,这时候减去第三区的礼物数()

第四次    抽取为4的时候,这时候减去第四区的礼物数()

。。。。。。。

………………..

……………………..

 

当第一区礼物数为0的时候,则随机抽取的数组长度变为3,同时标记1区为灰色,不可以进行抽取。

 

当第二个 区礼物数为 0的时候,则随机抽取数组长度变为2,同时标记2区为灰色,不可以进行抽取

 

四个区设计的时候,可以让用户选中和不选中两种状态,根据礼物数的设定判断该区是否纳入随机抽取的范围当中。

 

这个是第一方案做法比较灵活,假设错误了都可以 进行重新设定来进行礼物重新抽取。

 

 

五、程序设计

  在这次程序设计当中,主要使用了三个类,第一个是礼物类,第二个是移动框类,第三个就是文档类

 

   礼物类:Gigt.as

   移动框:DrawAnimation.as

  主程序:   Main.as 

 礼物类当中:初步功能构想如下:

                1.可以设置和获取礼物数,可以输出礼物数

                2.可以设置和获取礼物总数(暂定)

                        3.可以设置礼物的代号(暂定)

                4. 克隆对象

                这个类里面,目的用于存储礼物数。

 

 移动框类: 初步构想如下:

               1. 移动框坐标更改

 

  主程序类:

         1.在这个主要程序类当中,我们使用时间计算器来随机抽取数组当中的号码。

         2.其次我们需要进行对键盘监听,设置键盘相应的控制,如开始,抽取等一些动作。

         3.同样在这个类当中,我们要处理界面的GUI里面的组件和文本。这样我们通过礼物类绑定在文本里面,当数据更改的时候,则文本也会进行相应更改。

         4.处理相应的逻辑关系和动画显示过程

         5.处理checkbox组件的选种和不选中两种状态

          6.结合一些动画缓冲类处理一些元件的动画 效果    

 

 

抽奖原理:

             说到抽奖的原理,每一个人的做法都不一样,比较常见的做法是采用随机数进行选取数组的内容,当选取了就对其数据进行删除操作。这样就能够确保抽奖的时候不重复。不过为了确保原本数组不影响,在开始程序的时候,可以对原本的数组进行深度复制,Copy一份出来进行操作。这样也是一种方案。

        

 

代码清单:

 礼物类Gift.as:

 

  1. package   
  2. {  
  3.     //礼物的基础类  
  4.     public class Gift  
  5.     {  
  6.         private var gifts:int;//礼物数  
  7.         private var totals:int;//礼物总数  
  8.         private var temp:int;//临时礼物数  
  9.         private var giftid:String;  
  10.         public function Gift()  
  11.         {  
  12.         }  
  13.         // 创建新对象  
  14.         public function clone():Gift  
  15.         {  
  16.             return new Gift  ;  
  17.         }  
  18.         //设置礼物对应的ID值  
  19.         public function set id(value:String):void  
  20.         {  
  21.             giftid=value;  
  22.         }  
  23.         //获取礼物对应的ID值  
  24.         public function get id():String  
  25.         {  
  26.             return giftid;  
  27.         }  
  28.           
  29.         /* 
  30.           设置礼物的数 
  31.         */  
  32.         public function set Gifts(num:int):void  
  33.         {  
  34.             gifts=num;  
  35.         }  
  36.         //获取礼物数  
  37.         public function get Gifts():int  
  38.         {  
  39.             return gifts;  
  40.         }  
  41.         //让礼物数变成字符串  
  42.         public function toString():String  
  43.         {  
  44.             return String(this.Gifts);  
  45.         }  
  46.         //获取最大的礼物数  
  47.         public function get total():int  
  48.         {  
  49.             return totals;  
  50.         }  
  51.         //设置最大的礼物数  
  52.         public function set total(totals:int):void  
  53.         {  
  54.             totals=totals;  
  55.         }  
  56.     }  
  57. }  
package { //礼物的基础类 public class Gift {  private var gifts:int;//礼物数  private var totals:int;//礼物总数  private var temp:int;//临时礼物数  private var giftid:String;  public function Gift()  {  }  // 创建新对象  public function clone():Gift  {   return new Gift  ;  }  //设置礼物对应的ID值  public function set id(value:String):void  {   giftid=value;  }  //获取礼物对应的ID值  public function get id():String  {   return giftid;  }    /*    设置礼物的数  */  public function set Gifts(num:int):void  {   gifts=num;  }  //获取礼物数  public function get Gifts():int  {   return gifts;  }  //让礼物数变成字符串  public function toString():String  {   return String(this.Gifts);  }  //获取最大的礼物数  public function get total():int  {   return totals;  }  //设置最大的礼物数  public function set total(totals:int):void  {   totals=totals;  } }}

 

DrawAnimation.as 类 用于移动框使用

 

 

  1. package   
  2. {  
  3.     //抽奖时候的动画类  
  4.     import flash.display.MovieClip;  
  5.     import flash.events.*;  
  6.     public class DrawAnimation extends MovieClip  
  7.     {  
  8.         private var mc_circle:MovieClip;  
  9.         public function DrawAnimation(mc:MovieClip)  
  10.         {  
  11.            this.mc_circle=mc;  
  12.         }  
  13.           
  14.         //改变动画光圈位置  
  15.         public function changeXY(x:int,y:int):void  
  16.         {  
  17.             this.mc_circle.x=x;  
  18.             this.mc_circle.y=y;  
  19.         }  
  20.           
  21.     }  
  22. }  
package { //抽奖时候的动画类 import flash.display.MovieClip; import flash.events.*; public class DrawAnimation extends MovieClip {  private var mc_circle:MovieClip;  public function DrawAnimation(mc:MovieClip)  {           this.mc_circle=mc;  }    //改变动画光圈位置  public function changeXY(x:int,y:int):void  {   this.mc_circle.x=x;   this.mc_circle.y=y;  }   }}

 

 

 主程序Main.as:

  1. package   
  2. {  
  3.     //抽奖程序 version 版本1.0   
  4.     import flash.display.MovieClip;  
  5.     import flash.events.*;  
  6.     import flash.net.*;  
  7.     import flash.ui.Keyboard;  
  8.     import flash.text.*;  
  9.     import flash.utils.Dictionary;  
  10.     import flash.utils.Timer;  
  11.     import fl.controls.NumericStepper;  
  12.     import fl.controls.CheckBox;  
  13.     import flash.display.Bitmap;  
  14.     import flash.display.BitmapData;  
  15.     import flash.display.Loader;  
  16.     import flash.system.fscommand;  
  17.     import flash.media.*;  
  18.     import caurina.transitions.*;  
  19.   
  20.     public class Main extends MovieClip  
  21.     {  
  22.         private var array:Array;//随机存取数  
  23.         private var data:Array=[11,22,33,44];//随机存取数  
  24.         private var gift_num1:Gift=new Gift();//第一区礼物数  
  25.         private var gift_num2:Gift=gift_num1.clone();//克隆对象  
  26.         private var gift_num3:Gift=gift_num1.clone();//克隆对象  
  27.         private var gift_num4:Gift=gift_num1.clone();//克隆对象  
  28.   
  29.         private var time:Timer;//计时器  
  30.         private var num:int=0;  
  31.         private var temp:Array;//用于临时的数组存放  
  32.   
  33.         private var xArray:Array = [118,342,580,860];//记录移动框的位置  
  34.         private var yArray:Array = [353,268,218,225];  
  35.   
  36.         private var currentID:uint = 0;//当前的号码值  
  37.         private var speed:int = 5;//用于控制移动框的速度  
  38.         private var start:Boolean = false;//是否开始  
  39.         private var maxNum:int=500;//默认开始最大礼物数值  
  40.         private var IsEnd:Boolean=false;//判断抽奖是否结束,如果结束了就启动这个  
  41.   
  42.         private var sound:MySound=new MySound();//库链接的抽奖的声音  
  43.         private var channel:SoundChannel=new SoundChannel();  
  44.         private var key:Boolean=true;  
  45.   
  46.         private var animation:DrawAnimation;//移动框  
  47.         public function Main()  
  48.         {  
  49.             init();  
  50.         }  
  51.         //初始化应用程序  
  52.         private function init():void  
  53.         {  
  54.             fscommand("fullscreen""true");//全屏  
  55.             array=data.concat();//复制一个数组副本  
  56.             temp=data.concat();  
  57.   
  58.             gift1.addEventListener(Event.CHANGE,onChange);  
  59.             gift2.addEventListener(Event.CHANGE,onChange);  
  60.             gift3.addEventListener(Event.CHANGE,onChange);  
  61.             gift4.addEventListener(Event.CHANGE,onChange);  
  62.   
  63.             checkbox1.addEventListener(Event.CHANGE,box_onChange);  
  64.             checkbox2.addEventListener(Event.CHANGE,box_onChange);  
  65.             checkbox3.addEventListener(Event.CHANGE,box_onChange);  
  66.             checkbox4.addEventListener(Event.CHANGE,box_onChange);  
  67.             Mymc.configTxt.addEventListener(Event.CHANGE,onconfigTxt);  
  68.               
  69.             gift_init();//礼物数初始化  
  70.             people_txt.mouseEnabled=false;//人数禁止鼠标交互  
  71.             Mymc.configTxt.text=String(maxNum);  
  72.             animation=new DrawAnimation(kuang);//移动框动画  
  73.   
  74.             time=new Timer(200);  
  75.             time.addEventListener(TimerEvent.TIMER,onTimer);  
  76.             stage.addEventListener(KeyboardEvent.KEY_DOWN,onkeyDown);  
  77.         }  
  78.           
  79.         //礼物显示初始化  
  80.         private function gift_init():void  
  81.         {  
  82.             gift_num1.Gifts = int(maxNum/4);  
  83.             gift_num2.Gifts = int(maxNum/4);  
  84.             gift_num3.Gifts = int(maxNum/4);  
  85.             gift_num4.Gifts = int(maxNum/4);  
  86.             gift1.text=String(gift_num1.Gifts);  
  87.             gift2.text=String(gift_num2.Gifts);  
  88.             gift3.text=String(gift_num3.Gifts);  
  89.             gift4.text=String(gift_num4.Gifts);  
  90.             people_txt.text = getPeoples(); // 获取总的人数  
  91.         }  
  92.           
  93.         //修改配置  
  94.         private function onconfigTxt(e:Event):void  
  95.         {  
  96.             maxNum = int( Mymc.configTxt.text);  
  97.             gift_init();  
  98.         }  
  99.         //获取人数  
  100.         private function getPeoples():String  
  101.         {  
  102.             return String(maxNum -(gift_num1.Gifts + gift_num2.Gifts + gift_num3.Gifts + gift_num4.Gifts) + 1);  
  103.         }  
  104.           
  105.         //是否被激活  
  106.         private function Isactive(checkbox:CheckBox,n:int,value:int):void  
  107.         {  
  108.             if (checkbox.selected)  
  109.             {  
  110.                 array[n]=value;  
  111.             }  
  112.             else  
  113.             {  
  114.                 array[n]=0;  
  115.             }  
  116.             temp=getNewArray(array);  
  117.         }  
  118.           
  119.         //改变选择框  
  120.         private function box_onChange(event:Event):void  
  121.         {  
  122.             switch (event.currentTarget)  
  123.             {  
  124.                 case checkbox1 :  
  125.                     Isactive(checkbox1,0,11);  
  126.                     break;  
  127.   
  128.                 case checkbox2 :  
  129.                     Isactive(checkbox2,1,22);  
  130.                     break;  
  131.   
  132.                 case checkbox3 :  
  133.                     Isactive(checkbox3,2,33);  
  134.                     break;  
  135.   
  136.                 case checkbox4 :  
  137.                     Isactive(checkbox4,3,44);  
  138.                     break;  
  139.             }  
  140.         }  
  141.           
  142.         //修改礼物数值,并显示  
  143.         private function ChangeGifts(mygift:Gift,txt:TextField,n:int,vaule:int,checkbox:CheckBox):void  
  144.         {  
  145.             mygift.Gifts=int(txt.text);  
  146.             stage.focus=txt;  
  147.             txt.text=mygift.toString();  
  148.             if (mygift.Gifts>0)  
  149.             {  
  150.                 array[n]=vaule;  
  151.                 temp=getNewArray(array);  
  152.                 if (!checkbox.selected)  
  153.                 {  
  154.                     checkbox.selected=true;  
  155.                     checkbox.mouseEnabled=true;  
  156.                 }  
  157.             }  
  158.             else if (mygift.Gifts==0)  
  159.             {  
  160.                 array[n]=0;  
  161.                 temp=getNewArray(array);  
  162.                 checkbox.selected=false;  
  163.                 checkbox.mouseEnabled=false;  
  164.                 trace("你来了这里了");  
  165.             }  
  166.             else  
  167.             {  
  168.                   
  169.             }  
  170.             people_txt.text = getPeoples();  
  171.         }  
  172.           
  173.         private function onChange(event:Event):void  
  174.         {  
  175.             switch (event.currentTarget)  
  176.             {  
  177.                 case gift1 :  
  178.                     ChangeGifts(gift_num1,gift1,0,11,checkbox1);  
  179.                     break;  
  180.                 case gift2 :  
  181.                     ChangeGifts(gift_num2,gift2,1,22,checkbox2);  
  182.                     break;  
  183.   
  184.                 case gift3 :  
  185.                     ChangeGifts(gift_num3,gift3,2,33,checkbox3);  
  186.                     break;  
  187.   
  188.                 case gift4 :  
  189.                     ChangeGifts(gift_num4,gift4,3,44,checkbox4);  
  190.                     break;  
  191.             }  
  192.         }  
  193.           
  194.         //获取每次抽奖后选取的结果处理  
  195.         private function ResultHandler(mygift:Gift,giftNum:TextField,n:int,checkbox:CheckBox):void  
  196.         {  
  197.             if (mygift.Gifts>0)  
  198.             {  
  199.                 mygift.Gifts-=1;  
  200.                 giftNum.text=mygift.toString();//礼物的数目  
  201.                 if (mygift.Gifts==0)  
  202.                 {  
  203.                     array[n]=0;  
  204.                     temp=getNewArray(array);  
  205.                     giftNum.text=mygift.toString();  
  206.                     checkbox.selected=false;  
  207.                     checkbox.mouseEnabled=false;  
  208.                 }  
  209.             }  
  210.         }  
  211.         //抽取随机号码  
  212.         private function randomArray(n:int):void  
  213.         {  
  214.             switch (temp[n])  
  215.             {  
  216.                 case 11 :  
  217.                     ResultHandler(gift_num1,gift1,0,checkbox1);  
  218.                     break;  
  219.                 case 22 :  
  220.                     ResultHandler(gift_num2,gift2,1,checkbox2);  
  221.                     break;  
  222.                 case 33 :  
  223.                     ResultHandler(gift_num3,gift3,2,checkbox3);  
  224.                     break;  
  225.                 case 44 :  
  226.                     ResultHandler(gift_num4,gift4,3,checkbox4);  
  227.                     break;  
  228.                 default :  
  229.                     trace("结束");  
  230.                     break;  
  231.             }  
  232.   
  233.         }  
  234.         //抽奖的操作:  
  235.         private function onkeyDown(event:KeyboardEvent):void  
  236.         {  
  237.             switch (event.keyCode)  
  238.             {  
  239.                 case Keyboard.SPACE :  
  240.                     StopTime();  
  241.                     break;  
  242.   
  243.                 case Keyboard.ENTER :  
  244.                     if (time.running)  
  245.                     {  
  246.                         return;  
  247.                     }  
  248.                     startTime();  
  249.                     break;  
  250.   
  251.                 case 65 :  
  252.                     if (key)  
  253.                     {  
  254.                         key=false;  
  255.                         show();  
  256.                     }  
  257.                     else  
  258.                     {  
  259.                         key=true;  
  260.                         unshow();  
  261.                     }  
  262.                     break;  
  263.                       
  264.                 case 82 :  
  265.                     restgame();//系统复位  
  266.                 break;  
  267.                       
  268.   
  269.                 default :  
  270.                     trace("错误按键");  
  271.                     break;  
  272.             }  
  273.         }  
  274.         private function startTime():void  
  275.         {  
  276.             time.start();  
  277.             start = true;  
  278.             stage.focus=textinput;  
  279.         }  
  280.         private function StopTime():void  
  281.         {  
  282.             start = false;  
  283.             speed = 5;  
  284.         }  
  285.         private function stopgame():void  
  286.         {  
  287.             time.stop();  
  288.             time.delay=200;  
  289.             randomArray(currentID);  
  290.             people_txt.text = getPeoples();//获取人数  
  291.         }  
  292.         //加快时间和当抽奖完的时候 出现一种缓冲效应  
  293.         private function SlowTime():void  
  294.         {  
  295.             if (start && time.delay >60)  
  296.             {  
  297.                 time.delay -=speed;  
  298.                 speed++;  
  299.             }  
  300.             if (!start)  
  301.             {  
  302.                 time.delay +=speed;  
  303.                 speed++;  
  304.             }  
  305.             if (time.delay > 200)  
  306.             {  
  307.                 stopgame();  
  308.             }  
  309.         }  
  310.           
  311.         private function onTimer(event:TimerEvent):void  
  312.         {  
  313.             var n:int=Math.floor((temp.length)*Math.random());//长度变更  
  314.             showgift(n);//显示选择区,判断是否存在数据否则就不进行选择  
  315.             currentID = n;  
  316.             channel=sound.play(0,1);  
  317.             SlowTime();  
  318.         }  
  319.           
  320.         //获取新数组  
  321.         private function getNewArray(myarray:Array):Array  
  322.         {  
  323.             var Temp:Array=new Array();  
  324.             for (var i:int=0; i<myarray.length; i++)  
  325.             {  
  326.                 if (myarray[i]!=0)  
  327.                 {  
  328.                     Temp.push(myarray[i]);  
  329.                 }  
  330.             }  
  331.             return Temp;  
  332.         }  
  333.         //抽奖进行复位  
  334.         private function restgame():void  
  335.         {  
  336.             trace("进行复位");  
  337.             IsEnd=false;  
  338.             gift_init();//初始化  
  339.         }  
  340.         //游戏结束了  
  341.         private function GameEnd():Boolean  
  342.         {  
  343.             return IsEnd;  
  344.         }  
  345.       
  346.         private function showgift(n:int):void  
  347.         {  
  348.             var temps:Array=getNewArray(temp);  
  349.             switch (temps[n])  
  350.             {  
  351.                 case 11 :  
  352.                     animation.changeXY(xArray[0],yArray[0]);//移动坐标  
  353.                     break;  
  354.                 case 22 :  
  355.                     animation.changeXY(xArray[1],yArray[1]);//移动坐标  
  356.                     break;  
  357.                 case 33 :  
  358.                     animation.changeXY(xArray[2],yArray[2]);//移动坐标  
  359.                     break;  
  360.                 case 44 :  
  361.                     animation.changeXY(xArray[3],yArray[3]);//移动坐标  
  362.                     break;  
  363.             }  
  364.         }  
  365.         //显示移动配置框  
  366.         private function show():void  
  367.         {  
  368.             Tweener.addTween(Mymc,{x:800,time:1, transition:"easeOut"});  
  369.         }  
  370.         //不显示移动配置框  
  371.         private function unshow():void  
  372.         {  
  373.             stage.focus=textinput;  
  374.             people_txt.text = getPeoples();  
  375.             Tweener.addTween(Mymc,{x:1400,time:1, transition:"easeOut"});  
  376.   
  377.         }  
  378.     }  
  379. }  
package { //抽奖程序 version 版本1.0  import flash.display.MovieClip; import flash.events.*; import flash.net.*; import flash.ui.Keyboard; import flash.text.*; import flash.utils.Dictionary; import flash.utils.Timer; import fl.controls.NumericStepper; import fl.controls.CheckBox; import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Loader; import flash.system.fscommand; import flash.media.*; import caurina.transitions.*; public class Main extends MovieClip {  private var array:Array;//随机存取数  private var data:Array=[11,22,33,44];//随机存取数  private var gift_num1:Gift=new Gift();//第一区礼物数  private var gift_num2:Gift=gift_num1.clone();//克隆对象  private var gift_num3:Gift=gift_num1.clone();//克隆对象  private var gift_num4:Gift=gift_num1.clone();//克隆对象  private var time:Timer;//计时器  private var num:int=0;  private var temp:Array;//用于临时的数组存放  private var xArray:Array = [118,342,580,860];//记录移动框的位置  private var yArray:Array = [353,268,218,225];  private var currentID:uint = 0;//当前的号码值  private var speed:int = 5;//用于控制移动框的速度  private var start:Boolean = false;//是否开始  private var maxNum:int=500;//默认开始最大礼物数值  private var IsEnd:Boolean=false;//判断抽奖是否结束,如果结束了就启动这个  private var sound:MySound=new MySound();//库链接的抽奖的声音  private var channel:SoundChannel=new SoundChannel();  private var key:Boolean=true;  private var animation:DrawAnimation;//移动框  public function Main()  {   init();  }  //初始化应用程序  private function init():void  {   fscommand("fullscreen", "true");//全屏   array=data.concat();//复制一个数组副本   temp=data.concat();   gift1.addEventListener(Event.CHANGE,onChange);   gift2.addEventListener(Event.CHANGE,onChange);   gift3.addEventListener(Event.CHANGE,onChange);   gift4.addEventListener(Event.CHANGE,onChange);   checkbox1.addEventListener(Event.CHANGE,box_onChange);   checkbox2.addEventListener(Event.CHANGE,box_onChange);   checkbox3.addEventListener(Event.CHANGE,box_onChange);   checkbox4.addEventListener(Event.CHANGE,box_onChange);   Mymc.configTxt.addEventListener(Event.CHANGE,onconfigTxt);               gift_init();//礼物数初始化   people_txt.mouseEnabled=false;//人数禁止鼠标交互   Mymc.configTxt.text=String(maxNum);   animation=new DrawAnimation(kuang);//移动框动画   time=new Timer(200);   time.addEventListener(TimerEvent.TIMER,onTimer);   stage.addEventListener(KeyboardEvent.KEY_DOWN,onkeyDown);  }    //礼物显示初始化  private function gift_init():void  {   gift_num1.Gifts = int(maxNum/4);   gift_num2.Gifts = int(maxNum/4);   gift_num3.Gifts = int(maxNum/4);   gift_num4.Gifts = int(maxNum/4);   gift1.text=String(gift_num1.Gifts);   gift2.text=String(gift_num2.Gifts);   gift3.text=String(gift_num3.Gifts);   gift4.text=String(gift_num4.Gifts);   people_txt.text = getPeoples(); // 获取总的人数  }    //修改配置  private function onconfigTxt(e:Event):void  {   maxNum = int( Mymc.configTxt.text);   gift_init();  }  //获取人数  private function getPeoples():String  {   return String(maxNum -(gift_num1.Gifts + gift_num2.Gifts + gift_num3.Gifts + gift_num4.Gifts) + 1);  }          //是否被激活  private function Isactive(checkbox:CheckBox,n:int,value:int):void  {   if (checkbox.selected)   {    array[n]=value;   }   else   {    array[n]=0;   }   temp=getNewArray(array);  }    //改变选择框  private function box_onChange(event:Event):void  {   switch (event.currentTarget)   {    case checkbox1 :     Isactive(checkbox1,0,11);     break;    case checkbox2 :     Isactive(checkbox2,1,22);     break;    case checkbox3 :     Isactive(checkbox3,2,33);     break;    case checkbox4 :     Isactive(checkbox4,3,44);     break;   }  }    //修改礼物数值,并显示  private function ChangeGifts(mygift:Gift,txt:TextField,n:int,vaule:int,checkbox:CheckBox):void  {   mygift.Gifts=int(txt.text);   stage.focus=txt;   txt.text=mygift.toString();   if (mygift.Gifts>0)   {    array[n]=vaule;    temp=getNewArray(array);    if (!checkbox.selected)    {     checkbox.selected=true;     checkbox.mouseEnabled=true;    }   }   else if (mygift.Gifts==0)   {    array[n]=0;    temp=getNewArray(array);    checkbox.selected=false;    checkbox.mouseEnabled=false;    trace("你来了这里了");   }   else   {       }   people_txt.text = getPeoples();  }    private function onChange(event:Event):void  {   switch (event.currentTarget)   {    case gift1 :     ChangeGifts(gift_num1,gift1,0,11,checkbox1);     break;    case gift2 :     ChangeGifts(gift_num2,gift2,1,22,checkbox2);     break;    case gift3 :     ChangeGifts(gift_num3,gift3,2,33,checkbox3);     break;    case gift4 :     ChangeGifts(gift_num4,gift4,3,44,checkbox4);     break;   }  }    //获取每次抽奖后选取的结果处理  private function ResultHandler(mygift:Gift,giftNum:TextField,n:int,checkbox:CheckBox):void  {   if (mygift.Gifts>0)   {    mygift.Gifts-=1;    giftNum.text=mygift.toString();//礼物的数目    if (mygift.Gifts==0)    {     array[n]=0;     temp=getNewArray(array);     giftNum.text=mygift.toString();     checkbox.selected=false;     checkbox.mouseEnabled=false;    }   }  }  //抽取随机号码  private function randomArray(n:int):void  {   switch (temp[n])   {    case 11 :     ResultHandler(gift_num1,gift1,0,checkbox1);     break;    case 22 :     ResultHandler(gift_num2,gift2,1,checkbox2);     break;    case 33 :     ResultHandler(gift_num3,gift3,2,checkbox3);     break;    case 44 :     ResultHandler(gift_num4,gift4,3,checkbox4);     break;    default :     trace("结束");     break;   }  }  //抽奖的操作:  private function onkeyDown(event:KeyboardEvent):void  {   switch (event.keyCode)   {    case Keyboard.SPACE :     StopTime();     break;    case Keyboard.ENTER :     if (time.running)     {      return;

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值