Initial commit (r9)
[18plus-7leafadventure.git] / src / MathUtils.as
blobec521949f4b79b4090dec31953c6bbc4d3738590
1 package {
2 public class MathUtils {
3 public static function lerp(value:Number, a:Number, b:Number):Number
5 var o:Number = value * (b - a) + a;
6 return o;
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 + "\"";
31 if (feet > 0) {
32 out =feet + "' " + out;
34 return out;
37 public static function rand(from:Number, to:Number, round:Boolean=true):Number {
38 var o:Number = (Math.random() * (to - from)) + from;
39 if (round)
40 o = Math.round(o);
41 return o;
44 public static function fmtMilliLiters(ml:Number, returnFirst:Boolean = false):String {
45 var txt:Array = [];
46 var amt:Number = ml;
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":""));
53 amt %= 3785;
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":""));
60 amt %= 946;
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":""));
68 amt %= 237;
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":""));
76 amt %= 15;
77 if (returnFirst)gottxt = true;
80 if (returnFirst)
81 return txt[0] + " (" + ml + " ml)";
82 else
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);
90 return arr[idx];
93 public static function getRandomObjectEntry(o:Object):* {
94 var ab:Array = [];
95 for (var k:String in o) {
96 ab.push(o[k]);
98 return getRandomEntry(ab);
101 public static function lengthOf(o:Object):int {
102 var i:int = 0;
103 for (var k:String in o) {
104 i++;
106 return i;