您的位置:首页 > 其它

flash下随机生成中文和字符

2014-12-15 15:42 211 查看
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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: