Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problema Con Actionscript

Iniciado por Haddd, 24 de Noviembre de 2004, 03:38:25 PM

« anterior - próximo »

sés

 Yo no haría eso a no ser que fuera totalmente necesario. ¿Por qué no creas el TextField desde el editor y le das las propiedades que quieras? Luego, desde AS, haces con el lo que quieras.

Lo del ALPHA, es por lo que ya se dijo, que no tiene los caracteres incluídos en la película. Esto lo puedes hacer fácilmente desde el editor.
Desde AS puedes probar a poner:
mytext.embedFonts = true;
Soy indeciso... ¿o no?

Haddd

 Lo hago desde el editor, pero tiene un depth por defecto de -16383. ¡Y no hay forma de cambiarlo!

Pero si hago un createTextField, puedo especificar el depth. Pero si le pongo embedfonts=true no me aparece nada, porque según he leido, tengo que poner en la propiedad font el nombre de la fuente que he creado. El problema está que no se cómo crear un nueva fuente y darle un nombre. He leido esto:

Citar
For dynamic text the font has to be embedded to do the same thing. Embedding dynamic font is done in the following way. Open the symbol library and go to the menu and click on new font. Give a new name for the font like "fontnameEmbed". Then write the name of the font (for example "Times") in the line called "font" and click ok. The font is now in the library. Now highlight the font symbol in the library and in the menu go to "linkage" and check the box which says "Export for actionscript". If you are loading the movie into a movieclip like I did here you have to do the same procedure in the parent movie also. Otherwise it would not work.

In the action keyframe put the following script. You can of course add things for you textfield.
//create new dynamic textfield
this.createTextField("dynamicText",5,200,60,240,40);
//set embbedding fonts true
dynamicText.embedFonts=true;
//write you text here
dynamicText.text="Dynamic Textfield";
//define some style properties and include the name of the font
textStyle = new TextFormat();
textStyle.font="impactEmbed";
textStyle.color=0xFF0000;
textStyle.size=30;
dynamicText.setTextFormat(textStyle);

Pero no sé como crear una fuente!!

sés

Cita de: "Haddd"Lo hago desde el editor, pero tiene un depth por defecto de -16383. ¡Y no hay forma de cambiarlo!
¿Y para qué quieres cambiarlo? Lo que te interesa es que salga delante o detrás de otras cosas, ¿no? Pues colócalo con el editor en el plano que quieras y listo.
Soy indeciso... ¿o no?

Haddd

 Yo lo coloco en la capa con el nº mayor, pero no me hace caso. Parece que cuando trabajas con AS sólo hay una capa.


sés

 Por eso yo llamo capas a los clips. Los coloco donde quiero y me sirven para decir a qué nivel se ve cada cosa.

Te dejo un ejemplo en http://perso.wanadoo.es/sesses/temp/texto.fla

Utilizo un clip vacío, colocado con el editor debajo del texto, para añadir otros clips. Es uno de los trucos típicos (y básicos) de Flash.
Soy indeciso... ¿o no?

Haddd

 Muchas gracias ses!!.

Lo que no me ha quedado muy claro es lo de las fuentes embeded. Por lo visto se crea un text y se indica que es de tipo dinámico. Después se le indican los carácteres que va a ocupar. Pero luego que hago..

¿convierto este texto dinámico a un clip para poder rotarlo y cambiar el tamaño?

y una vez que es un clip, ¿cómo puedo cambiar el texto que aparecere?

Porque ahora quería escalar un poquito el texto, pero las propiedades textwidth no actuan.   (nooo)

sés

 
Cita de: Haddd,01/12/04, 16:52 ¿convierto este texto dinámico a un clip para poder rotarlo y cambiar el tamaño?
No necesitas convertirlo a clip n inada, en el ejemplo que te he dado puedes hacer de todo con el texto (mytext).

Cita de: Haddd,01/12/04, 16:52 y una vez que es un clip, ¿cómo puedo cambiar el texto que aparecere?
Si fuera un clip y le llamaras "pepe", tendrías el texto dentro del clip, o sea: pepe.mytext.xxxxx

Porque ahora quería escalar un poquito el texto, pero las propiedades textwidth no actuan.   (nooo)[/QUOTE]
Ni idea, pero he probado a hacer:
mytext.autoSize = true;
...
myformat.size = 10;

y funciona perfectamente.

También funciona mytext._width y mytext._height.


Edit:
También puedes usar mytext._xscale y mytext._yscale.
Soy indeciso... ¿o no?

josepzin

 Si no tiene los fonts embed, hay muchas propiedaddes que no funcionan... _alpha y rotation entre ellas
El tema del embed no lo tengo muy claro... voy a mirar un poco a ver si me entero, q me vendria bien saberlo...

josepzin

 Hombre!! CUando tiene que salir, sale! Esto de los embed me volvió loco hace un tiempo y no lo pude solucionar...
Ahora me puse y en 2 minutos me funcionó! :)


var text = "Cadena corta";
// Crear un objeto TextFormat
// y aplicar sus propiedades.
var txt_fmt = new TextFormat();
with (txt_fmt) {
font = "_sans_mia";
bold = false;
size = 14;
}
// Obtener información sobre la métrica para la cadena de texto
// con el formato especificado.
var metrics = txt_fmt.getTextExtent(text);
// Crear un campo de texto lo suficientemente grande como para visualizar el texto.
this.createTextField("textField", 0, 100, 100, metrics.textFieldWidth, metrics.textFieldHeight);
textField.border = true;
textField.wordWrap = true;
// Asignar la misma cadena de texto y
// el objeto TextFormat al objeto TextField.
textField.text = text;
textField.setTextFormat(txt_fmt);
//
textField.embedFonts = true;
textField._alpha = 60;
textField._rotation = 45;
//
stop();



Luego, y aqui viene lo que se me ocurrió probar ahora...
En BIBLIOTECA, despliegas las opciones (arriba a la derecha) y seleccionas NUEVA FUENTE
Allí seleccionas la Fuente que quieres Almacenar y le das un nombre cualquiera. El tamaño y Bold, no sé bien de que forma afecta lo que se almacena.. :?
Lo importante de todo esto es que una vez creada esta libreria, le das con el boton derecho y seleccionas VINCULACION, y alli en Identificador pones "_sans_mia" (notar que es el mismo nombre que esta en    font = "_sans_mia";) y abajo seleccionas Exportar para action script

Debería funcionas perfectamente.... si no va te envío el .FLA

Suerte...






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.