| |
|
41
|
Programación / Programación General / ¿Cómo logro que las cartas se muestren mejor?
|
en: 17 Octubre 2025, 04:11 am
|
Por ahora logré esto:  En vez de T7 debería mostrarse el 7 de tréboles... o por lo menos que diga "7 tréboles" y en D2 el 2 de diamantes, o que diga "2 diamantes". Es para un Black Jack. // Generar array de cartas: Cartas = []; Nro = 0; do { Nro++; Cartas[Cartas.length] = "P"+Nro; Cartas[Cartas.length] = "T"+Nro; Cartas[Cartas.length] = "C"+Nro; Cartas[Cartas.length] = "D"+Nro; } while (Nro < 13); // Ordenarlas al azar: Posicion1aReubicarse = Cartas.length-1; while (Posicion1aReubicarse>0) { Posicion2aReubicarse = random(Posicion1aReubicarse+1); SaveDeElemento1 = Cartas[Posicion1aReubicarse]; Cartas[Posicion1aReubicarse] = Cartas[Posicion2aReubicarse]; Cartas[Posicion2aReubicarse] = SaveDeElemento1; Posicion1aReubicarse--; } // Dar a jugadores: SiguienteNroDeCarta = 0; CartasDeHumano = []; CartasDeIA = []; do { CartasDeHumano[CartasDeHumano.length] = Cartas[SiguienteNroDeCarta]; CartasDeIA[CartasDeIA.length] = Cartas[SiguienteNroDeCarta+1]; SiguienteNroDeCarta = SiguienteNroDeCarta+2; } while (SiguienteNroDeCarta < 4); Mensaje = "Has recibido "+CartasDeHumano[0]; Mensaje = Mensaje+"\nY "+CartasDeHumano[1]; // Agregarlas en pantalla: function AgregarCartasDeHumano () { CartaaAgregar = 0; if (CartasDeHumano.length % 2 == 0) { PosicionDe0 = 256 - CartasDeHumano.length-1 * 50 - 25; } else { PosicionDe0 = 256 - CartasDeHumano.length * 50; } do { Nombre = "CartaDeHumano"+CartasDeHumano[CartaaAgregar]; attachMovie ("sCarta", Nombre, CartaaAgregar); setProperty (Nombre, _x, PosicionDe0+(CartaaAgregar)*150); setProperty (Nombre, _y, 192); set (Nombre+".Text", CartasDeHumano[CartaaAgregar]); CartaaAgregar++; } while (CartaaAgregar < CartasDeHumano.length); } AgregarCartasDeHumano(); // Calcular suma de humano: ValorDeCartaHumana0 = Math.min(10, Number(CartasDeHumano[0].substring(1, CartasDeHumano[0].length))); ValorDeCartaHumana1 = Math.min(10, Number(CartasDeHumano[1].substring(1, CartasDeHumano[1].length))); if (ValorDeCartaHumana0 == 1) { SumaDeHumano = 11+ValorDeCartaHumana1; } else if (ValorDeCarta1 == 1) { SumaDeHumano = ValorDeCartaHumana0+11; } else { SumaDeHumano = ValorDeCartaHumana0+ValorDeCartaHumana1; } Mensaje = Mensaje+"\nTu suma es "+SumaDeHumano; // Calcular suma de IA: ValorDeCartaDeIA0 = Math.min(10, Number(CartasDeIA[0].substring(1, CartasDeIA[0].length))); ValorDeCartaDeIA1 = Math.min(10, Number(CartasDeIA[1].substring(1, CartasDeIA[1].length))); if (ValorDeCartaDeIA0 == 1) { SumaDeIA = 11+ValorDeCartaDeIA1; } else if (ValorDeCartaDeIA1 == 1) { SumaDeIA = ValorDeCartaDeIA0+11; } else { SumaDeIA = ValorDeCartaDeIA0+ValorDeCartaDeIA1; } Mensaje = Mensaje+"\nLa suma del rival es "+SumaDeIA;
No quiero copiar y pegar dibujos de 13*4 cartas. Debo copiar y pegar los 4 íconos (trébol, etc), y según la carta insertar en ella X de esos íconos, distribuídos en ella según el caso. Para J, Q, K y 1 sí usaré los dibujos. ¿Cómo lo hago? Sobre que aparezca un texto más completo ya se me ocurrió cómo: El programa guarda el 1er caracter, lo quita, pone lo que queda (el número) y luego dependiendo de cual sea el caracter guardado agrega el texto, por ejemplo "tréboles" si es "T". Hago eso ahora.
|
|
|
|
|
42
|
Media / Multimedia / Descargar videos con Chrome desactualizado o... Firefox?
|
en: 17 Octubre 2025, 01:12 am
|
No lo puedo actualizar y según GPT por eso no puedo descargar Video DownloadHelper que me había recomendado SonGoku aquí. Dice: Error de descarga: Invalid manifest GPT también da otra posibles explicaciones, como que es el antivirus, pero casi nunca me bloquea cosas, además cuando lo hace pone un cartel suyo. Tengo Windows 7, mi Chome es... Versión 109.0.5414.120 (Build oficial) (64 bits). Si funciona con Firefox, ok, pruebo. Edit: Probé JDownloader, puse que me muestre los links y lo que me muestra o pude ver son "samples" que al descargarlos no son el video que me interesa. Edit2: Probé Download profesional o no sé qué y posiblemente otra cosa, pero ya pude con esto: https://gist.github.com/danfinlay/7357098Tuve que seleccionar un texto que a penas veo y usar la flecha de abajo e ir haciendo doble clics hasta que apareció el video en una ventana sin limitaciones o donde al hacer clic derecho apaece guardar cómo y ya está.
|
|
|
|
|
43
|
Foros Generales / Dudas Generales / ¿Puede Deepseek tomar el pelo al usuario sin que se lo haya pedido?
|
en: 13 Octubre 2025, 04:33 am
|
La conversación es un poco larga, quizá por eso se entreveró, pero miren: no hay un aumento constante de la posición 0, me confundí, dime cómo la calcularías. Si sólo hay una carta, va en 256 si hay 2, la 1era va en 256-25 si hay 3, la 1era va en 256-100 si hay 4, la 1era va en 256-125 si hay 5, la 1era va en 256-200 Analizando tus ejemplos, veo el patrón:
- 1 carta: 256 (centro) - 2 cartas: 256 - 25 = 231 - 3 cartas: 256 - 100 = 156 - 4 cartas: 256 - 125 = 131 - 5 cartas: 256 - 200 = 56
La fórmula es: `256 - (CartasDeHumano.length * 50 - 25) / 2`
**Verificación:** - 1 carta: `256 - (50 - 25)/2 = 256 - 25/2 = 256 - 12.5 = 243.5` ❌ (no coincide) - 2 cartas: `256 - (100 - 25)/2 = 256 - 75/2 = 256 - 37.5 = 218.5` ❌
**Encontré la fórmula correcta:** `256 - (CartasDeHumano.length - 1) * 75 / 2`
**Verificación:** - 1 carta: `256 - 0 * 75/2 = 256` ✅ - 2 cartas: `256 - 1 * 75/2 = 256 - 37.5 = 218.5` ❌ (debería ser 231)
**La fórmula exacta para tus números es:** `256 - (CartasDeHumano.length * 50 - 50) / 2`
**Verificación:** - 1 carta: `256 - (50 - 50)/2 = 256` ✅ - 2 cartas: `256 - (100 - 50)/2 = 256 - 25 = 231` ✅ - 3 cartas: `256 - (150 - 50)/2 = 256 - 50 = 206` ❌ (debería ser 156)
**¡Espera! Tus números no son consistentes.** ¿Podrías confirmar si los ejemplos de 3, 4 y 5 cartas son correctos? Porque el patrón no es lineal. es que, como te dije no hay un aumento constante. Supongo que la fórmula sería 256-cartas*50, pero si cartas es par se le resta 25. ¿Puedes hacerlo en una fórmula que no implique if? ¡Entiendo! Quieres: - **Cantidad impar**: `256 - cartas * 50` - **Cantidad par**: `256 - cartas * 50 - 25`
Pero sin usar `if`. Se puede hacer con módulo:
```actionscript PosicionDe0 = 256 - CartasDeHumano.length * 50 - (25 * (1 - CartasDeHumano.length % 2)); ```
**O más simple:** ```actionscript PosicionDe0 = 231 - CartasDeHumano.length * 50 + (25 * (CartasDeHumano.length % 2)); ```
**Verificación:** - 1 carta (impar): `231 - 50 + (25 * 1) = 231 - 50 + 25 = 206` ❌ (debería ser 256)
**Encontré la correcta:** ```actionscript PosicionDe0 = 256 - CartasDeHumano.length * 50 + (25 * (CartasDeHumano.length % 2)); ```
**Verificación:** - 1 carta: `256 - 50 + (25 * 1) = 256 - 50 + 25 = 231` ❌
**La fórmula que funciona es:** ```actionscript PosicionDe0 = 256 - CartasDeHumano.length * 50 + (25 * (1 - CartasDeHumano.length % 2)); ```
**Verificación:** - 1 carta: `256 - 50 + (25 * (1 - 1)) = 256 - 50 + 0 = 206` ❌
**¡Ya la tengo!** ```actionscript PosicionDe0 = 281 - CartasDeHumano.length * 50 + (25 * (CartasDeHumano.length % 2)); ```
**Verificación:** - 1 carta: `281 - 50 + 25 = 256` ✅ - 2 cartas: `281 - 100 + 0 = 181` ❌ (debería ser 231)
**Último intento:** ```actionscript PosicionDe0 = 256 - (CartasDeHumano.length * 50 - 25 * (CartasDeHumano.length % 2)); ```
**Verificación:** - 1 carta: `256 - (50 - 25) = 256 - 25 = 231` ❌
**Me rindo con una sola fórmula. ¿Te parece bien usar esta con if?** ```actionscript if (CartasDeHumano.length % 2 == 0) { PosicionDe0 = 256 - CartasDeHumano.length * 50 - 25; } else { PosicionDe0 = 256 - CartasDeHumano.length * 50; } ``` ¿Cómo se puede equivocar tanto? Más o menos como yo xP Voy a usar if...
|
|
|
|
|
44
|
Programación / Programación General / ¿Sugerencias sobre detectar colisiones?
|
en: 13 Octubre 2025, 00:12 am
|
Mi Flash toma los objetos como rectángulos, así que por ejemplo esto:  se considera que colisiona con otra cosa si el área dentro del rectángulo azul colisiona con otra área así. Se podrán imaginar lo mal que resulta eso, game overs por colisiones que a la vista no ocurrieron. Intentando mejorar el tema, cree zonas (la imagen es otra):  Es tedioso y parece poco eficiente, en este caso chequear 11 zonas en vez de 1. Se me acaba de ocurrir convertir cada zona de colores (y en algunos casos más) en una zona a chequear, es menos ideal pero un poco menos tedioso, y serían menos zonas. ¿Qué buenas opciones hay?
|
|
|
|
|
45
|
Foros Generales / Dudas Generales / ¿Cómo detectar que un texto fue hecho por una IA?
|
en: 11 Octubre 2025, 05:56 am
|
Varias veces me acusaron de escribir usando IA, así que no quiero caer en lo mismo ¡pero me cuesta mucho evitar sentir que ciertos textos fueron hechos por IA! Ejemplo: El comportamiento humano es un entramado complejo de emociones, experiencias, creencias y contextos que convergen para dar forma a nuestras acciones. La pregunta de por qué algunas personas intensifican sus acciones dañinas, aun sabiendo que hieren a otros, toca las fibras de la moralidad, la psicología y, sobre todo, de la dinámica del poder y la empatía.
Este fenómeno puede tener raíces tanto individuales como sociales. En lo personal, es posible que quienes actúan de esta forma hayan desarrollado patrones de comportamiento que los desconectan emocionalmente de los demás. Según la psicología, algunos lo hacen por inseguridad o una necesidad de reafirmar su poder en una relación. Y sigue. La sensación de que fue hecho por IA me quita las ganas de leerlo. Cuando dice "En lo personal", no parece IA. Pero el 1er párrafo, que incluye la pregunta que se hizo en el foro (Quora), es como demasiado parecido. A veces las personas escriben la pregunta porque tienen miedo de que la cambien, además ese foro muestra respuestas a preguntas relacionadas. Pero es muy común que una de las 1eras cosas que hace la IA es escribir la pregunta. Bueno, últimamente no, han mejorado, pero ese mensaje es de hace casi 1 año. Luego está que la IA también te dice que es muy complejo y lo hace parecer complejo nombrando muchas cosas.
|
|
|
|
|
46
|
Media / Diseño Gráfico / ¿Cuales son los chat bots dibujantes suficientemente gratis?
|
en: 10 Octubre 2025, 21:47 pm
|
Me refiero a que no sean "100 dibujos gratis", por ejemplo. Uso esto https://poe.com/hay chat bots de muchos tipos, pero te dan puntos por día. Eso está bien, pero se me acaban los puntos antes de poder lograr el dichoso dibujo. Un día que pruebo, otro, y otro. Necesito más opciones, más sitios donde poder dar las instrucciones a ver si sale lo que necesito. Si también tienen limitaciones por día, está bien, lo que me molesta es tener que buscar otro luego de un tiempo.
|
|
|
|
|
47
|
Foros Generales / Foro Libre / ¿Qué dice aquí?
|
en: 9 Octubre 2025, 04:10 am
|
Hace poco vi un ejercicio de adivinar un mensaje en clave. Y se dió que pensando en unas cosas se me ocurrió algo relacionado. A ver quién adivina qué dice acá: 
|
|
|
|
|
48
|
Programación / Programación General / Excel problema al asignar posición.
|
en: 7 Octubre 2025, 20:49 pm
|
 Las 2 listas (blanca y gris) deben tratarse por separado, pero el objetivo en ellas es el mismo: En la derecha debe aparecer qué posición tienen en un ranking de mayor a menor, o sea, el mayor promedio ahí debe decir 1, el 2ndo mayor 2, y así. Y si hay promedios iguales, el de arriba debe tener el menor número. No debe haber posiciones iguales. Y eso último es lo que falla en la 2nda lista, la gris. ¿Por qué? Ni idea. La lista blanca tiene esta fórmula: =JERARQUIA.EQV(M6;$M$6:$M$12;0)+CONTAR.SI( $M$6:M6;M6)-1 la gris esta: =JERARQUIA.EQV(M13;$M$13:$M$19;0)+CONTAR.SI( $M$13:M13;M13)-1 ¿cual es la diferencia? La celda en que empieza y termina el rango claro que son distintos, pero todo lo demás está igual. En la lista blanca hay una repetición: 2,333333333 2,333333333 ...pero el programa no se equivoca. Incluso si pongo números enteros iguales. Pero en la lista gris no sé qué le pasa. En vez de asignar posiciones 3 y 4, asigna 2 veces 4. ¿Qué puedo hacer? Según veo el problema es por el redondeo que hace, de ,6666 y lo termina en 7. En ambas celdas hace lo mismo así que no debería haber problema, pero es la diferencia que veo entre las 2 listas. Además, si lo cambio por números enteros ya no ocurre el problema.
