Packagekrewfw.utils.swiss_knife
Classpublic class KrewTopUtil
InheritanceKrewTopUtil Inheritance Object

Singleton Army knife for game coding. Collections of top-level, frequently-used stateless functions. If you import krewfw.utils.krew, you can access to this utilities easily as below:
         import krewfw.utils.krew;
              krew.rand(100);            // Top Level utilities
         krew.str.repeat(', 10);  // 2nd Level utilities
         ...
     
And when you're writing KrewActor, it's no longer need to import krew. KrewActor has krew as class member.



Public Properties
 PropertyDefined By
  agent : KrewActorAgent
[read-only]
KrewTopUtil
  instance : KrewTopUtil
[static] [read-only]
KrewTopUtil
  list : KrewListUtil
KrewTopUtil
  str : KrewStringUtil
KrewTopUtil
Public Methods
 MethodDefined By
  
KrewTopUtil
  
async(asyncDef:*, onComplete:Function = null):void
See krewfw.utils.as3.KrewAsync.
KrewTopUtil
  
deg2rad(deg:Number):Number
KrewTopUtil
  
distance(x1:Number, y1:Number, x2:Number, y2:Number):Number
KrewTopUtil
  
dump(obj:Object):void
KrewTopUtil
  
flattenObject(obj:Object):Object
Convert nested object into new flat object.
KrewTopUtil
  
fwlog(msg:String, traceLevel:int = 1):void
krewFramework の中から呼んでいるシステムログ。 フレームワーク利用者はこちらではなく log を利用してほしい。 (そうすれば、フレームワーク側とゲーム側でログの出力レベルを個別に変えることができる)
KrewTopUtil
  
getAlpha(color:uint):int
KrewTopUtil
  
getBlue(color:uint):int
KrewTopUtil
  
getGreen(color:uint):int
KrewTopUtil
  
getRed(color:uint):int
KrewTopUtil
  
hsv2int(hue:Number, saturation:Number, val:Number):uint
convert HSV to 24bit interger
KrewTopUtil
  
hsv2intWithRand(hMin:Number, hMax:Number, sMin:Number, sMax:Number, vMin:Number, vMax:Number):uint
KrewTopUtil
  
int2rgb(color:uint):Array
convert 24bit interger to RGB array (0xffffff -> [256, 256, 256])
KrewTopUtil
  
last(list:Object, n:int = -1):*
Returns the last element of a list.
KrewTopUtil
  
log(msg:String, traceLevel:int = 1):void
KrewTopUtil
  
logClassName(obj:Object, traceLevel:int = 2):void
KrewTopUtil
  
max(a:Number, b:Number):Number
KrewTopUtil
  
min(a:Number, b:Number):Number
KrewTopUtil
  
rad2deg(rad:Number):Number
KrewTopUtil
  
rand(min:Number, max:Number):Number
Returns floating random number.
KrewTopUtil
  
randArea(min:Number, max:Number):Number
OLD CODE.
KrewTopUtil
  
randInt(min:Number, max:Number):int
Returns integer random number.
KrewTopUtil
  
randPlusOrMinus(min:Number, max:Number):Number
KrewTopUtil
  
range(first:Number, last:Number, step:Number):Array
range(5) -> [0, 1, 2, 3, 4] range(3, 7) -> [3, 4, 5, 6, 7] range(3, 3.1) -> [3] range(2, 3.5, 0.5) -> [2.0, 2.5, 3.0, 3.5] range(7, 3) -> [7, 6, 5, 4, 3] range(7, 7) -> [7] range(7, 6.9) -> [7] range(3, 2, -0.5) -> [3.0, 2.5, 2.0] range(7, 3, 1) -> null // invalid arguments range(0) -> []
KrewTopUtil
  
rgb2int(red:int, green:int, blue:int):uint
KrewTopUtil
  
selectFunc(candidates:Array):void
Select function randomly from weighted function list, using Roulette Wheel Selection algorithm.
KrewTopUtil
  
selectValue(targetThreshold:int, thresholds:Array):Number
Return value depending on threshold list.
KrewTopUtil
  
shuffle(list:Array):Array
Returns shuffled copy of the list, using the Fisher-Yates shuffle algorithm.
KrewTopUtil
  
squaredDistance(x1:Number, y1:Number, x2:Number, y2:Number):Number
KrewTopUtil
  
times(count:int, func:Function):void
Simply repeat func n times.
KrewTopUtil
  
traverse(obj:Object, callback:Function, depth:int = 0):void
Traverse Object and apply function for each key-values.
KrewTopUtil
  
traverseSortedWithKey(obj:Object, callback:Function, depth:int = 0):void
KrewTopUtil
  
traverseWithAbsPath(obj:Object, callback:Function, path:String):void
Traverse Object and apply function for each key-values.
KrewTopUtil
  
within(value:Number, min:Number, max:Number):Number
KrewTopUtil
Property Detail
agentproperty
agent:KrewActorAgent  [read-only]


Implementation
    public function get agent():KrewActorAgent
instanceproperty 
instance:KrewTopUtil  [read-only]


Implementation
    public static function get instance():KrewTopUtil
listproperty 
public var list:KrewListUtil

strproperty 
public var str:KrewStringUtil

Constructor Detail
KrewTopUtil()Constructor
public function KrewTopUtil()



Method Detail
async()method
public function async(asyncDef:*, onComplete:Function = null):void

See krewfw.utils.as3.KrewAsync.

Parameters

asyncDef:*
 
onComplete:Function (default = null)

deg2rad()method 
public function deg2rad(deg:Number):Number

Parameters

deg:Number

Returns
Number
distance()method 
public function distance(x1:Number, y1:Number, x2:Number, y2:Number):Number

Parameters

x1:Number
 
y1:Number
 
x2:Number
 
y2:Number

Returns
Number
dump()method 
public function dump(obj:Object):void

Parameters

obj:Object

flattenObject()method 
public function flattenObject(obj:Object):Object

Convert nested object into new flat object. For example, following object:

             {
                 hoge: 123,
                 fuga: {
                     piyo: 456
                 }
             }
         
is converted into object as below:
             {
                 'hoge'     : 123,
                 'fuga.piyo': 456
             }
         
This method is non-destructive.

Parameters

obj:Object

Returns
Object
fwlog()method 
public function fwlog(msg:String, traceLevel:int = 1):void

krewFramework の中から呼んでいるシステムログ。 フレームワーク利用者はこちらではなく log を利用してほしい。 (そうすれば、フレームワーク側とゲーム側でログの出力レベルを個別に変えることができる)

Parameters

msg:String
 
traceLevel:int (default = 1)

getAlpha()method 
public function getAlpha(color:uint):int

Parameters

color:uint

Returns
int
getBlue()method 
public function getBlue(color:uint):int

Parameters

color:uint

Returns
int
getGreen()method 
public function getGreen(color:uint):int

Parameters

color:uint

Returns
int
getRed()method 
public function getRed(color:uint):int

Parameters

color:uint

Returns
int
hsv2int()method 
public function hsv2int(hue:Number, saturation:Number, val:Number):uint

convert HSV to 24bit interger

Parameters

hue:Number — (色相) [0, 360]
             360, 0: red
                 60: yellow
                120: green
                180: cyan
                240: blue
                300: magenta
         
 
saturation:Number — [0, 1] 0: 無彩色(グレースケール) 1: 純色(最も鮮やか)
 
val:Number — Value of Brightness (明度) [0, 1] 0: 黒(最も暗い) 1: 最も明るい(彩度が 0 なら白)

Returns
uint
hsv2intWithRand()method 
public function hsv2intWithRand(hMin:Number, hMax:Number, sMin:Number, sMax:Number, vMin:Number, vMax:Number):uint

Parameters

hMin:Number
 
hMax:Number
 
sMin:Number
 
sMax:Number
 
vMin:Number
 
vMax:Number

Returns
uint
int2rgb()method 
public function int2rgb(color:uint):Array

convert 24bit interger to RGB array (0xffffff -> [256, 256, 256])

Parameters

color:uint

Returns
Array
last()method 
public function last(list:Object, n:int = -1):*

Returns the last element of a list. Passing optional n will return an array of the last n elements of the list.

Parameters

list:Object — Array or Vector is expected.
 
n:int (default = -1)

Returns
*
log()method 
public function log(msg:String, traceLevel:int = 1):void

Parameters

msg:String
 
traceLevel:int (default = 1)

logClassName()method 
public function logClassName(obj:Object, traceLevel:int = 2):void

Parameters

obj:Object
 
traceLevel:int (default = 2)

max()method 
public function max(a:Number, b:Number):Number

Parameters

a:Number
 
b:Number

Returns
Number
min()method 
public function min(a:Number, b:Number):Number

Parameters

a:Number
 
b:Number

Returns
Number
rad2deg()method 
public function rad2deg(rad:Number):Number

Parameters

rad:Number

Returns
Number
rand()method 
public function rand(min:Number, max:Number):Number

Returns floating random number.

           rand(5)    -> 0.0 〜 5.0   // (max is not inclusive)
           rand(2, 4) -> 2.0 〜 4.0
           rand(4, 2) -> 2.0 〜 4.0
         

Parameters

min:Number
 
max:Number (default = NaN)

Returns
Number
randArea()method 
public function randArea(min:Number, max:Number):Number

OLD CODE. Now this is alias of rand(min, max)

Parameters

min:Number
 
max:Number

Returns
Number
randInt()method 
public function randInt(min:Number, max:Number):int

Returns integer random number.

           rand(5)    -> any of  0, 1, 2, 3, 4
           rand(0, 5) -> any of  0, 1, 2, 3, 4, 5   // (5 is inclusive)
           rand(5, 0) -> any of  0, 1, 2, 3, 4, 5
           rand(-5)   -> any of  -1, -2, -3, -4, -5
         

Parameters

min:Number
 
max:Number (default = NaN)

Returns
int
randPlusOrMinus()method 
public function randPlusOrMinus(min:Number, max:Number):Number

Parameters

min:Number
 
max:Number

Returns
Number
range()method 
public function range(first:Number, last:Number, step:Number):Array

           range(5)           -> [0, 1, 2, 3, 4]
           range(3, 7)        -> [3, 4, 5, 6, 7]
           range(3, 3.1)      -> [3]
           range(2, 3.5, 0.5) -> [2.0, 2.5, 3.0, 3.5]
                    range(7, 3)        -> [7, 6, 5, 4, 3]
           range(7, 7)        -> [7]
           range(7, 6.9)      -> [7]
           range(3, 2, -0.5)  -> [3.0, 2.5, 2.0]
           range(7, 3, 1)     -> null  // invalid arguments
           range(0)           -> []
         

Parameters

first:Number
 
last:Number (default = NaN)
 
step:Number (default = NaN)

Returns
Array
rgb2int()method 
public function rgb2int(red:int, green:int, blue:int):uint

Parameters

red:int
 
green:int
 
blue:int

Returns
uint
selectFunc()method 
public function selectFunc(candidates:Array):void

Select function randomly from weighted function list, using Roulette Wheel Selection algorithm.

Parameters

candidates:Array — Array such as:
             [
                 {func: Function1, weight: 30},
                 {func: Function2, weight: 70}
             ]
         

selectValue()method 
public function selectValue(targetThreshold:int, thresholds:Array):Number

Return value depending on threshold list.

Parameters

targetThreshold:int — Array of Array such as:
             [[threshold:int, value:int]], ...]
         
