elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: El geolocalizador de IP's ya funciona con IPv6


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ¿Por qué el cambio de color no se aplica?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Por qué el cambio de color no se aplica?  (Leído 2,355 veces)
Tachikomaia


Desconectado Desconectado

Mensajes: 1.704


Hackentifiko!


Ver Perfil
¿Por qué el cambio de color no se aplica?
« en: 23 Noviembre 2024, 08:41 am »

Código
  1. on (release) {
  2. // Los separadores (fondo) tendrán el color de este botón,
  3. // y este botón el color que tenían los separadores:
  4. ExColorDelFondo = _level0.ColorDelFondo;
  5. _level0.ColorDelFondo = ColorDeCentro.getRGB().toString(16).toUpperCase();
  6.  
  7. _level0.ColorDelObjetoFondo.setRGB(parseInt(_level0.ColorDelFondo, 16));
  8.  
  9. ColorDeCentro.setRGB(parseInt(ExColorDelFondo, 16));
  10. }

Funciona todo menos:
_level0.ColorDelObjetoFondo.setRGB(parseInt(_level0.ColorDelFondo, 16));

No importa qué ponga luego de RGB, no se aplica.

Pero desde el lv0 funciona:
ColorDelFondo = Rojo+Verde+Azul;
// Actualizar el color del objeto:
ColorDelObjetoFondo.setRGB(parseInt(ColorDelFondo, 16));

Le paso un texto hexadecimal (ColorDelFondo), lo convierte en decimal, y se lo asigna de color a un objeto.

La situación es la misma.

_level0.ColorDelFondo: FFFFFF
ColorDeCentro: 10066329


Explico desde el principio, no sé...

Esto es lo relevante en este momento:

Es largo explicar por qué se ve así, no viene al caso.

Lo que tiene color cyan es "las separaciones", también fondo. Se inició así:
Código
  1. ColorDelObjetoFondo = new Color("Fondo");
  2. ColorDelObjetoFondo.setRGB(parseInt(ColorDelFondo, 16));

Y se le puede cambiar el color con los botones con flechita de colores, así:
Código
  1. function ActualizarColorDelFondo () {
  2. // Formar el color:
  3. ColorDelFondo = Rojo+Verde+Azul;
  4. // Actualizar el color del objeto:
  5. ColorDelObjetoFondo.setRGB(parseInt(ColorDelFondo, 16));
  6. }
  7.  
Los botones cambian el color correspondiente y luego aplican eso.

Estoy agregando botones que al presionarlos hagan intercambios, o sea, se ve uno blanco, al cliquearlo quedaría cyan (o como esté el fondo o separador en ese momento) y el fondo quedaría blanco.

Pero ese botón, para que aparezca de un color variable y haga un efecto, lo puse en una película. No debería haber problema con eso. Pero sucede lo que dije al inicio, no se aplica, no sé qué pasa.

Les dejo el archivo. Tienen que mirar el código del botón superior izquierdo, que en la imagen se ve blanco pero en el editor se ve gris como los demás. Vayan al 2ndo frame de eso y vean el cuadrado negro. Ahí está el código que falla.

Acabo de poner esto:
_level0.Rojo = "FF";
_level0.ActualizarColorDelFondo ();
...y funciona. Pero por qué esto no:
_level0.ColorDelObjetoFondo.setRGB(parseInt(_level0.ColorDelFondo, 16));
si es lo mismo que:
ColorDelObjetoFondo.setRGB(parseInt(ColorDelFondo, 16));
¿Hay algo mal escrito que no veo? La única diferencia es que el 1ero dice _level0. en 2 lados porque fue usado desde una película y lo que se quiere señalar está en el lv0.

Podría entonces usar la función mencionada luego de cambiar el valor del rojo, etc, pero no tiene mucho sentido modificar partes si ya tengo una variable que tiene el color a transferir.

Una posible explicación sería que ActualizarColorDelFondo se esté aplicando todo el tiempo pero la quité, puse
_level0.ColorDelObjetoFondo.setRGB(0);
y no funcionó.

https://docs.google.com/document/d/1HkhDR97uRp5Gv_ECbm7z0w301a5SFc-6/edit?usp=sharing&ouid=109273743447273895658&rtpof=true&sd=true


