繁體
|
簡體
Sclub交友聊天~加入聊天室當版主
(檢舉)
分享
新浪微博
QQ空间
人人网
腾讯微博
Facebook
Google+
Plurk
Twitter
Line
标题:
[AS3技巧集]
AS3技巧集:4.不重复的随机数
[打印本页]
作者:
网雨霏霏
时间:
2019-3-17 22:15
标题:
AS3技巧集:4.不重复的随机数
本帖最后由 网雨霏霏 于 2019-3-17 22:17 编辑
【问题描述】:
有许多数字,从中随机抽取,要求已经抽取出的数字不得在后续抽取过程中出现。换言之,一个数字最多只能抽取一次
【解决方案】:
先下载制作好的文件:
本帖隐藏的内容需要回复才可以浏览
【使用flashCS6制作的】
[attach]1370[/attach]
代码如下:
var shuzu:Array=new Array(50)
for(var i:uint;i<shuzu.length;i++){
shuzu=i+1
}
var suoyin:uint
sjs_btn.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler);
function fl_MouseClickHandler(event:MouseEvent):void
{
suoyin=Math.floor(Math.random()*shuzu.length)
xianshi.text=""+shuzu[suoyin]
trace(shuzu[suoyin])
shuzu.splice(suoyin,1)
}
复制
下面解释一下上述代码【对照着截图看代码所在的行号】
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内的这个被抽取出来的元素给删除
从而保证被抽取的数字不会重复
作者:
flashroad
时间:
2019-8-7 13:20
爱你呦......
作者:
flashroad
时间:
2019-9-12 23:47
他[她]看完这篇文章说:
(来自快速回帖模式)
作者:
吃饭的厨子
时间:
2020-2-11 21:59
爱你呦......
作者:
迷彩不流泪
时间:
2020-2-18 14:25
学习学习,
作者:
人生陌路
时间:
2021-3-31 08:31
谢谢大佬分享!
作者:
flashroad
时间:
2021-4-9 10:02
深表赞同......
欢迎光临 flash之路-flash技术交流 (http://flashroad.joinbbs.net/)
Powered by Discuz! 7.2