打印

[应用] 看了一个晚上,避免重复抽奖人姓,请教各位高手,在线等

开始按钮程序
_global.temp_array = new Array();
_global.i=0;
_global.r_num=0;
_global.name_show="gg";
var name_array:Array = ["aaaa", "bbb", "ccc", "ddd", "eee", "王玉", "fff", "gg", "ggg", "人名10", "人名11", "人名12", "人名13", "人名14", "人名15", "人名16", "人名17", "人名18", "人名19", "人名20", "人名21", "人名22", "人名23", "人名24", "人名25", "人名26", "人名27", "人名28", "人名29", "人名30", "人名31", "人名32", "人名33", "人名34", "人名35", "人名36", "人名37", "人名38", "人名39", "人名40", "人名41", "人名42", "人名43", "人名44", "人名45", "人名46", "人名47", "人名48", "人名49", "人名50", "人名51", "人名52", "人名53", "人名54", "人名55", "人名56", "人名57", "人名58", "人名59", "人名60", "人名61", "人名62", "人名63", "人名64", "人名65", "人名66", "人名67", "人名68", "人名69", "人名70", "人名71", "人名72", "人名73", "人名74", "人名75", "人名76", "人名77", "人名78", "人名79", "人名80"];

onEnterFrame = function () {;
r_num = Math.floor(Math.random()*name_array.length);
name_show = name_array[r_num];
nametxt3.text = name_show;

};


停止按钮程序
on (release) {
       var j:Number = temp_array.length;
       for(k = 0;k<j;k++){
     if (r_num==temp_array[k]){
               name_show = name_array[r_num+1];
               temp_array[i]=r_num+1;
            break;
     }                      
    }
       name_show = name_array[r_num];
       temp_array[i]=r_num;
       i=++i;
       nametxt3.text = name_show;
       trace(r_num);
       trace(name_show);
       delete onEnterFrame;
       
}

就是不想抽中过奖的下次抽的时候不想再被抽中,问题不知出在那里,
写一个记录..函数就可以了...
91sem.com
什么函数?多谢
方法一:抽中过的人就从数组里删除。
方法二:用一个数组记录存储已经抽中过的人,下次抽奖时,判断这个选中的人在不在已抽中的数组中,如果在则重新抽奖!
    最简便的方法还是前者。
咱水区牛人可真多啊!俺也想成牛人!

TOP

还在为头像烦恼?还在为不能关注好友动态烦忧?快来蓝色理想家园吧!
这个问题,以前有朋友问过(可能也是楼主)
我当时回贴带的AS就是不重复抽取的。
http://www.flash023.cn 终极讨厌

TOP

版主真的是我呀
var name_array:Array = ["人名1", "人名2", "人名3", "人名4", "人名5", "人名6", "人名7", "人名8", "人名9", "人名10", "人名11", "人名12", "人名13", "人名14", "人名15", "人名16", "人名17", "人名18", "人名19", "人名20", "人名21", "人名22", "人名23", "人名24", "人名25", "人名26", "人名27", "人名28", "人名29", "人名30", "人名31", "人名32", "人名33", "人名34", "人名35", "人名36", "人名37", "人名38", "人名39", "人名40", "人名41", "人名42", "人名43", "人名44", "人名45", "人名46", "人名47", "人名48", "人名49", "人名50", "人名51", "人名52", "人名53", "人名54", "人名55", "人名56", "人名57", "人名58", "人名59", "人名60", "人名61", "人名62", "人名63", "人名64", "人名65", "人名66", "人名67", "人名68", "人名69", "人名70", "人名71", "人名72", "人名73", "人名74", "人名75", "人名76", "人名77", "人名78", "人名79", "人名80"];
onEnterFrame = function () {;
var r_num:Number = Math.floor(Math.random()*name_array.length);
var name_show = name_array[r_num];
myText.text = "本次抽中:"+name_show;
};
myBtn.onRelease = function() {
delete onEnterFrame;
};

这个抽的是重复的吧?

TOP

引用:
原帖由 lyming513 于 2008-6-3 14:07 发表
版主真的是我呀
var name_array:Array = ["人名1", "人名2", "人名3", "人名4", "人名5", "人名6", "人名7", "人名8", "人名9", "人名10", "人名11", "人名12", "人名13", "人名14", "人名15", "人名16", "人名17", ...
你这个方法是上次提问时,我给答的,当时你没有说要避免重复抽奖的,只是强调要出现人名闪动。
如果要避免抽奖人名的重复,name_array.splice那个r_num就可以了。

TOP

name_array.splice那个r_num就可以了。

是什么意思呀?谢了

TOP

回复 yzgxww 在 4# 的帖子

同方法一.好方法,顶一个!~

TOP