チェンジセット 342

差分発生行の前後
無視リスト:
コミット日時:
2008/04/25 22:17:03 (4 年前)
コミッタ:
michi
ログメッセージ:

--

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • as3/Utils/src/org/libspark/utils/ArrayUtil.as

    r135 r342  
    222222            source[index2] = temp; 
    223223        } 
     224         
     225         
     226        /** 
     227         * 同じデータで構成された配列を作成します 
     228         *  
     229         * @param   param 配列にセットする値 
     230         * @param   len 配列の数 
     231         * @return  新しい配列を返します 
     232         * @author  michi at seyself.com 
     233         */ 
     234        public static function identicalArray( param:* , len:uint ):Array 
     235        { 
     236            var a = []; 
     237            for(var i=0;i<len;i++) a.push(param); 
     238            return a; 
     239        } 
     240         
     241        /** 
     242         * 連続する数値で構成された配列を作成します 
     243         *  
     244         * @param       len 作成する配列の要素数 
     245         * @param       firstValue 配列の最初の要素に含まれる数値 
     246         * @param       step 1要素ごとに加算(減算)されていく数値 
     247         * @return  新たしい配列を返します 
     248         * @author  michi at seyself.com 
     249         */ 
     250        public static function numericArray(len:int, firstValue:Number=0, step:Number=1.0 ):Array 
     251        { 
     252            var a = new Array(len); 
     253            return a.map(function(v:Number, i:int, a:Array) { return firstValue+i*step; }); 
     254        } 
     255         
     256        /** 
     257         * 配列内の要素がすべて同じクラスのインスタンスであるかを確認します 
     258         *  
     259         * @param       array 配列 
     260         * @param       theClass 判定対象となるクラス。指定がない場合は配列の1つ目の要素のコンストラクタから判定します。 
     261         * @return  異なるクラスのインスタンスが含まれている場合はfalseが返されます 
     262         * @author  michi at seyself.com 
     263         */ 
     264        public static function instanceOfEquals( array:Array, theClass:Class=null ):Boolean 
     265        { 
     266            var n:uint = array.length; 
     267             
     268            if (n == 0) throw new ArgumentError("空の配列をチェックすることはできません。"); 
     269             
     270            theClass = theClass || array[0].constructor; 
     271             
     272            for (var i:int = 0; i < n; i++ ) 
     273                if ( !(array[i] is theClass) ) return false; 
     274            return true; 
     275        } 
     276         
     277        /** 
     278         * 数値のみで構成される配列内の要素すべてに加算します 
     279         *  
     280         * @param       numericArray 数値のみで構成された配列 
     281         * @param       value 加算する数値 
     282         * @return 新たしい配列を返します 
     283         * @author  michi at seyself.com 
     284         */ 
     285        public static function addNumber( numericArray:Array, value:Number ):Array 
     286        { 
     287            return numericArray.map(function(v:Number, i:int, a:Array) { return v + value; } ); 
     288        } 
     289         
     290        /** 
     291         * 数値のみで構成される配列内の要素すべてから減算します 
     292         *  
     293         * @param       numericArray 数値のみで構成された配列 
     294         * @param       value 減算する数値 
     295         * @return 新たしい配列を返します 
     296         * @author  michi at seyself.com 
     297         */ 
     298        public static function subtractNumber( numericArray:Array, value:Number ):Array 
     299        { 
     300            return numericArray.map(function(v:Number, i:int, a:Array) { return v - value; } ); 
     301        } 
     302         
     303        /** 
     304         * 数値のみで構成される配列内の要素すべてに乗算します 
     305         *  
     306         * @param       numericArray 数値のみで構成された配列 
     307         * @param       value 乗算する数値 
     308         * @return  新たしい配列を返します 
     309         * @author  michi at seyself.com 
     310         */ 
     311        public static function multipleNumber( numericArray:Array, value:Number ):Array 
     312        { 
     313            return numericArray.map(function(v:Number, i:int, a:Array) { return v * value; } ); 
     314        } 
     315         
     316        /** 
     317         * 数値のみで構成される配列内の要素すべてに除算します 
     318         *  
     319         * @param       numericArray 数値のみで構成された配列 
     320         * @param       value 除算する数値 
     321         * @return  新たしい配列を返します 
     322         * @author  michi at seyself.com 
     323         */ 
     324        public static function divideNumber( numericArray:Array, value:Number ):Array 
     325        { 
     326            return numericArray.map(function(v:Number, i:int, a:Array) { return v / value; } ); 
     327        } 
     328         
     329        /** 
     330         * 配列をランダムに並び替えます 
     331         *  
     332         * @param   array 並び替えを行う配列 
     333         * @return  新しい配列を返します 
     334         * @author  michi at seyself.com 
     335         */ 
     336        public static function shuffle( array:Array ):Array 
     337        { 
     338            var c:Array = array.concat(); 
     339            var n:int, i:int = c.length - 1, t:*; 
     340            for( ; i; --i ){ 
     341                n = Math.random() * i >> 0; 
     342                t = c[i]; 
     343                c[i] = c[n]; 
     344                c[n] = t; 
     345            } 
     346            return c; 
     347        } 
     348         
     349        /** 
     350         * 指定配列の中から比較対象の配列内に同じ値が含まれているものだけを抜き出した新しい配列を作ります 
     351         *  
     352         * @param       array 比較元となる配列 
     353         * @param       compareTarget 比較対象の配列 
     354         * @return  新たしい配列を返します 
     355         * @author  michi@seyself.com 
     356         */ 
     357        public static function matches(array:Array, compareTarget:Array):Array 
     358        { 
     359            var len1:uint = array.length; 
     360            var len2:uint = compareTarget.length; 
     361            var res:Array = []; 
     362            for (var i:int = 0; i < len1; i++ ) { 
     363                for (var j:int = 0; j < len2; j++ ) { 
     364                    if( array[i] == compareTarget[j] ) { 
     365                        res.push( array[i] ); 
     366                        break; 
     367                    } 
     368                } 
     369            } 
     370            return res; 
     371        } 
     372         
     373         
    224374    } 
    225375} 
  • as3/Utils/src/org/libspark/utils/StringUtil.as

    r135 r342  
    7777                                } ); 
    7878                } 
     79                 
     80        /** 
     81         * 改行をすべて\r(LF)に変換します。 
     82         *  
     83         * @param       str 変換対象の文字列 
     84         * @return  変換後の文字列を返します 
     85         * @author  michi at seyself.com 
     86         */ 
     87        public static function replaceLineFeed( str:String ):String 
     88        { 
     89            str = str.split("\r\n").join("\r"); 
     90            return str.split("\n").join("\r"); 
     91        } 
     92         
     93        /** 
     94         * 同じ文字列を複数連結した文字列を返します。 
     95         *  
     96         * @param       value 文字列 
     97         * @param       len 連結数 
     98         * @return  新しい文字列を返します 
     99         * @author  michi at seyself.com 
     100         */ 
     101        public static function strpow( value:String , len:uint ):String 
     102        { 
     103            var tmp:String = ""; 
     104            for(var i:int=0;i<len;i++) tmp += value; 
     105            return tmp; 
     106        } 
     107         
     108        /** 
     109         * テキストフィールドの横幅を維持するためにtextプロパティに指定されている文字列の末尾を削ります。 
     110         * テキストフィールドが単一行の設定でなければ効果はありません。 
     111         *  
     112         * @param       textField 対象となるテキストフィールド 
     113         * @param       width 制限する横幅 
     114         * @param       param 末尾を3点リーダ等に置き換える場合に指定する文字列 
     115         * @author  michi at seyself.com 
     116         */ 
     117        public static function fitTextField( textField:TextField , width:Number , param:String="" ):void 
     118        { 
     119            if ( param == null ) param = "";  
     120            var n:uint = param.length + 1; 
     121            while( textField.textWidth > width ){ 
     122                if (textField.textWidth > width * 2) { 
     123                    textField.text = textField.text.substr(0, textField.text.length*0.66>>0) + param; 
     124                } 
     125                textField.text = textField.text.substr(0, textField.text.length - n) + param; 
     126            } 
     127        } 
     128         
    79129        } 
    80130}