Comunidad de diseño web y desarrollo en internet online

Formato moneda de campo de texto en Flash

Citar            
MensajeEscrito el 28 Abr 2010 09:39 pm
Saludos "muchachos".

Estoy necesitando unas de esas cosas que alguna vez dije "no creo que la vaya a necesitar", darle formato de moneda a un simple campo de texto. He buscado bastante pero la gran mayoría tienen la documentación en as2 pero no as3, por lo menos no la he visto yo.

Les agradezco de antemano el link ó la guía para proceder!

John Martin
http://www.macroactiva.com

Por JOHNMARTIN

Claber

1222 de clabLevel

4 tutoriales
4 articulos
2 ejemplos

Genero:Masculino  

||| BOGOTA COLOMBIA |||

chrome
Citar            
MensajeEscrito el 26 Ago 2010 12:22 am
Que tal amigo un saludo mira soy nuevecito en AS3 pero cada vez le voy dando más batalla a las CLASES así que lo que tu buscabas yo también lo buscaba pero nada de nada no encontré algo así que decidí a realizar una clases todo para facilitarme posteriormente a otros proyectos y este es el resultado, se que podría comprimirse el código mas aun pero es lo que tengo por ahora espero te sirva.

Primero aquí está la CLASE

Código ActionScript :

package
   {
      import flash.display.MovieClip;      
      public class formatoMoneda extends MovieClip
      {
         public function formatoMoneda()
         {}
         //
         public function Format(moneda:String):String
         {
            var tamano:int = moneda.length;
            var resultado:String = '';
            
            if(tamano > 3 && tamano < 7){
               resultado = obtenerMiles(moneda);
            }else if(tamano >= 7 && tamano < 10){
               resultado = obtenerMillones(moneda);
            }else if(tamano > 0 && tamano <= 3){
               resultado = obtenerUnidades(moneda);
            }else{
               resultado = 'S/V';
            }
            return resultado;            
         }
         //
         private function obtenerMiles(moneda:String):String
         {
            var valor:String  = '';
            var unidades:String = moneda.substring((moneda.length - 3), moneda.length);
            var miles:String = moneda.substring(0, (moneda.length-3));
               valor = miles.concat(","+unidades+'.00');
            return valor;
         }
         private function obtenerMillones(moneda:String):String
         {
            var valor:String  = '';
            var miles:String = obtenerMiles(moneda.substring((moneda.length-6),moneda.length));
            var millones:String = moneda.substring(0,(moneda.length-6));
               valor = millones.concat(','+miles);
            return valor;      
         }
         private function obtenerUnidades(moneda:String):String
         {
            var valor:String  = '';
               valor = moneda.concat('.00');      
            return valor;      
         }            
      }
      
   }


Ahora para poder usarla solo la incluyes de esta forma.

Código ActionScript :

import formatoMoneda;   
var format:formatoMoneda = new formatoMoneda();
trace(format.Format('2387346'));


Recuera que el valor que le metes ahí es un String y puede ir desde un simple numero hasta miles y millones.

un saludo desde Mexico,
el conocimiento ya esta en uno mismo solo falta econtrar como descubrilo desde

Por macrowebdigital

7 de clabLevel



 

2002

firefox
Citar            
MensajeEscrito el 30 Sep 2011 09:10 pm
Hola... es bueno el ejemplo, pero no incluiste el manejo de decimales... por lo que me permiti hacer algunas modificaciones en tu clase para incluir el manejo de decimales y el signo de moneda... :)


package {
import flash.display.MovieClip;
public class formatoMoneda extends MovieClip{
public var CuantosDec:Number=0;
public var Signo:String="";
public function formatoMoneda()
{}
//
public function Format(moneda:String, cuantosDec:int, signo:String):String{
var tamano:int=0;
var resultado:String="";
var enteros:String="";
var decimales:String="";
CuantosDec=cuantosDec;
Signo=signo;

//Separar enteros de decimales
if (moneda.indexOf(".")){
enteros=moneda.substr(0,moneda.indexOf("."));
decimales=moneda.substr(moneda.indexOf(".")+1,moneda.length);;
}

tamano=enteros.length;
if(tamano >= 7 && tamano <= 9){
resultado = obtenerMillones(enteros, decimales);
}else if(tamano >= 4 && tamano <= 6){
resultado = obtenerMiles(enteros, decimales);
}else if(tamano >= 1 && tamano <= 3){
resultado = obtenerUnidades(enteros, decimales);
}
trace("resultado: "+resultado);
return Signo.concat(resultado);
}
//
private function obtenerMillones(enteros:String, decimales:String):String{
var valor:String = '';
var miles:String = obtenerMiles(enteros.substring((enteros.length-6),enteros.length),decimales);
var millones:String = enteros.substring(0,(enteros.length-6));
valor = millones.concat(','+miles);
return valor;
}
//
private function obtenerMiles(enteros:String, decimales:String):String{
var valor:String = '';
var unidades:String = obtenerUnidades(enteros.substring((enteros.length - 3), enteros.length),decimales);
var miles:String = enteros.substring(0, (enteros.length-3));
valor = miles.concat(","+unidades);
return valor;
}
//
private function obtenerUnidades(enteros:String, decimales:String):String{
var valor:String = '';
valor = enteros.concat(obtenerDecimales(decimales));
return valor;
}
//
private function obtenerDecimales(decimales:String):String{
var valor:String = '';
var dec:Number=Number("."+decimales); //Convertir a decimales reales
valor = dec.toFixed(CuantosDec); //Reondear a X decimales
valor = valor.substr(1,valor.length); //Tomar los digitos desde el punto a la derecha
return valor;
}
}
}

Por jcasillase

0 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.