Comunidad de diseño web y desarrollo en internet online

Escribir texto dentro de MC externo

Citar            
MensajeEscrito el 22 Oct 2010 10:26 pm
Hola amigos CL. Recurro a uds. para resolver un problemita que me está demorando en mi proyecto.

Estoy agragando un MC externo en el escenario. El mismo contiene un campo de texto, en este caso lo llamaré "testigo".
El tema es que no sé como "escribir" un texto en dicho campo por medio de AS3, ya que no me doy cuenta cuál es la ruta que debo usar para controlarlo.
Les dejo el script que coloca al MC en el escenario:

Código ActionScript :

var contenedor1:MovieClip = new MovieClip();
var avatar1:Loader = new Loader();
avatar1.load(new URLRequest("avatar.swf"));
avatar1.contentLoaderInfo.addEventListener(Event.COMPLETE, insertMovie);
function insertMovie(evt:Event):void{ 
   addChild(contenedor1).name = "contenedor1";
   contenedor1.addChild(avatar1).name = "avatar1";
//desde acá puedo controlar al clip dinámicamente y asignarle nueva posición en el escenario
//o modificar su transparencia
//el tema es que no logro cambiar al textField llamado "testigo" que se encuentra en su interior
   avatar1.x = 30;
   avatar1.y = 100;
   avatar1.alpha = .1; 
   }
}


Desde ya mil gracias!!

Por CRD

80 de clabLevel



Genero:Masculino  

Diseño Filete Ilustración

msie8
Citar            
MensajeEscrito el 22 Oct 2010 11:31 pm
Tal vez la solución sirva también para manipular otros MC que están adentro de "avatar1".

Por CRD

80 de clabLevel



Genero:Masculino  

Diseño Filete Ilustración

msie8
Citar            
MensajeEscrito el 23 Oct 2010 12:58 pm
BuenAS:

Imagino que obtienes algún tipo de error de propiedad no encontrada. Puedes acceder a testigo a través de:

avatar1["testigo"]

o si no quieres crear la referencia avatar1, la propiedad

evt.target.loader

tiene tu loader (al que estás llamando avatar1)

y más concretamente:

evt.target.content

tiene el movieClip que has cargado, con lo que:

evt.target.content.testigo

debería acceder a tu campo de texto

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 23 Oct 2010 01:05 pm
...por otro lado, en estos casos suele ser muy recomendable crear un pto. de ruptura (pulsar con el ratón en el origen de la línea de código donde quieres crearlo, para que aparezca un pto. rojo) y utilizar Ctrl + May. + Intro para lanzar el compilador en modo debug.

Cuando hagas esto ve al panel de variables y comprueba que realmente existe un campo de texto llamado "testigo" en evt.target.content. Muchas veces el problema está en que "testigo" (o el símbolo que sea en cada caso) está anidado en otro movieclip, o se crea en el fotograma 30, o está mal escrito el nombre de la instancia, o.... mil posibilidades.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 23 Oct 2010 01:26 pm
Hola Lukánicos. Gracias por responder.
Prefiero usar "avatar1" ya que también crearé otros llamados avatar2, 3, etc y debo controlar el campo "testigo" de cada uno de ellos por separado.
Entonces, siguiendo tu consejo, probé de la sig forma pero no me funcionó:
avatar1["testigo"].text = "hola";

En qué me equivoqué?

Por CRD

80 de clabLevel



Genero:Masculino  

Diseño Filete Ilustración

msie8
Citar            
MensajeEscrito el 23 Oct 2010 01:56 pm
Echa un vistazo a este ejemplo:

CargarCampoTexto.rar

PelículaPrincipal.swf carga PeliculaCargada.swf, que es la que tiene el campo de texto "testigo".

De hecho, si ves el código, no tienes que esperar a Event.COMPLETE; cuando se produce Event.INIT ya tienes acceso al código AS3 del swf y puedes acceder/editar lo que te interese; sin embargo he dejado el método controlador del evento COMPLETE por si quieres seguir haciéndolo cuando el swf se haya cargado totalmente.

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 23 Oct 2010 02:24 pm
Te lo agradezco y luego te comento como fue.
Saludos.

Por CRD

80 de clabLevel



Genero:Masculino  

Diseño Filete Ilustración

msie8
Citar            
MensajeEscrito el 29 Oct 2010 01:05 am
Gracias Lukánicos, finalmente el problema por el que no funcionaba mi código es (aparentemente) porque el swf cargado estaba en AS2.

Por CRD

80 de clabLevel



Genero:Masculino  

Diseño Filete Ilustración

msie8

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.