免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享

AS3技巧集:4.不重复的随机数

本文来自:★flash之路-flash技术交流★ 转帖请注明出处! 作者:网雨霏霏 您是第5006个浏览者

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
flashroad友情提示:
“点评”不是“回帖”!
本帖最后由 网雨霏霏 于 2019-3-17 22:17 编辑

【问题描述】:
有许多数字,从中随机抽取,要求已经抽取出的数字不得在后续抽取过程中出现。换言之,一个数字最多只能抽取一次


【解决方案】:
先下载制作好的文件:
本帖隐藏的内容需要回复才可以浏览
【使用flashCS6制作的】





代码如下:
  1. var shuzu:Array=new Array(50)
  2. for(var i:uint;i<shuzu.length;i++){
  3. shuzu=i+1
  4. }
  5. var suoyin:uint
  6. sjs_btn.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler);
  7. function fl_MouseClickHandler(event:MouseEvent):void
  8. {
  9. suoyin=Math.floor(Math.random()*shuzu.length)
  10. xianshi.text=""+shuzu[suoyin]

  11. trace(shuzu[suoyin])
  12. shuzu.splice(suoyin,1)
  13. }
复制
下面解释一下上述代码【对照着截图看代码所在的行号】
1:创建一个数组,用于存储所有可能的随机数。我这里假设有50个随机数
2-4:一个for循环语句,作用是将1到50这50个数字分别赋值给shuzu的50个元素
6:这是一个用于索引数组内元素的一个变量
7-16:鼠标单击事件
11、先看Math.random()*shuzu.length 返回值是【大于等于0,小于shuzu的长度】
然后用Math.floor包括起来,用于将上面的数字取整,没有这个包括,得到的是带有小数点的数字。
取整的函数共有三个:
Math.floor 去尾 例:3.9处理后是3
Math.seil 进一 例:3.1处理后是4
Math.round 四舍五入 例:3.4处理后是3 3.5处理后是4
12、对舞台上的动态文本赋值,必须是字符串形式的,故而利用""这个空字符串和+连接符
赋的值 就是数组内索引是suoyin位置的元素的值
14、这行只能在测试环境中有效,方便大家记住已经抽取的数字
15、这一行是本例的核心所在,每单击一次按钮,就将shuzu内的这个被抽取出来的元素给删除
从而保证被抽取的数字不会重复
您所在的用户组只能看到部分内容.
如查看全部内容, 请先登录或者注册.
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

友情提示:单击下列任意一个表情,即可瞬间自动回复本帖!

好贴......
郁闷......
开心......
擦汗......
鄙视......
狂怒
谢谢
爱你呦
拜托了
嗯嗯
OMG
求关注
伤心......
无奈.....
无奈.....
无奈.....
无奈.....
无奈.....
哈哈哈
NO
OK
what
我来了

最近访问本帖者列表:

flashroad
访问时间:2021-04-09 10:02
云卷云舒
访问时间:2020-09-21 07:59
颜凉
访问时间:2020-06-18 08:13
迷彩不流泪
访问时间:2020-02-22 21:13
吃饭的厨子
访问时间:2020-02-11 21:59
网雨霏霏
访问时间:2019-08-13 12:32

打赏

取消

感谢您的支持,我会继续努力的!

扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by 爱秀代码,分享从这里开始,精彩与您同在

点评
B Color Smilies

您还可以输入:个字符
X

X

 

B Color Image Link Quote Code Smilies
高级模式 | 发新话题

您需要登录后才可以回帖 登录|立即注册

快速
返回顶部
返回首页