Foros del Web » Creando para Internet » Flash y Actionscript »

como convierto una variable en un objeto color

Estas en el tema de como convierto una variable en un objeto color en el foro de Flash y Actionscript en Foros del Web. Hola gente, el tema es así: Recibo una variable que contiene un string con la composición del color, yo necesito asignarle esto a un objeto ...
  #1 (permalink)  
Antiguo 18/07/2005, 16:18
cmc
 
Fecha de Ingreso: febrero-2003
Ubicación: Capital
Mensajes: 1.317
Antigüedad: 21 años, 2 meses
Puntos: 1
como convierto una variable en un objeto color

Hola gente, el tema es así:

Recibo una variable que contiene un string con la composición del color, yo necesito asignarle esto a un objeto color, ¿como puedo hacerlo?

osea la variable que recibo se llama color1

y tengo un objeto color que es algo asi:

MCColor = new Color(this);
MCColor.setRGB("0xFFCCCC");//acá tendría que sacar esto y colocar la variable color1 pero no me lo toma, ya que esto deve ser o un hexadecimal o un objeto color.
¿Alguien sabe como hacerlo?.

Desde ya muchas gracias
__________________
Claudio Caldareri
diseñador Multimedial
www.disemedios.com.ar
  #2 (permalink)  
Antiguo 18/07/2005, 23:20
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 9 meses
Puntos: 53
Hola CMC, hace tiempo estaba haciendo una paleta de colores asi como la que trae el flash, y lo que hacia era ir componiendo los colores el RGB y lo hize asi:

Código PHP:


.....

var 
ncolor;
 
for(
i=0;i< ......{

R+=51;
G+=51;
B+=51;

_root.createEmptyMovieClip("color"+i+"_"+j,_root.getNextHighestDepth());
ncolor "0x"+getExa(R)+""+getExa(G)+""+getExa(B);
_root["color"+i+"_"+j].beginFill(ncolor,100);

}
......

    private function 
getExa(d:Number):String{
         var 
= new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F");
          var 
"";
         var 
i:Number 1v:Number dr:Number 0,j:Number;
         while(
15){
             
Math.floor(16); i++; 
         }
         
d;
         for(
j=i;j>=1;j--){
            
z[Math.floor(Math.pow(16,j-1))];
            
- (Math.floor(Math.pow(16,j-1)) * Math.pow(16,j-1));
           }
         if(
d<16)
             
"0"+x;
         return 
x;
    } 
bueno, espero te sirva
  #3 (permalink)  
Antiguo 18/07/2005, 23:28
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 9 meses
Puntos: 53
jeeeeee mejor te pongo la clase completa

Código PHP:
//@Autor Crysfel Villa
//@Date June 25, 2005

class PaletaColores{
    
//private var raiz:NodoColor;
    
private var ancho:Number;
    private var 
cont:Number;
    private var 
x:Number;
    private var 
y:Number;
    
    function 
PaletaColores(mc:MovieClip){
        
//raiz = undefined;
        
x=y=cont=0;
        
ancho 10;
    }
    
    public function 
generaPaleta(xi:Number,yi:Number):Void{
        var 
R:Number=0,G:Number=0,B:Number=0;
        var 
i:Number,j:Number;
        var 
ncolor;
        for(
i=0;i<12;i++){
            for(
j=0;j<18;j++){
                
_root.createEmptyMovieClip("color"+i+"_"+j,_root.getNextHighestDepth());
                
ncolor "0x"+getExa(R)+""+getExa(G)+""+getExa(B);
                
_root["color"+i+"_"+j].beginFill(ncolor,100);
                
_root["color"+i+"_"+j].lineStyle(1,0x000000,100);
                
_root["color"+i+"_"+j].lineTo(ancho,0);
                
_root["color"+i+"_"+j].lineTo(ancho,ancho);
                
_root["color"+i+"_"+j].lineTo(0,ancho);
                
_root["color"+i+"_"+j].lineTo(0,0);
                
_root["color"+i+"_"+j].endFill();
                
_root["color"+i+"_"+j]._x xi+ancho*j;
                
_root["color"+i+"_"+j]._y yi+ancho*i;
                
+= 51;
                if(
255){
                    
0;
                    
+= 51;
                }
                
                
cont++;
            }
            
0;
            
+=51;
            if(
cont<108){
                
0;
            }else{
                
153;
                if(
cont==109){
                    
0;
                    
153;
                }
            }
        }
    }
    
    private function 
getExa(d:Number):String{
         var 
= new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F");
          var 
"";
         var 
i:Number 1v:Number dr:Number 0,j:Number;
         while(
15){
             
Math.floor(16); i++; 
         }
         
d;
         for(
j=i;j>=1;j--){
            
z[Math.floor(Math.pow(16,j-1))];
            
- (Math.floor(Math.pow(16,j-1)) * Math.pow(16,j-1));
           }
         if(
d<16)
             
"0"+x;
         return 
x;
    }

Copia ese codigo en un archivo AS, le pones como nombre PaletaColores.as, y luego en un fla lo importas, pones este codigo en el primer frame:

Código PHP:
import PaletaColores;

var 
paleta:PaletaColores = new PaletaColores(_root);
paleta.generaPaleta(350,0); 
y mira lo que aparece
  #4 (permalink)  
Antiguo 19/07/2005, 07:05
cmc
 
Fecha de Ingreso: febrero-2003
Ubicación: Capital
Mensajes: 1.317
Antigüedad: 21 años, 2 meses
Puntos: 1
Gracias Stock:

Por lo que veo tu ejemplo funciona pero no es precisamente lo que yo estoy buscando y la verdad es que no se como adaptar eso a mi necesidad.
La idea es asi:
Tengo dos paginas php cada una con un swf, en la primera pinto unos objetos y luego envio por post el valor del color de esta manera

_root.color4=MCColor.getRGB().toString(16);

Esa variable la envio al otor php por LoadVars, para luego que el otro swf me tome esos valores y los muestre en otros objetos.

Tengo dos problemas

1) la utilizacion de toString(16) me genera problemas con los valores que comienzan con cero por ejemplo el negro.

2) En el segundo swf no logro que leea las variables que llegan por post en su misma pagina osea, este swf esta en la pagina comprar2.php que es a la cual le envio las variables.
Por php compruebo que dichas variables llegen pero el swf no las lee, tengo esto:

Código:
cargar = new LoadVars();  
cargar.onLoad = function(ok){ 
if(ok){
texto = "0x"+cargar.color1;
    } else{
texto = "hola";
    }
}
cargar.sendAndLoad("comprar_paso2.php",cargar,"post");
El proceso de carga lo realiza pero no me reconoce la variable color1, que se que existe por post porque con el php la imprimo en pantalla.

AYUDA!!!
__________________
Claudio Caldareri
diseñador Multimedial
www.disemedios.com.ar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:34.