Example: If thresholds is [[100, 2], [200, 4], [300, 6]] and targetThreshold is 250, then this function returns 4 because 250 is larger than 200 but smaller than 300.
 
thresholds:Array

Returns
Number
shuffle()method 
public function shuffle(list:Array):Array

Returns shuffled copy of the list, using the Fisher-Yates shuffle algorithm.

Parameters

list:Array

Returns
Array
squaredDistance()method 
public function squaredDistance(x1:Number, y1:Number, x2:Number, y2:Number):Number

Parameters

x1:Number
 
y1:Number
 
x2:Number
 
y2:Number

Returns
Number
times()method 
public function times(count:int, func:Function):void

Simply repeat func n times. Useful for making closures in loops.

Parameters

count:int
 
func:Function

traverse()method 
public function traverse(obj:Object, callback:Function, depth:int = 0):void

Traverse Object and apply function for each key-values.

Parameters

obj:Object — Function that accepts (key:String, value: depth:int) as its parameter.
 
callback:Function
 
depth:int (default = 0)

traverseSortedWithKey()method 
public function traverseSortedWithKey(obj:Object, callback:Function, depth:int = 0):void

Parameters

obj:Object
 
callback:Function
 
depth:int (default = 0)

traverseWithAbsPath()method 
public function traverseWithAbsPath(obj:Object, callback:Function, path:String):void

Traverse Object and apply function for each key-values. The callback accepts absolute path to target key joined by dot. For example, given the following object:

             {
                 hoge: {
                     fuga: {
                         piyo: 123
                     }
                 }
             }
         
then callback of 'piyo: 123' key-value accepts ('piyo', 123, 'hoge.fuga.piyo') as its parameter.

Parameters

obj:Object — Function that accepts (key:String, value: path:String) as its parameter.
 
callback:Function
 
path:String

within()method 
public function within(value:Number, min:Number, max:Number):Number

Parameters

value:Number
 
min:Number
 
max:Number

Returns
Number