Yo ya lo tengo y te lo paso, pero solo funciona hasta centenas, pero seguro que lo puedes modificar para millares y más:
Código :
arrUnidades = ["", "uno", "dos", "tres", "cuatro", "cinco", "seis", "siete", "ocho", "nueve", "diez", "once", "doce", "trece", "catorce", "quince", "dieciseís", "diecisiete", "dieciocho", "diecinueve", "veinte", "veintiuno", "veintidós", "veintitrés", "veinticuatro", "veinticinco", "veintiseís", "veintisiete", "veintiocho", "veintinueve"];
arrDecenas = ["", "", "", "treinta", "cuarenta", "cincuenta", "sesenta", "setenta", "ochenta", "noventa"];
arrCentenas = ["cien", "ciento", "doscientos", "trescientos", "cuatrocientos", "quinientos", "seiscientos", "setecientos", "ochocientos", "novecientos"];
//**********************************************************************
function SeparaNumero(nTemp)
{
nText = nTemp.toString();
if (nText.length > 3) { // función no habilitada para manejar millares
return;
}
nText = (nText.length < 3 ? ("0") : ("")) + nText;
nText = (nText.length < 3 ? ("0") : ("")) + nText;
Unid = Number(nText.substr(2, 1));
Dece = Number(nText.substr(1, 1));
Cent = Number(nText.substr(0, 1));
DeceUnid = Number(nText.substr(1, 2));
trace (nTemp + " -> " + DeceUnid + "," + Cent + "," + Dece + "," + Unid);
return ([DeceUnid, Cent, Dece, Unid]);
}
//**********************************************************************
function ConvierteNumLet() {
Centenas = _global.arrNum[1];
Decenas = _global.arrNum[2];
Unidades = _global.arrNum[3];
DecenasUnidades = _global.arrNum[0];
var _loc2 = "";
if (Centenas == 1 && Decenas == 0 && Unidades == 0) {
_loc2 = arrCentenas[0];
} else if (Centenas > 0) {
_loc2 = arrCentenas[Centenas];
}
if (DecenasUnidades < 21) {
_loc2 = _loc2 + (" " + arrUnidades[DecenasUnidades]);
} else if (DecenasUnidades < 30) {
_loc2 = _loc2 + (" " + arrUnidades[DecenasUnidades]);
} else {
_loc2 = _loc2 + (" " + arrDecenas[Decenas]);
if (Unidades > 0) {
_loc2 = _loc2 + (" y " + arrUnidades[Unidades]);
}
}
trace (_global.arrNum + " -> " + _loc2);
return (_loc2);
}
//**********************************************************************
_global.arrNum = SeparaNumero(_root.Numero.text); // se toma el numero de un campo de texto que fue capturado previamente
_root.Letras.text = ConvierteNumLet(); // aqui se muestra el numero convertido a letras, en un campo de texto