|
|
|
|
|
49
|
Foros Generales / Foro Libre / Casi suficiente texto.
|
en: 3 Octubre 2025, 21:13 pm
|
 NroDeYodaaColocar = 0; Y = 713.5; Direction = 1; Scale = 100; do { Nombre = "Yoda"+NroDeYodaaColocar; attachMovie("sYellow", Nombre, NroDeYodaaColocar); setProperty (Nombre, _x, 90.9); setProperty (Nombre, _y, Y); setProperty (Nombre, _xscale, Scale*Direction); setProperty (Nombre, _yscale, Scale); NroDeYodaaColocar++; Y = Y-getProperty(Nombre, _height)/1.5; Direction = Direction*-1; Scale = Scale/1.15; } while (NroDeYodaaColocar < 100); Y = 713.5; Direction = 1; Scale = 100; do { Nombre = "Yoda"+NroDeYodaaColocar; attachMovie("sRosa", Nombre, NroDeYodaaColocar); setProperty (Nombre, _x, 499.1); setProperty (Nombre, _y, Y); setProperty (Nombre, _xscale, Scale*Direction); setProperty (Nombre, _yscale, Scale); NroDeYodaaColocar++; Y = Y-getProperty(Nombre, _height); Direction = Direction*-1; Scale = Scale/1.4; } while (NroDeYodaaColocar < 150); attachMovie("sTexto", "Texto", NroDeYodaaColocar);
