En el viejo Flash 5 estoy haciendo una cosa que al señalarle una parte en una esquina de la pantalla, aparece un texto en el centro (aporximadamente). Y dicho texto ha de aparecer, con un fondo detrás, es decir, el texto queda arriba del todo, el fondo debajo de él, y debajo de éste queda lo que estaba originalmente. Y mi problema es que no estoy logrando ajustar el fondo al texto, es decir, que el fondo aparezca un poquito más grande que el texto, independientemente de qué tan grande sea el texto. Sí, han visto que ciertos globos o cuadros de diálogo, en videojuegos, aparecen siempre con el tamaño ajustado al texto que aparezca. Pues es eso, muy parecido. Aunque en este caso el fondo incluye borde (que tampoco es algo raro). El fondo me queda bien, pero el borde parece que PIRA MAL
tx1 es el texto que se inserta. Dependiendo del caso se insertan otros: tx2, o tx3, etc, pero sólo lo digo para aclarar, porque si fuera un texto sólo, le haría el fondo manualmente, pero como son varios, pensé que sería mejor programarlos para que se ajusten (en vez de ajustar manualmente c/u).
En tx1 está el texto y una película cuyo símbolo se llama tx Fondo. Esa película no tiene nombre (quizás sea el problema...). tx Fondo está también en tx2, tx3, etc, y está compuesta del fondo y el borde (llamado bord). Como debe ajustarse a todos los "tx", pensé que sería mejor poner el código en ella, en vez de ponerlo (repetido) en cada tx. Y me quedó así (frame 1 del símbolo tx Fondo):
setProperty (this, _width, getProperty(_parent, _width)+40);
setProperty (this, _height, getProperty(_parent, _height)+20);
setProperty (bord, _width, getProperty(_parent, _width)+40);
setProperty (bord, _height, getProperty(_parent, _height)+20);
Como dije, el fondo queda bien, pero el borde, no sé qué problema tiene.
Primera línea:
Haz que el ancho de esta película, sea igual al ancho de la película que la contiene, y agregale 40. En otras palabras, haz que el ancho de tx Fondo sea igual al de tx1 o tx2 o lo que tenga contenido a tx Fondo, y agregale 40.
¡Funciona!
Segunda línea:
Lo mismo pero la altura y en vez de 40, 20.
¡También funciona!
Tercera línea:
Haz que el ancho de la película bord, sea igual al ancho de la película que contiene a tx Fondo, y agregale 40.
¡Pira!
¿o qué pasa? Aparece mucho más grande de lo que según mis interpretaciones debería.
Código para ver qué pasa con los números:
a = getProperty(_parent, _width);
setProperty (this, _width, getProperty(_parent, _width)+40);
b = getProperty(_parent, _width);
setProperty (bord, _width, getProperty(_parent, _width)+40);
c = getProperty(_parent, _width);
Resultados al probarlo:
Variable _level0.tx.instance10.a = 691.6
Variable _level0.tx.instance10.b = 732.3
Variable _level0.tx.instance10.c = 28250.4
La diferencia entre a y b es aproximadamente 40; así debe ser porque sumamos 40 (línea 2).
La diferencia entre b y c... pienso que debería ser aproximadamente 40 también, pero no es...
¿Se puede saber por qué pasa eso? Quizás lo multiplica * 40 (resulta 29292), en vez de sumarlo O.O
Sucede también así:
setProperty (bord, _width, getProperty(this, _width)+40);
y así:
setProperty (bord, _width, getProperty(bord, _width)+40);
aunque me da 2194.8
Es más: Pongo:
setProperty (bord, _width, 10);
...y pareciera ser 400, ocupa más de 1/2 de la pantalla!!! (que es 800 de ancho).
Rehice tx Fondo, porque sus dibujos estaban basados en en el fondo, y achicados después. Pero ahora está bien, todos se ven al 100%
Si pongo esto:
setProperty (this, _width, 700);
...queda bien (aunque sin borde).
Si pongo esto:
setProperty (bord, _width, 700);
...queda bien (aunque casi sin fondo).
¡Si los pongo seguidos queda mal! XDDDD Loco Flash...
¿Solución?
Con mi semana de experiencia en Flash, no entiendo mucho lo que planteás. Que yo sepa, para estirar o apretar texto, cambiar el ancho y alto no te va a servir de nada. Tenés que usar la matriz de transformación y escalar. Buscá "scale" en el objeto de texto que querés estirar y fijate qué hay.
Me sirvió esto:
setProperty (fond, _width, getProperty(_parent, _width)+40);
setProperty (bord, _width, getProperty(_parent, _width)+20);
setProperty (fond, _height, getProperty(_parent, _height)+20);
setProperty (bord, _height, getProperty(_parent, _height)+20);
PERO algo que era una simple imagen (el fondo) lo tuve que convertir en película y ponerle un nombre, o sea, si funcionara, lo otro sería mejor. ¿Por qué lo otro no funciona?
Replying to @NaBUru38's post:
1- No es sobre estirar el texto, es sobre que aparezca un fondo o "ventana" del mismo tamaño que el texto (sin cambiarle de tamaño al texto).
Y usando scale igual creo que tendrías que conocer el ancho.
Te pasaría el archivo para que entiendas pero... tiene textos personales que no quiero compartir aún. Los sustituyo por otros y te lo paso ¿ok?
Here:
http://www.fileserve.com/file/c92bQRU/Problema de textos.rar
Si abrís el editable, empezá viendo las acciones del botón.
Después ve a la biblioteca para ver la película que se nombra (tx1).
A partir de ahí, puedes hacer doble clic en el cuadrado (que sería el fondo y el borde, aún sin ajustar), o puedes ir al mismo lugar desde la biblioteca (esta vez: tx Fondo).
Ahí en el frame 1 verás el código que antes puse.
no se cuantos textos seran pero es mucho laburo hacer un fondo del tamaño adecuado para cada texto, y asociarlos (si muestro tx1 muestro fondo_tx1, etc)?????
No son tantos, de hecho con la "solución" que di actualmente tengo que colocar el fondo en el centro de cada c/u, para que funcione bien (pero es mejor que ajustar el tamaño también, y más o menos tengo idea de cómo evitar tener que centrarlo), pero más de una vez modifiqué los textos (so ¿¡otra vez ajustar el fondo!?) y me sirve para casos en que sí sean muchos.
hola soy nuevito la verdad creei que los gamer eran solamente los loquitos por dar vuelta cada juego que se le crusa como yo. pero veo que hacen muchas cosas de las cuales a no entiendo pero bueno en fin paso a decirles mi inquietud la cual me llevo a registrarme tengo una mother asrcok g41m-s3 prosesador d/c e5800 4gb de ram y una aceleradora 9800gt que por ahora se porta impecable juego todo sin problemas sigo en el siguiente msj
el tema es que mi hermano tiene todo lo mismo que yo a ecepcion de el procesador es un intel d820 se supone que s dual core 2.8 pero no se algo anada mal queria saber si puede ser que sea eso por lo cual no puede correr los juegos ni siquiera en nivel bajo de graficos a los que yo juego a full como crysis 2 y ahora asta el pes 12 que para mi era uno de los juegos que pedia menos se le ven algunos jugadores y otros solo se le ven las sombras
por favor si me dan una mano les agradesco igual desde ya muchas gracias
mathi.daiwa...
Primero, no sé sobre procesadores y cosas físicas, no te puedo ayudar con esas cosas (salvo dándote páginas, como esta), aunque quizás, una parte de las que mencionás sea incompatible con la otra.
Segundo, te convenía más abrir un tema, es decir contar en este tu problema no tiene mucho sentido, prácticamente sólo vendrá gente interesada en problemas con "textos y fondos", es difícil que alguien que entre sepa solucionar tu problema.
Tercero, creo que confundes "gamer" con lo que podría llamársele "game designers". La mayoría de los "gamers" no son "designers", es decir, no son programadores ni diseñadores de juegos.
You must log in to post.