加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flash下随机生成中文和字符

发布时间:2020-12-15 17:30:17 所属栏目:百科 来源:网络整理
导读:protected var _str1:String,_str2:String,_str3:String,_str4:String;span style="white-space:pre"/spanspan style="white-space:pre"/span//获取一个随机的范围整数值span style="white-space:pre"/spanprotected function integer(value:Number):intspan
protected var _str1:String,_str2:String,_str3:String,_str4:String;
<span style="white-space:pre">			</span>
<span style="white-space:pre">			</span>//获取一个随机的范围整数值
<span style="white-space:pre">			</span>protected function integer(value:Number):int
<span style="white-space:pre">			</span>{
<span style="white-space:pre">				</span>return Math.floor(number(value));
<span style="white-space:pre">			</span>}
<span style="white-space:pre">			</span>
<span style="white-space:pre">			</span>
<span style="white-space:pre">			</span>//获取一个随机的范围Number值
<span style="white-space:pre">			</span>protected function number(value:Number):Number
<span style="white-space:pre">			</span>{
<span style="white-space:pre">				</span>return Math.random() * value;
<span style="white-space:pre">			</span>}
<span style="white-space:pre">			</span>
<span style="white-space:pre">			</span>protected function randomRange(restrictList:Array):Number
<span style="white-space:pre">			</span>{
<span style="white-space:pre">				</span>var list:Array = new Array();
<span style="white-space:pre">				</span>var length:int = restrictList.length;
<span style="white-space:pre">				</span>if (length % 2 != 0 || length == 0)
<span style="white-space:pre">				</span>{
<span style="white-space:pre">					</span>throw new Error("参数错误!无法获取指定范围!");
<span style="white-space:pre">				</span>}//将所有可能出现的随机数存入数组,然后进行随机
<span style="white-space:pre">				</span>for (var i:int = 0; i < length / 2; i ++)
<span style="white-space:pre">				</span>{
<span style="white-space:pre">					</span>var begin:int = restrictList[i * 2];
<span style="white-space:pre">					</span>var end:int = restrictList[i * 2 + 1];
<span style="white-space:pre">					</span>if (begin > end)
<span style="white-space:pre">					</span>{
<span style="white-space:pre">						</span>var value:Number = begin;
<span style="white-space:pre">						</span>begin = end;
<span style="white-space:pre">						</span>end = value;
<span style="white-space:pre">					</span>}
<span style="white-space:pre">					</span>for (begin; begin < end; begin ++)
<span style="white-space:pre">					</span>{
<span style="white-space:pre">						</span>list.push(begin);
<span style="white-space:pre">					</span>}
<span style="white-space:pre">				</span>}
<span style="white-space:pre">				</span>var result:Number = list[integer(list.length)];
<span style="white-space:pre">				</span>
<span style="white-space:pre">				</span>restrictList = null;<span style="white-space:pre">				</span>
<span style="white-space:pre">				</span>list = null;
<span style="white-space:pre">				</span>return result;
<span style="white-space:pre">			</span>}
<span style="white-space:pre">			</span>
<span style="white-space:pre">			</span>protected function explain(restrict:String,isCodeAt:Boolean = true):Array
<span style="white-space:pre">			</span>{
<span style="white-space:pre">				</span>var result:Array = new Array ?;
<span style="white-space:pre">				</span>var restrictList:Array = restrict.split(",");
<span style="white-space:pre">				</span>var length:uint = restrictList.length;
<span style="white-space:pre">				</span>for (var i:int = 0; i < length; i ++)
<span style="white-space:pre">				</span>{
<span style="white-space:pre">					</span>var list:Array = restrictList[i].split("-");
<span style="white-space:pre">					</span>if (list.length == 2)
<span style="white-space:pre">					</span>{
<span style="white-space:pre">						</span>var begin:String = list[0];
<span style="white-space:pre">						</span>var end:String = list[1];
<span style="white-space:pre">						</span>if (isCodeAt)
<span style="white-space:pre">						</span>{
<span style="white-space:pre">							</span>begin = begin.charCodeAt().toString();
<span style="white-space:pre">							</span>end = end.charCodeAt().toString();
<span style="white-space:pre">						</span>}
<span style="white-space:pre">						</span>//此处如果不加1,将不会随机ar[1]所表示字符,因此需要加上1,随机范围才是对的
<span style="white-space:pre">						</span>result.push(Number(begin),Number(end) + 1);
<span style="white-space:pre">					</span>}
<span style="white-space:pre">					</span>else if (list.length == 1)
<span style="white-space:pre">					</span>{
<span style="white-space:pre">						</span>var value:String = list[0];
<span style="white-space:pre">						</span>if (isCodeAt)
<span style="white-space:pre">						</span>{
<span style="white-space:pre">							</span>value = value.charCodeAt().toString();
<span style="white-space:pre">						</span>}//如果范围是1-2,那么整型随机必定是1,因此拿出第一个参数后,把范围定在参数+1,则就是让该参数参加随机
<span style="white-space:pre">						</span>result.push(Number(value),Number(value) + 1);
<span style="white-space:pre">					</span>}
<span style="white-space:pre">					</span>list = null;
<span style="white-space:pre">				</span>}
<span style="white-space:pre">				</span>restrictList = null;
<span style="white-space:pre">				</span>return result;
<span style="white-space:pre">			</span>}
<span style="white-space:pre">			</span>
<span style="white-space:pre">			</span>protected function getChinese(length:int):String
<span style="white-space:pre">			</span>{
<span style="white-space:pre">				</span>var rez:String = "";
<span style="white-space:pre">				</span>for (var i:int = 0; i < length; i++)
<span style="white-space:pre">				</span>{
<span style="white-space:pre">					</span>_str1 = String.fromCharCode(randomRange(explain("B-F")));
<span style="white-space:pre">					</span>if (_str1 == "F")
<span style="white-space:pre">					</span>{
<span style="white-space:pre">						</span>_str2 = String.fromCharCode(randomRange(explain("0-7")));
<span style="white-space:pre">					</span>}
<span style="white-space:pre">					</span>else
<span style="white-space:pre">					</span>{
<span style="white-space:pre">						</span>_str2 = String.fromCharCode(randomRange(explain("0-9,A-F")));
<span style="white-space:pre">					</span>}
<span style="white-space:pre">					</span>_str3 = String.fromCharCode(randomRange(explain("A-F")));
<span style="white-space:pre">					</span>switch (_str3)
<span style="white-space:pre">					</span>{
<span style="white-space:pre">						</span>case "A" :
<span style="white-space:pre">							</span>_str4 = String.fromCharCode(randomRange(explain("1-9,A-F")));
<span style="white-space:pre">							</span>break;
<span style="white-space:pre">						</span>case "F" :
<span style="white-space:pre">							</span>_str4 = String.fromCharCode(randomRange(explain("0-9,A-E")));
<span style="white-space:pre">							</span>break;
<span style="white-space:pre">						</span>default :
<span style="white-space:pre">							</span>_str4 = String.fromCharCode(randomRange(explain("0-9,A-F")));
<span style="white-space:pre">							</span>break;
<span style="white-space:pre">					</span>}
<span style="white-space:pre">					</span>
<span style="white-space:pre">					</span>var _str:String = "0x" + _str1 + _str2 + _str3 + _str4;
<span style="white-space:pre">					</span>var byteArr1:ByteArray = new ByteArray();
<span style="white-space:pre">					</span>
<span style="white-space:pre">					</span>byteArr1.writeShort(parseInt(_str,16));
<span style="white-space:pre">					</span>byteArr1.position = 0;
<span style="white-space:pre">					</span>
<span style="white-space:pre">					</span>rez += byteArr1.readMultiByte(2,"gb2312");
<span style="white-space:pre">					</span>
<span style="white-space:pre">					</span>byteArr1 = null;
<span style="white-space:pre">				</span>}
<span style="white-space:pre">				</span>return rez;
<span style="white-space:pre">			</span>}
<span style="white-space:pre">			</span>
<span style="white-space:pre">			</span>private function GenerateCheckCode(length:int):String
<span style="white-space:pre">			</span>{?
<span style="white-space:pre">				</span>//init?
<span style="white-space:pre">				</span>var ran:Number;?
<span style="white-space:pre">				</span>var number:Number;?
<span style="white-space:pre">				</span>var code:String;?
<span style="white-space:pre">				</span>var checkCode:String ="";?
<span style="white-space:pre">				</span>for(var i:int=0; i<length; i++)?
<span style="white-space:pre">				</span>{?
<span style="white-space:pre">					</span>ran=Math.random();?
<span style="white-space:pre">					</span>number =Math.round(ran*10000); ? ? ? ? ? ?//get result like 0.1234?
<span style="white-space:pre">					</span>if(number % 2 == 0)?
<span style="white-space:pre">						</span>code = String.fromCharCode(48+(number % 10)); ? ? ? ?//0's ASCII code is 48?
<span style="white-space:pre">					</span>else
<span style="white-space:pre">						</span>code = String.fromCharCode(65+(number % 26)) ; ? ? ? ?// A's ASCII code is 65?
<span style="white-space:pre">					</span>checkCode += code;?
<span style="white-space:pre">				</span>}?
<span style="white-space:pre">				</span>return checkCode;?
<span style="white-space:pre">			</span>}
 
 
使用方法如下:
var bb:String = getChinese(100) + GenerateCheckCode(100);
trace(bb);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读