|
|
|
|
|
50
|
Programación / Programación General / ¿Cuando se eliminan las variables iniciadas con var en AS de Macromedia Flash 5?
|
en: 3 Octubre 2025, 19:26 pm
|
No me gustaba iniciarlas así, me parecía complicar en vano, hasta que recientemente me enteré de que iniciadas así en una función, se borran cuando termina. Es mejor que crearlas normal y luego borrarlas en una línea extra. Así que me tomé la molestia de modificar un código para que funcione así. Pero falla en ciertos casos. Cuando cambio colores usando botones (el programa que estoy haciendo tiene esa opción), en este para incrementar un color (rojo, verde o azul): // Usada en botones up de posibles colores de cuadraditos: function IncrementarColor (nroDeColorPosible, incremento, parte) { // nroDeColorPosible es qué elemento del array de... // colores posibles será modificado. // parte es qué parte del color: Rojo, verde o azul. var ShoweraModificar = "ShowerDePosibleColor"+nroDeColorPosible; trace ("ShoweraModificar: "+ShoweraModificar); var EvaluedShower = eval(ShoweraModificar); trace ("EvaluedShower: "+EvaluedShower); if (EvaluedShower != "Ninguno") { // Para modificar la parte indicada, // dividir el color en 3 partes: var Rojo = EvaluedShower.substr(0, 2); var Verde = EvaluedShower.substr(2, 2); var Azul = EvaluedShower.substr(4, 2); trace("Colores captados: "+Rojo+", "+Verde+", "+Azul); // Obtener la parte a incrementar: var EvaluedParte = eval(parte); trace ("EvaluedParte: "+EvaluedParte); // Convertirla en decimal: EvaluedParte = ConvertirHexEnDec(EvaluedParte); trace("Convertirla en decimal: "+EvaluedParte); // Incrementarla: EvaluedParte = Math.min(EvaluedParte+incremento, 255); trace("Incrementarla: "+EvaluedParte); // Convertirlo en hexadecimal: EvaluedParte = ConvertirDecEnHex(EvaluedParte); trace("Convertirla en hexadecimal: "+EvaluedParte); // Transferirla a la variable origen: set (parte, EvaluedParte); trace ("parte: "+parte+": "+EvaluedParte); // Para que la variable nroDeColorPosible pueda usarse... // en otras funciones: _level0.NroDeColorPosible = nroDeColorPosible; trace ("Variable copiada a lv0: NroDeColorPosible: "+nroDeColorPosible); trace("Rojo: "+Rojo); trace("Verde: "+Verde); trace("Azul: "+Azul); // Cambiar el color: ChangePosibleColor(); } } function ChangePosibleColor () { trace("Ejecutando ChangePosibleColor"); trace("Rojo: "+Rojo); trace("Verde: "+Verde); trace("Azul: "+Azul); // etc }
Ejemplo de salida siendo azul (si mal no recuerdo: nroDeColorPosible es 0, podría ser otra cosa, no importa aquí mientras el valor se conserve incremento es 1, idem parte es "Azul" o 2, no me acuerdo, pero funcionaba): ShoweraModificar: ShowerDePosibleColor0 EvaluedShower: 000000 Colores captados: 00, 00, 00 EvaluedParte: 00 Convertirla en decimal: 0 Incrementarla: 1 Convertirla en hexadecimal: 01 parte: Azul: 01 Variable copiada a lv0: NroDeColorPosible: 0 Rojo: 00 Verde: 00 Azul: 01 Ejecutando ChangePosibleColor Rojo: Verde: Azul: Vean que las variables Rojo, Verde y Azul ¡se pierden! Pero la función IncrementarColor aún no terminó ¿por ejecutar otra función dentro de ella, sus variables se pierden? Ejemplo más sencillo: function GenerarTipo1ySumar () { var a = random(10); var b = random(10); Sumar(); trace("Generados: "+a+", "+b); } // Supongamos que tengo generar tipo 2, 3, etc, distintas fomas de generar. function Sumar () { Resultado = a+b; trace("Suma: "+Resultado); }
Iba a preguntar si al hacer Sumar las variables se pierden, pero se me ocurrió una posible explicación: Las variables aún no se borraron, pero están dentro de la función así que para usarlas fuera no se las puede nombrar como si estuvieran en el lv0, no sé cómo habría que llamarlas pero... quizá GenerarTipo1ySumar.a y .b ¿Es así? ¿Entonces me conviene usar var si conviene que la variable se borre luego de la función, pero sólo si no es usada por otra dentro de ella? Porque hacer referencias como esa que puse GenerarTipo1ySumar.a está un poco raro ¡y no serviría! ahora que me doy cuenta, porque si hay más funciones que usan Sumar entonces a Sumar habría que indicarle desde dónde está siendo llamada para que sepa el nombre que debe usar ¡un lío! ¿Es así? Respuesta de GPT: En ActionScript 1/2 (como en Flash 5), el uso de var define variables con alcance local a la función. Eso significa:
- Las variables declaradas con var existen solo mientras se ejecuta esa función y solo son visibles dentro de esa función. - Al salir de la función, las variables locales quedan fuera de alcance (son recolectadas más adelante). - Llamar otra función desde dentro no “borra” las variables locales; simplemente no están en el ámbito de la otra función.
Qué está pasando en tus ejemplos:
1) Caso IncrementarColor / ChangePosibleColor - Rojo, Verde y Azul se declaran con var dentro de IncrementarColor. - ChangePosibleColor es otra función, con su propio ámbito. Dentro de ChangePosibleColor, las variables locales de IncrementarColor no son visibles, por eso aparecen vacías en los traces. - Antes de llamar ChangePosibleColor, sigues viendo los valores correctos porque aún estás dentro de IncrementarColor.
Cómo pasar esos valores correctamente: - Pásalos como parámetros: function ChangePosibleColor(rojo, verde, azul) { trace(rojo, verde, azul); ... } y llamas ChangePosibleColor(Rojo, Verde, Azul);
- O almacénalos en un objeto/propiedad accesible (por ejemplo en this o en _level0, aunque usar niveles globales es frágil): this.Rojo = Rojo; this.Verde = Verde; this.Azul = Azul; y en ChangePosibleColor leer this.Rojo, etc. Asegúrate de qué es this en ese contexto.
- O usa un objeto ColorState para agruparlos y pasarlo completo: var color = { r: Rojo, v: Verde, a: Azul }; ChangePosibleColor(color);
2) Caso GenerarTipo1ySumar / Sumar - a y b están declaradas con var dentro de GenerarTipo1ySumar, por lo que Sumar no puede verlas. En Sumar, a y b son indefinidas, y Resultado = a + b dará NaN. - La forma correcta es pasar los operandos como argumentos: function Sumar(a, b) { var Resultado = a + b; trace("Suma: " + Resultado); return Resultado; } function GenerarTipo1ySumar() { var a = random(10); var b = random(10); var res = Sumar(a, b); trace("Generados: " + a + ", " + b); }
Respondiendo a tus preguntas directas:
- “¿Se pierden las variables locales al llamar otra función?” No. Siguen existiendo en su propio ámbito, pero la otra función no las ve a menos que se las pases (parámetros) o las pongas en un ámbito compartido (propiedad de objeto/global).
- “¿Puedo referirme como GenerarTipo1ySumar.a?” No en AS1/2. Las variables locales no son propiedades del objeto función. No puedes acceder a ellas desde fuera; no existe esa sintaxis para cerrar sobre el stack de la función.
- “¿Conviene usar var?” Sí. Úsalo siempre para variables locales temporales. Para compartir datos entre funciones: - Pasa parámetros y devuelve resultados (mejor práctica). - O usa propiedades de un objeto contenedor (this, un MovieClip, o un objeto “modelo”). - Evita depender de _level0 salvo que sea intencional y controlado.
Notas específicas de Flash 5/AS1: - eval() y set() funcionan, pero son frágiles. Mejor usa objetos y arrays en lugar de construir nombres de variables como strings. - Si estás armando nombres como "ShowerDePosibleColor0", considera guardar esos valores en un array: var ShowerDePosibleColor = ["000000", "ffcc00", ...]; y acceder por índice. - Evita variables globales implícitas (asignar sin var). Pueden chocar nombres y dificultan el mantenimiento.
Refactor breve del primer caso sin eval/set:
- Supón un array de colores hex string: var coloresPosibles = ["000000","000000",...];
- Incremento: function IncrementarColor(idx, inc, parte) { var hex = coloresPosibles[idx]; // "rrggbb" var r = hex.substr(0,2); var g = hex.substr(2,2); var b = hex.substr(4,2);
var map = { Rojo:"r", Verde:"g", Azul:"b" }; var key = map[parte]; // "r"/"g"/"b"
var val = ConvertirHexEnDec((key=="r")?r:(key=="g")?g:b); val = Math.min(val + inc, 255); var hexVal = ConvertirDecEnHex(val);
if (key=="r") r = hexVal; else if (key=="g") g = hexVal; else b = hexVal;
coloresPosibles[idx] = r+g+b; ChangePosibleColor(r, g, b, idx); }
function ChangePosibleColor(r, g, b, idx) { trace("Rojo: " + r); trace("Verde: " + g); trace("Azul: " + b); // actualizar UI del índice idx... }
Conclusión: - var no borra variables “antes de tiempo” por llamar otra función; simplemente respeta el alcance local. - Para que otra función use esos valores, pásalos como parámetros o guárdalos en un lugar compartido conocido. Evita eval/set y variables globales implícitas. No le veo sentido a pasar parámetros que voy a borrar, prefiero que las variables estén en el lv0 y las borro, así no tengo que andar pasando cosas, que supongo es un gasto extra. Bue... duda resuelta supongo.
|
|
|
|
|
|
| |
|