2 public class MathUtils
{
3 public static function lerp
(value
:Number, a
:Number, b
:Number):Number
5 var o
:Number = value
* (b
- a
) + a
;
9 public static function lerpColor
(value
:Number,_a
:uint, _b
:uint):uint {
10 //var a_a:uint = a >> 24 & 0xFF;
11 var r_a
:uint = _a
>> 16 & 0xFF;
12 var g_a
:uint = _a
>> 8 & 0xFF;
13 var b_a
:uint = _a
& 0xFF;
15 //var a_b:uint = b >> 24 & 0xFF;
16 var r_b
:uint = _b
>> 16 & 0xFF;
17 var g_b
:uint = _b
>> 8 & 0xFF;
18 var b_b
:uint = _b
& 0xFF;
20 var r
:Number = lerp
(value
, r_a
, r_b
);
21 var g
:Number = lerp
(value
, g_a
, g_b
);
22 var b
:Number = lerp
(value
, b_a
, b_b
);
24 return r
<< 16 | g
<< 8 | b
;
27 public static function inchesToFootInches
(_in
:int):String {
28 var inches
:Number = _in
% 12;
29 var feet
:Number = Math.round
(_in
/ 12);
30 var out
:String = inches
+ "\"";
32 out
=feet
+ "' " + out
;
37 public static function rand
(from
:Number, to
:Number, round
:Boolean=true):Number {
38 var o
:Number = (Math.random
() * (to
- from
)) + from
;
44 public static function fmtMilliLiters
(ml
:Number, returnFirst
:Boolean = false):String {
47 var gottxt
:Boolean = false;
49 //1 gallon [US, liquid] = 3 785.411 784 milliliter
50 var gal
:Number = Math.round
(amt
/ 3785);
51 if(gal
>0 && !gottxt
) {
52 txt
.push
(Math.round
(gal
)+" gallon"+((gal
>1)?"s":""));
54 if (returnFirst
)gottxt
= true;
56 //1 quart [US, liquid] = 946.352 946 milliliter
57 var quart
:Number = Math.round
(amt
/ 946);
58 if(quart
>0 && !gottxt
) {
59 txt
.push
(Math.round
(gal
)+" quart"+((quart
>1)?"s":""));
61 if (returnFirst
)gottxt
= true;
64 //1 cup [US] = 236.588 236 5 milliliter
65 var cup
:Number = Math.round
(amt
/ 237);
66 if(cup
>0 && !gottxt
) {
67 txt
.push
(Math.round
(cup
)+" cup"+((cup
>1)?"s":""));
69 if (returnFirst
)gottxt
= true;
72 //1 Tablespoon [US] = 14.786 764 781 milliliter
73 var Tsp
:Number = Math.round
(amt
/ 15);
74 if(Tsp
>0 && !gottxt
) {
75 txt
.push
(Math.round
(Tsp
)+" tablespoon"+((Tsp
>1)?"s":""));
77 if (returnFirst
)gottxt
= true;
81 return txt
[0] + " (" + ml
+ " ml)";
83 return txt
.join
(", ") + " (" + ml
+ " ml)";
87 public static function getRandomEntry
(arr
:Array):* {
88 var idx
:int = rand
(0, arr
.length
- 1);
89 trace
(0, arr
.length
- 1, "=", idx
);
93 public static function getRandomObjectEntry
(o
:Object):* {
95 for (var k
:String in o
) {
98 return getRandomEntry
(ab
);
101 public static function lengthOf
(o
:Object):int {
103 for (var k
:String in o
) {