Hola, estoy trabajando en un tema parecido, tengo que hacer una calculadora para una amigo panadero, el necesita saber en gramos cuanto tiene que mezclar para hacer x número de panes. 
 
Partimos de valores iniciales en los ingredientes que sabemos producen 157 unidades. 
Ahora mi código es:  
Código:
 //aquí defino la unidades o resultado
var unidades=157;
/*aquí defino el valor de cada ingrediente en gramos, por ejemplo el primer valor son 5000 gramos de harina*/
var valor:Array = new Array();
valor[0]=5000;
valor[1]=4500;
valor[2]=120;
valor[3]=50;
valor[4]=50;
valor[5]=50;
valor[6]=150;
valor[7]=2000;
valor[8]=100;
valor[9]=0;
valor[10]=0;
valor[11]=0;
valor[12]=0;
valor[13]=0;
valor[14]=0;
valor[15]=0;
calculoInicial();
/* calculo el coeficiente para luego multiplicarlo si cambian las unidades que está en un imput text que se llama newUnidades */
calculoInicial = function (){
	coeficiente = new Array(); 
	for (var i:Number = 0; i < 15; i++) { 
	coeficiente[i] = valor[i] / unidades; 
	//trace(coeficiente[i]);
	 }
	 calcular(); 
}
/* aqui encuentro los valores para conseguir el número de unidades que requiere*/
calcular = function (){
miValor= new Array(); 
	for (var i:Number = 0; i < 15; i++) { 
	miValor[i] = Math.round(unidades * coeficiente[i]) ; 
	trace(miValor[i]);
	 }
}
  El problema es que funciona cuando corre la primera vez, pero cuando quiero calcular cambiando las unidades sale NaN. 
Tengo un imput text que se llama newUnidades y junto un boton que llama la funcion   
Código:
 on (release) {
         trace(newUnidades);
        calcular(newUnidades);
}
  el trace da como resultado : _level0.recetas.newUnidades  y no el valor (200). 
Les agradezco mucho si me pueden guiar. 
Slds
FS