EDIT: Parece que es un bug.

Si esto:
on (release) {
   _level0.ColorDelObjetoFondo.setRGB(0);
}
está en un botón del level0, funciona. Pero si el botón está dentro de una película, no. Se puede hacer funcionar poniendo el código en una función y llamándola, pero no debería ser necesario.


« Última modificación: 23 Noviembre 2024, 10:11 am por Tachikomaia » En línea

EdePC
Moderador Global
***
Conectado Conectado

Mensajes: 2.254



Ver Perfil
Re: ¿Por qué el cambio de color no se aplica?
« Respuesta #1 en: 23 Noviembre 2024, 17:48 pm »

Citar
EDIT: Parece que es un bug.

Si esto:
on (release) {
   _level0.ColorDelObjetoFondo.setRGB(0);
}
está en un botón del level0, funciona. Pero si el botón está dentro de una película, no. Se puede hacer funcionar poniendo el código en una función y llamándola, pero no debería ser necesario.

Código
  1. DibujosPorFila = 4;
  2. CuadraditosPorFila = 6;
  3. // Esto es en cuadraditos, por ejemplo 2 significa que...
  4. // mide lo mismo que 2 cuadraditos:
  5. GrosorDeSeparacionesxC = 1;
  6. PosiblesColores = [0xFFFFFF, 0x0000FF, 0x000000];
  7. ColoresRequeridos = 3;
  8. // ColorDelFondo = "f99999";
  9. ColorDelObjetoFondo = new Color("Fondo");
  10. ColorDelObjetoFondo.setRGB(parseInt(ColorDelFondo, 16));
  11. Iniciar();

¿Por qué siempre usas un String para hacer referencia a un Objeto, quita las comillas en esa línea 9 a "Fondo" y lo solucionas

Código
  1. ColorDelObjetoFondo = new Color(Fondo);

Cuando pones al objeto en sí (sin comillas) haces que flash resuelva la ruta correcta de ese objeto ahí mismo. Si quieres dar la ruta correcta del objeto manualmente (con comillas) ponlo completo: "_level0.Fondo"

Código
  1. ColorDelObjetoFondo = new Color("_level0.Fondo");


En línea

LOBO@37

Desconectado Desconectado

Mensajes: 2



Ver Perfil
Re: ¿Por qué el cambio de color no se aplica?
« Respuesta #2 en: 23 Noviembre 2024, 21:53 pm »

Muy interesante estos temas gracias por la información ;D
En línea

Tachikomaia


Desconectado Desconectado

Mensajes: 1.704


Hackentifiko!


Ver Perfil
Re: ¿Por qué el cambio de color no se aplica?
« Respuesta #3 en: 24 Noviembre 2024, 07:40 am »

¿Por qué siempre usas un String para hacer referencia a un Objeto
Porque me acostumbré y suelo hacer referencia a objetos variables, por ejemplo si hay Cuadradito1, 2, etc, y les estoy cambiando el color con un while, me referiré a ellos con "Cuadradito"+Contador, por lo que considero que el nombre va en comillas si es un objeto, y sin comillas cuando es una variable.
Pero pruebo lo que me dices. Funciona xD  ;-) ¿Por qué con string no? Ah, ya entendí, lo explicaste luego  ;-)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cambio de color de label
.NET (C#, VB.NET, ASP)
Jero67 9 27,145 Último mensaje 29 Septiembre 2011, 05:27 am
por s00rk
ayuda como cambio color tabla
Desarrollo Web
General Dmitry Vergadoski 2 2,605 Último mensaje 3 Febrero 2014, 00:47 am
por General Dmitry Vergadoski
Cómo hacer un cambio de color progresivo en RGB Hex?
Java
WHK 1 2,271 Último mensaje 20 Abril 2015, 19:22 pm
por engel lex
Hacer válido el cambio de color « 1 2 »
Java
Antoniio 19 8,470 Último mensaje 19 Abril 2016, 05:45 am
por + 1 Oculto(s)
Igualar color de figura al color de fondo progresivamente.
Programación General
ignorantev1.1 2 3,321 Último mensaje 25 Noviembre 2016, 04:30 am
por ignorantev1.1
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines