Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: Haddd en 24 de Noviembre de 2004, 03:38:25 PM

Título: Problema Con Actionscript
Publicado por: Haddd en 24 de Noviembre de 2004, 03:38:25 PM
 bueno, estoy empezando y tengo una duda. He visto un script que se llama menu3d.fla y que lo que hace es mostrar texto que rota en pantalla. Pero miro el clip y es un clip de video. Mirando el script veo que hace: .contenido.text="";

Pero no entiendo como de un clip de video puede sacar las letras.

Lo explicaré de otra forma. Quiero tener letras moviéndose pero creando esas letras desde action script.

¿Alguna idea?
Título: Problema Con Actionscript
Publicado por: sés en 24 de Noviembre de 2004, 03:44:14 PM
 Mira la documentación de la clase MovieClip, tiene todo lo necesario para dibujar, crear clips nuevos, etc.


P.D.: No sé qué leches es ese menu3d.fla, no puedo saber qué hace o qué quieres hacer.
Título: Problema Con Actionscript
Publicado por: Haddd en 24 de Noviembre de 2004, 03:48:03 PM
 Pero el movieclip es una película. Yo quiero crear letras. ¿cómo puedo crear letras en action script?
Título: Problema Con Actionscript
Publicado por: sés en 24 de Noviembre de 2004, 04:05:10 PM
 :P Se nota que eres nuevo en Flash. En Flash casi todo es una película.

La película principal (_root) es un MovieClip que contiene otros clips. Cada clip puede contener sus propias formas (líneas y tal con sus colorines), sus propiedades (_x, _y, _width...) y otros clips.
Cada clip además cuenta con su propia línea de tiempo.

Puedes utilizar el método MovieClip.createTextField() para crear un campo de texto en un clip... aunque, según lo que quiereas hacer, puede ser mejor (seguramente) hacerlo de otras formas.
Título: Problema Con Actionscript
Publicado por: Haddd en 24 de Noviembre de 2004, 04:17:51 PM
 Voy aprendiendo!!! Gracias por tu clarificación sobre que todo es un Movie Clip, eso me aclara las cosas.

Otra cosa, cuando creo un nuevo documento  y voy a Ventana/Escena, me aparece deshabilitado. Entonces no me permite crear ninguna escena  :blink: . ¿Porqué me aparece deshabilitado? ¿Cómo creo una escena en blanco?

Gracias  (ole)  
Título: Problema Con Actionscript
Publicado por: jelorol en 24 de Noviembre de 2004, 04:26:47 PM
 Si, al principio es un poco complicado de entender...Bueno,  cada clip de película (MovieClip) es exactamente igual a la ventana principal en la que empiezas trabajando, tiene su línea de tiempo diferente, su propia programación, etc. y por supuesto, pueden contener otros clips de película. Es una cuestión de niveles y anidamiento, como si cada clip de película fuera una carpeta, que a su vez puede contener otras carpetas.

Si estás empezando con Flash, te recomiendo estos tutoriales:

http://www.actionscripts.org/tutorials.shtml

http://www.flashkit.com/index.shtml

http://www.kirupa.com/


Título: Problema Con Actionscript
Publicado por: sés en 24 de Noviembre de 2004, 04:28:14 PM
 No veo esa opción. Uso el Flash MX 2004 en inglés, y lo único que veo desactivado en el menú "Window" es la opción "Screens". Si te refieres a eso (que no es una escena)... no sé lo que es. Creo que es algo relativamente nuevo (no lo he usado nunca) relacionado con la creación de "aplicaciones" Flash.

Sobre las escenas, te pego l oque pone en la propia ayuda de Flash:

CitarUsing scenes

Using scenes is similar to using several SWF files together to create a larger presentation. Each scene has a Timeline. When the playhead reaches the final frame of a scene, the playhead progresses to the next scene. When you publish a SWF file, the Timeline of each scene combines into a single Timeline in the SWF file. After the SWF file compiles, it behaves as if you created the FLA file using one scene. Because of this behavior, avoid using scenes for the following reasons:

* Scenes can make documents confusing to edit, particularly in multiauthor environments. Anyone using the FLA document might have to search several scenes within a FLA file to locate code and assets. Consider loading content or using movie clips instead.
* Scenes often result in large SWF files. Using scenes encourages you to place more content in a single FLA file and hence, larger documents to work with and larger SWF files.
* Scenes force users to progressively download the entire SWF file, even if they do not plan or want to watch all of it. Your user progressively downloads the entire file, instead of loading the assets they actually want to see or use. If you avoid scenes, the user can control what content they download as they progress through your SWF file. This means that the user has more control over how much content they download, which is better for bandwidth management. One drawback is the requirement for managing a greater number of FLA documents.
* Scenes combined with ActionScript might produce unexpected results. Because each scene Timeline is compressed onto a single Timeline, you might encounter errors involving your ActionScript and scenes, which typically requires extra, complicated debugging.

There are some situations where few of these disadvantages apply, such as when you create lengthy animations, which is a good time to use scenes. If disadvantages apply to your document, consider using screens to build an animation instead of using scenes. For more information on using screens, see "Creating a new screen-based document (Flash Professional only)" in Using Flash.

Vamos... que no parece algo muy útil, la verdad.
Título: Problema Con Actionscript
Publicado por: Haddd en 24 de Noviembre de 2004, 05:12:23 PM
 Bueno, ya tengo una letra que es texto dinámico. Pero ahora he añadido otra y quiero modificar su alfa. ¡no me hace caso! ¿tengo que añadir el efecto? Si es así..¿cómo puedo modificar luego el valor desde AS ?
Título: Problema Con Actionscript
Publicado por: josepzin en 25 de Noviembre de 2004, 08:37:04 AM
 Mira en la ayuda: DICCIONARIO DE ACTION SRIPT / T / TextField
Allí tienes todas las propiedades de los TextField, en este caso _alpha
ó / M / MovieClip , depende como lo hayas hecho.

* Odio la ayuda de Flash  (grrr)
* Espero que no me odien por esto en el foro... ejemm ejemm, pero hay foros exclusivamente dedicados a Flash, x ej: www.Cristalab.com
Título: Problema Con Actionscript
Publicado por: sés en 25 de Noviembre de 2004, 09:17:37 AM
 Creo que puedes olvidarte de hacer virguerías con textos dinámicos. Eso (como con muchas otras cosas en Flash) está limitadito. Si quieres hacer transparencias, rotaciones, etc. tendrás que usar textos estáticos (dentro de un clip para poder  darles un nombre).

"Flash es asín"


Cita de: "josepzin"* Espero que no me odien por esto en el foro... ejemm ejemm, pero hay foros exclusivamente dedicados a Flash, x ej: www.Cristalab.com
Sí... también es cierto que esto es un foro de programación y que esta es el subforo General.

Y también es cierto (por propia experiencia) que en muchas ocasiones se encuentran mejores respuestas en Stratos que en otros foros *ejem* "especializados" *ejem*
Título: Problema Con Actionscript
Publicado por: fiero en 25 de Noviembre de 2004, 11:07:44 AM
Cita de: "Haddd"Bueno, ya tengo una letra que es texto dinámico. Pero ahora he añadido otra y quiero modificar su alfa. ¡no me hace caso! ¿tengo que añadir el efecto? Si es así..¿cómo puedo modificar luego el valor desde AS ?
Te refieres a modificar el alfa de cada letra por separado? en flash solo puedes modificar las propiedades de las movieClip, entonces, cada letra deberia ser una movieClip diferente.

un saludo
Título: Problema Con Actionscript
Publicado por: josepzin en 25 de Noviembre de 2004, 12:00:20 PM
 Sintaxis
my_txt._alpha

Descripción
Propiedad; establece o recupera el valor de transparencia alfa del campo de texto especificado por my_text. Los valores válidos van de 0 (completamente transparente) a 100 (completamente opaco). El valor predeterminado es 100.

;)  :P
El problema del _alpha es que tiene que tener las Fuentes Embed, sino el Alpha ni p**o caso.. claro que eso para qué documentarlo! SI es que la ayuda de Flash...  (grrr)  
Título: Problema Con Actionscript
Publicado por: sés en 25 de Noviembre de 2004, 12:14:38 PM
 Bueno... y si está documentado, reza para que realmente funcione.
Título: Problema Con Actionscript
Publicado por: Haddd en 25 de Noviembre de 2004, 12:30:15 PM
 Pero si convierto la letra a un movie clip,..¿tengo que crear tantos movie clips como letras hay en el alfabeto? Porque después no le puedo decir al MovieClip:


letra.text="pepe";
Título: Problema Con Actionscript
Publicado por: sés en 25 de Noviembre de 2004, 01:17:08 PM
 No, tienes que hacer lo que te ha dicho josepzin.

Crea el texto y selecciona los caracteres que quieres insertar en la película. Yo lo tengo en la ventana de propiedades del texto, al lado de "Var" (donde se especifica un nombre para la variable), en un botón que pone "Character...". Ahí eliges los caracteres que quieras.
Después de esto, podrás cambiar el ALPHA (texto._alpha = X), y supongo que rotarlo y demás.
Título: Problema Con Actionscript
Publicado por: josepzin en 25 de Noviembre de 2004, 01:46:14 PM
 Mira aqui: http://www.cristalab.com/files/ejemplos/te...fx/textofx.html

El codigo se puede descargar aqui: http://www.cristalab.com/ejemplos.php
Busca este texto: Efectos especiales de texto en ActionScript

EN el codigo seguro encuentras como lo hacen. SUerte!
Título: Problema Con Actionscript
Publicado por: Haddd en 25 de Noviembre de 2004, 01:53:59 PM
 Este es el ejemplo original con el que empecé este post. Tiene un Movie Clip donde accede al texto. Pero a mi eso no me funciona, no puedo crear texto, convertirlo a Moive Clip y después asociar por código la variable text.
Título: Problema Con Actionscript
Publicado por: josepzin en 25 de Noviembre de 2004, 01:57:54 PM
 Jaajajaua!!! A ver entonces...
Yo no lo miré a ese ejemplo asi que no se como va...
El problema es que hay varias maneras de hacerlo, como lo estas haciendo?
Título: Problema Con Actionscript
Publicado por: Haddd en 25 de Noviembre de 2004, 02:00:32 PM
 Quiero 1 que funcione. Quiero poder definir el texto, el tipo de fuente, el tamaño de la fuente y el alpha.
Título: Problema Con Actionscript
Publicado por: sés en 25 de Noviembre de 2004, 02:42:30 PM
 Es sencillo, el único problema es lo de elegir el tipo de fuente. Eso te obliga a incluir todos los caracteres de cada fuente que se pueda elegir.

Si quieres te paso un ejemplo tonto que haga esas cosillas.
Título: Problema Con Actionscript
Publicado por: sés en 25 de Noviembre de 2004, 02:52:04 PM
 Mejor, un guíaburros (wizard :P):

- Crea una película nueva.
- Inserta un texto dinámico. Pon el texto que quieras.
- Llámalo "texto" (en la caja debajo de "Dynamic Text").
- Especifica que caracteres quieres incluir: Pulsa en el botón "Characters..." y marca las mayúsculas, minúsculas, números... y lo que quieras.

Mete en las acciones del primer fotograma este código de ejemplo.
Citar// Cambiar el texto
texto.text = "Hola, Haddd";

// Alpha
texto._alpha = 50;

// Posición
texto._x += 20;
texto._y += 20;

// Rotación
texto._rotation = 45;
Para hacer más cositas, mira la ayuda de TextField

Supongo que con eso te harás una idea de cómo hacerlo. Si no... sigue preguntando.
Título: Problema Con Actionscript
Publicado por: Haddd en 29 de Noviembre de 2004, 12:52:48 PM
 Muchas gracias!! Ya me funciona (ole)

Sois geniales!! (uoh)  
Título: Problema Con Actionscript
Publicado por: sés en 29 de Noviembre de 2004, 01:07:43 PM
 De nada... :rolleyes: ¿a qué dirección te paso la factura?
Título: Problema Con Actionscript
Publicado por: Haddd en 29 de Noviembre de 2004, 01:56:13 PM
 Pasamela a: www.esperaunmomentoqueahoratepago.com

:D

Otra cosa. Tengo una animación en flash donde salen pequeños clip desde el centro y se van colocando en los lados. Después tengo texto enmedio que va mostrando el nombre del clip. El problema es que el texto me aparece DETRAS de los clips y yo quiero que sea al revés. He usado: texto.swapDepths(10000) pero nada. Los clips que se mueven los creo con attachmovie y les doy una depth que empieza por 0 y e va incrementando.

¿Porqué no me funciona?  :blink:  
Título: Problema Con Actionscript
Publicado por: sés en 29 de Noviembre de 2004, 02:25:44 PM
 La profundida de las cosas está referida al clip que las contiene. Es posible que el clip esté denro de otro que está detrás del resto y lo que tengas que cambiar es la profundidad de ese clip.

