package {
import flash.display.Sprite;
import flash.display.LoaderInfo;
//ユーティリティ
public class Util {
//====================
//システム
//====================
//配列コピー
public static function arraycopy(array0:Array,offset0:int,
array1:Array, offset1:int, size1:int):void {
var idx:int = offset0;
for (var i:int = offset1; i < offset1 + size1; i++) {
array1[i] = array0[idx];
idx++;
}
}
//現在時刻の取得
public static function currentTimeMillis():Number {
return (new Date()).getTime();
}
//乱数の取得
public static function rand(num:int):int {
return Math.floor(Math.random() * num);
}
//パラメータの取得
public static function getParam(base:Sprite,key:String, def:String):String {
var param:Object = LoaderInfo(base.root.loaderInfo).parameters;
if (param[key] == null || param[key].length == 0) return def;
return param[key];
}
//====================
//文字列処理
//====================
//前方一致比較
public static function startsWith(str0:String, str1:String):Boolean {
if (str0.length < str1.length) return false;
return str0.substr(0, str1.length) == str1;
}
//後方一致比較
public static function endsWith(str0:String, str1:String):Boolean {
if (str0.length < str1.length) return false;
return str0.substr(str0.length - str1.length, str1.length) == str1;
}
//文字列のバイト数の取得
public static function getBytesLength(str:String):int {
var cnt:int = 0;
var len:int = str.length;
while (len--) {
(checkHalf(str.substr(len, 1)))?cnt++:cnt += 2;
}
return cnt;
}
//文字列が全て半角かどうかをチェック
private static function checkHalf(str:String):Boolean {
return (checkCode(str,0x00,0x7f) ||
checkCode(str,0xFF61,0xFF9F))?true:false;
}
//文字コードが範囲かどうかをチェック
private static function checkCode(str:String, min:int, max:int):Boolean {
var len:int = str.length;
while (len--) {
var num:int = str.substr(len, 1).charCodeAt(0);
if (num < min || num > max) {
return false;
break;
}
}
return true;
}
//文字列を任意の文字で分割
public static function parseStr(str:String, sep:String):Array {
var i:int, j:int, size:int;
var result:Array = new Array();
//置換
var pattern:RegExp =/\r/;
str = str.replace(pattern, "");
//最後尾に分割文字
if (str == "" || str.substring(str.length - 1) != sep) str += sep;
//分割
size = 0;
j = 0;
i = str.indexOf(sep);
while (i >= 0) {
result.push(str.substring(j, i));
j = i + 1;
i = str.indexOf(sep, j);
}
return result;
}
}
} |