今天无意中看了广东电视台的街霸4 比赛,小孩的表演赛,真够刺激的。节目最后见到一个抽奖程序,电视台滚动之后就出现了手机号码和地区。于是动手写了一个简单的。利用随机抽取制作一个手机抽奖程序,原理很简单。只是个小demo ,依旧可以进行扩展。

初步的控制:

Space 抽取

Enter 开始抽奖

F1  重启

对应的有开始 结束 和重启的方法。

同样可以对手机进行模糊。这个可以试试。

还可以继续完善修改。这只是一个简单demo 效果。

扩展的时候,可以把电话号码写到外面。进行加载。以及混淆。

还可以扩展抽取多个。

其中

msg.text=obj.tel.toString();
       address.text=obj.address.toString();

在舞台上已经创建好了动态文本,属性名称分别为msg 和address.

版本一:只含有手机号码msg.text=obj.tel.toString();

当你细心会发现,图中在截取号码的时候,

//写于2010 8月10日 package { import flash.display.Sprite; import flash.events.*; import flash.utils.getTimer; import flash.text.*; import flash.ui.*; public class Main extends Sprite { private var data:Array=["13100000000","13211111111","13322222222", "13433333333","13544444444", "13666666666", "13877777777","13988888888", "13099999999"]; private var tempArray:Array; private var istart:Boolean=false; private var id:int;//中奖id public function Main() { init(); } private function init():void { var temp:Array=data.concat(); tempArray=mixArray(temp); addEventListener(Event.ENTER_FRAME,Run); stage.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDownHandler);//键盘控制 } private function Run(event:Event):void { if (istart) { msg.text=randomNumber(tempArray); } } //随机返回一个数 private function randomNumber(array:Array):String { var str:String; if (tempArray.length!=0) { id=int(Math.random() * array.length); str=array[id]; } else { str="抽奖完毕"; } return str; } private function onKeyDownHandler(event:KeyboardEvent):void { switch (event.keyCode) { case Keyboard.SPACE : stop(); break; case Keyboard.ENTER : start(); break; case Keyboard.F1: rest(); break; } } //结束 private function stop():void { istart=false; if(tempArray.length!=0) tempArray.splice(id,1); } //开始 private function start():void { istart=true; } //重启 private function rest():void { var temp:Array=data.concat(); tempArray=mixArray(temp); istart=false; } //模糊号码1350xxxx111 private function mixArray(array:Array):Array { var len:int=array.length; var result:Array=[]; for(var i:int=0;i<len;i++) { var str:String=array[i].substring(0,3)+"XXXX"+array[i].substring(8); result.push(str); } return result; } } }

第二个版本:带有地址的版本!

计算少了一个位置。需要在这里进行修正

obj.tel=array[i].tel.substring(0,3)+"XXXX"+array[i].tel.substring(7);你看起来就很像

//写于2010 8月10日 package { import flash.display.Sprite; import flash.events.*; import flash.utils.getTimer; import flash.text.*; import flash.ui.*; import flash.utils.*; public class Main extends Sprite { private var data:Array=[{tel:"13100000000",address:"广东 佛山"}, {tel:"13211111111",address:"广东 花都"}, {tel:"13322222222",address:"广东 中山"}, {tel:"13333333333",address:"广东 番禺"}, {tel:"13344444444",address:"广东 广州"}, {tel:"13355555555",address:"广东 从化"}, {tel:"13366666666",address:"广东 花都"}, {tel:"13377777777",address:"广东 深圳"}, {tel:"13388888888",address:"广东 东莞"}]; private var tempArray:Array; private var istart:Boolean=false; private var id:int;//中奖id public function Main() { init(); } private function init():void { var temp:Array=duplice(data); tempArray=mixArray(temp); addEventListener(Event.ENTER_FRAME,Run); stage.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDownHandler);//键盘控制 } private function Run(event:Event):void { if (istart) { var obj:Object=randomNumber(tempArray); msg.text=obj.tel.toString(); address.text=obj.address.toString(); } } //随机返回一个数 private function randomNumber(array:Array):Object { var obj:Object={}; if (tempArray.length!=0) { id=int(Math.random() * array.length); obj.tel=array[id].tel; obj.address=array[id].address; trace(array[id].tel); } else { obj.tel="抽奖完毕"; obj.address=""; } return obj; } private function onKeyDownHandler(event:KeyboardEvent):void { switch (event.keyCode) { case Keyboard.SPACE : stop(); break; case Keyboard.ENTER : start(); break; case Keyboard.F1: rest(); break; } } //结束 private function stop():void { istart=false; if(tempArray.length!=0) tempArray.splice(id,1); } //开始 private function start():void { istart=true; } //重启 private function rest():void { var temp:Array=duplice(data); tempArray=mixArray(temp); istart=false; } //模糊号码1350xxxx111 private function mixArray(array:Array):Array { var len:int=array.length; var result:Array=[]; for(var i:int=0;i<len;i++) { var obj:Object={}; obj.tel=array[i].tel.substring(0,3)+"XXXX"+array[i].tel.substring(7); obj.address=array[i].address; result.push(obj); } return result; } //复制 private function duplice(array:Array):Array { var byte:ByteArray=new ByteArray(); byte.writeObject(array); byte.position=0; var arr:Array=byte.readObject() as Array; return arr; } } }

扩展:为了更加完善一下。还可以对这个demo 改进,改进包括对电话号码获取进行外部处理和保存

其次是将主类进行拆开几个文件处理,减少主类过多代码量。增加外部加载图片。方便日后背景换主题。

加入音乐主题,用于音乐气氛需要。加强操作管理。适合更多的控制!开启全屏

最后放个截图。结果好像差不多。呵呵!在山寨当中了

flash 与随机性:随机抽取(2)相关推荐

  1. 随机抽取人员回答问题FLASH

    利用FlashPlayer.exe打开Lottery.swf,然后在按CTRL+F设为全屏.本FALSH为1024*768,适合投影使用. 首页: 主界面(用鼠标点击首页后出现),点击"开始 ...

  2. 数组随机抽取 java_Java利用数组随机抽取幸运观众如何实现

    这篇文章主要介绍了Java利用数组随机抽取幸运观众如何实现,需要的朋友可以参考下 编写程序,事先将所有观众姓名输入数组,然后获得数组元素的总数量,最后在数组元素中随机抽取元素的下标,根据抽取的下标获得 ...

  3. php 数组 随机选择_php中通过数组进行高效随机抽取指定条记录的算法

    php使用数组array_rand()函数进行高效随机抽取指定条数的记录,可以随机抽取数据库中的记录,适合进行随机展示和抽奖程序. 该算法主要是利用php的array_rand()函数,下面看一下ar ...

  4. laravel mysql rand_laravel如何从mysql数据库中随机抽取n条数据(高性能) - Laravel学习网...

    laravel如何高性能地从mysql数据库中随机获取n条数据,有时候我们常常会需要从数据库随机获取数据,比如:给工作人员随机分配10个订单,随机从数据库中随机抽查100个用户:这样我们就需要随机从数 ...

  5. python随机抽号_随手小代码——Python 从集合中随机抽取元素

    =================================版权声明================================= 版权声明:原创文章 谢绝转载 请通过右侧公告中的" ...

  6. MYSQL的随机抽取实现方法

    MYSQL的随机抽取实现方法.举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1. ...

  7. php 判断5张牌是不是顺子,从扑克牌中随机抽取5张牌,判断是不是一个顺子,即这5张牌是不是连续(面试题)...

    从扑克牌中随机抽取5张牌,判断是不是一个顺子,即这5张牌是不是连续的2-10位数字本身,A为1,J为11,Q为12,K为13,而大小王可以看成任意数字 统计数组中出现的次数,判断等于0,大于1大于2大 ...

  8. excel随机抽取_Excel条件格式,扮靓你的报表

    为一亿职场人士赋能 后台回复100 领取100节Excel课程 哈喽,大家好. 储君老师又来送书啦! 今天送出本周的第2本书 前1天送的书请见 一小时教你全面了解微软Office认证考试 8个实用Ex ...

  9. html在线随机抽取,利用纯html+javascript实现随机抽取显示

    求助:利用纯html+javascript实现随机抽取显示 1 一个智力问答页面,每次显示一个判断题,最多可以连续答10题.题目从固定的10个问题中随机抽出一个且不能重复. 2 问题只有两种答案,对或 ...

最新文章

  1. cmd指令大全指令_干货 | Linux 超全实用指令大全
  2. [WinCE版凯立德]2013夏季版地图2E21J0D更新下载(9.8增加2E23J0D分省地图)
  3. PMP之敏捷图表之产品地图VS产品路线图
  4. JS 原生 AJax
  5. 74HC595芯片使用说明
  6. zookeeper出现Error contacting service. It is probably not running.
  7. 【牛客 - 272D】Where are you(Tarjan求桥)
  8. java安装后启动程序在哪_java – 有没有办法在安装后使用一些“帮助应用程序”立即启动应用程序?...
  9. 正则表达式的贪婪与非贪婪模式
  10. 3808. 画正方形——AcWing题库
  11. 六石管理学:培训重点应该是工作技能
  12. 百度SEO标题关键词伪原创组合工具
  13. OsiriX User Manual - 3D Curved MPR(曲面重建)
  14. java win10窗口启动假死_win10系统下桌面经常假死如何解决
  15. ImportError: cannot import name 'imsave' from 'scipy.misc' (C:\Users\DELL\AppData\Roaming\Python\Pyt
  16. 拼写错误python能正常启动吗_拼写检查
  17. Java不停机上线_不停机发布策略
  18. 特拉华大学计算机专业怎么样,2019上海软科世界一流学科排名计算机科学与工程专业排名特拉华大学排名第201-300...
  19. 《Head First设计模式(中文版)》
  20. 大数据笔记--Spark(第四篇)

热门文章

  1. 第二阶段冲刺第六天,6月5日。
  2. 日志分析(shell脚本)
  3. “考虑对方的感受”之案例
  4. 问题六十七:ray tracing学习总结(2016.11.13, 2017.02.05)
  5. NLP情感分析笔记(四):卷积情感分析
  6. 《深度学习》李宏毅 -- task5网络技巧设计
  7. 数据分析过程注意事项
  8. 大数据应用的优势在哪
  9. 大数据中数据挖掘的基本步骤
  10. C++算法学习(力扣:328. 奇偶链表)