▼ActionScript 3.0メモ▼
便利関数集


ユーティリティクラス
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;
        }
    }
}



−戻る−