--------------------------------------
场景:
1、两个动态文本框 分别命名show_txt和result_txt(show_txt用来显示随机数result_txt用来显示抽取的数字)
2、三个按钮,分别命名为start_btn和next_btn和reset_btn(start_btn为开始抽号,next_btn继续抽号,reset_btn重新抽号)
代码:
//定义抽取号码范围
var hao:Array = new Array()
for(var i:int = 1i<49i++)
{
hao.push(i)
}
var num:int = 0
var add_num:int = 0//第几次抽奖
//抽取的号分类
//随机显示被抽号码
var timer = new Timer(100, 0)
timer.addEventListener(TimerEvent.TIMER, timerHandler)
timer.start()
//开始抽取号码
start_btn.addEventListener(MouseEvent.CLICK,yaohaoF)
function timerHandler(e:TimerEvent):void
{
//取得hao数组的长度,里现在是1000
num = Math.floor(Math.random()*hao.length)
show_txt.text = hao[num]
}
function yaohaoF(event:MouseEvent):void
{
add_num++
//result_txt.text="幸运号"+xu_array[add_num-1]+":"+Math.floor(Math.random()*hao.length)+"\r"
result_txt.text="抽取号码为:"+show_txt.text+"\r"
timer.stop()
//关键在这里,把上面抽出的号码从数组中删除,它就不会再出现了
hao.splice(num, 1)//删除已经选中的号码
//如果已经抽出49就停止
if (add_num>49)
{
timer.stop()
show_txt.text = "全部号码已抽取完成"
result_txt.text =""
start_btn.enabled = false
next_btn.enabled = true
}
}
next_btn.addEventListener(MouseEvent.CLICK,nextF)
function nextF(event:MouseEvent):void
{
timer.start()
result_txt.text=""
}
reset_btn.addEventListener(MouseEvent.CLICK,resetF)
function resetF(event:MouseEvent):void
{
timer.start()
start_btn.enabled = true
next_btn.enabled = false
add_num = 0
}
没有作弊的一般是按次数,(当然也有概率因素),有作弊的一般是按时间,理论上没有作弊的话,可以这样实现概率,比如10/100000出现A,100/100000出现B,其他都出现C,那么实现这个要求可以生成一个100000以内的随机数,然后然后根据他进行判断,如果小于10,那么出现A,大于10小于110,出现B,大于110出现C,
上面的正常的不作弊的中奖概率生成,完全靠系统随机产生
不过对于一般的中奖FLASH,只要是附加了现实的金钱的话,都会弄一些时间或者特殊的中奖控制措施,只要在前面的判断中加入时间的判断就可以实现了
一般的FLASH中奖都只是用FLASH来显示结果而已,生成随机数然后比较都是靠后台的ASP或者PHP脚本实现的,所以光靠FLASH最多只能说你可以没有限制的实现不停的抽奖(也就是不停的调用ASP或者PHP脚本),而不可能实现肯定抽中奖!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)