Si no es eso... pues mo sé, explícalo mejor o pon algún fichero para bajar y verlo.

De todas formas, lo mejor es justamente aprovecharte de lo que te he dicho:
¿Quieres que el texto salga siempre delante?
Crea un clip que contendrá el texto con una profundidad alta.
Crea otro clip con una más baja en el que crearás los clips que quieres que se vean detrás. Haz los attachMovieClip() en este clip.

Además evitas el swapDepths().  
Título: Problema Con Actionscript
Publicado por: Haddd en 29 de Noviembre de 2004, 06:19:56 PM
 Tengo 2 capas: capa 1 y capa 3. Entiendo que capa 1 tiene menos prioridad que capa 3. Entonces lo que quiero es attachMovie en la capa 3, y así como el texto está en la capa 1, no tener problemas. Creo que es correcto, pero no sé cómo hacer el attachMovie a la capa 3 ... :(  
Título: Problema Con Actionscript
Publicado por: sés en 29 de Noviembre de 2004, 09:04:07 PM
 Hombre, supongo que la capa 3 será un MovieClip y tendrá un nombre.

capa3.attachMovieClip( bla,bla,bla... );
Título: Problema Con Actionscript
Publicado por: Haddd en 30 de Noviembre de 2004, 09:01:08 AM
 No, no es un movieclip, es una capa, de esas que salen en el editor de tiempos.

Es que cuando pongo this en _root.OnenterFrame.. ¿ a qué objeto se refiere this ?
Título: Problema Con Actionscript
Publicado por: sés en 30 de Noviembre de 2004, 10:14:09 AM
 Ehm... ya. No te entendí porque, para mí, una capa es un MovieClip.

Nunca he utilizado las capas que dices (las de verdad :P) desde Actionscript y no sé cómo referirme a ellas. Lo que sí he hecho es tener distintos clips en capas (para colocarlos como quiero) y referirme a esos clips.

Realmente no sé si puedes referenciar una capa desde AS, creo que son simplemente una herramienta para facilitar la edición. Al final todo son clips en _root con distintas profundidades. Lo digo porque ahora mismo estoy generando SWFs desde Java y no existen las capas. Todo son objetos con un nivel de profundidad.

Lo mismo sucede con las líneas punteadas ( .... o -.-.-. ), que no son si no herramientas del editor que, al generar el SWF, se convierten en varias líneas para simular los patrones. Y hay más cosas que "falsea" el editor :P
Título: Problema Con Actionscript
Publicado por: Haddd en 30 de Noviembre de 2004, 11:30:17 AM
 Quiero hacer eso :

_root.createTextField("mytext",1,100,100,300,100);
mytext.multiline = false;
mytext.wordWrap = false;
mytext.border = false;
mytext.type="dynamic";

myformat = new TextFormat();
myformat.color = 0xff0000;
myformat.bullet = false;
myformat.underline = true;

mytext.text = "éste es mi primer texto de objeto de campo de prueba";
mytext._alpha=10;
mytext.setTextFormat(myformat);


pero no me hace el alpha!!! ¿porqué?
Título: Problema Con Actionscript
Publicado por: sés en 30 de Noviembre de 2004, 11:56:24 AM
 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;
Título: Problema Con Actionscript
Publicado por: Haddd en 30 de Noviembre de 2004, 12:04:02 PM
 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!!
Título: Problema Con Actionscript
Publicado por: sés en 30 de Noviembre de 2004, 02:19:53 PM
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.
Título: Problema Con Actionscript
Publicado por: Haddd en 30 de Noviembre de 2004, 03:06:00 PM
 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.

Título: Problema Con Actionscript
Publicado por: sés en 01 de Diciembre de 2004, 02:15:35 PM
 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.
Título: Problema Con Actionscript
Publicado por: Haddd en 01 de Diciembre de 2004, 03:52:29 PM
 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)
Título: Problema Con Actionscript
Publicado por: sés en 01 de Diciembre de 2004, 04:04:02 PM
 
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.
Título: Problema Con Actionscript
Publicado por: josepzin en 01 de Diciembre de 2004, 10:14:46 PM
 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...
Título: Problema Con Actionscript
Publicado por: josepzin en 02 de Diciembre de 2004, 09:32:54 AM
 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...