Comunidad de diseño web y desarrollo en internet online

Modificar un MovieClip desde AS 3.0 Ayuda¡¡¡

Citar            
MensajeEscrito el 20 Ago 2008 05:48 pm
Hola que tal Saludos:

Tengo un problema, el cual se debe a que yo tengo un MC en la biblioteca llamado " Opcion " y lo cargo con AS en el escenario con addChild digamos:

Código :

var contenedor:MovieClip=new MovieClip();
contenedor = new Opcion(); 
addChild(contenedor);

ahora en el MC Opcion que cargue en " contenedor " se encuentra un texto dinamico llamado:

mitexto_txt;

Mi problema biene al querer editar el texto de manera que pueda modificarlo algo asi:

Código :

Opcion.mitexto_txt.text = "Cargando Texto Dinamico";


pero obviamente necesito saber el codigo correcto para que esto pase con el MC que cargue en " contenedor"; como hacer esto con AS ?? :(

Por sonic23

28 de clabLevel



Genero:Masculino  

2007

firefox
Citar            
MensajeEscrito el 20 Ago 2008 06:18 pm
Mira cuando vas a instanciar a "Opción" y variarle su texto lo debes hacer de esta manera:

Código ActionScript :

var contenedor:Opcion = new Opcion();
// Puedes decir tambien var contenedor:MovieClip = new Opcion(); Porque pertenece a la clase

contenedor.mitexto_txt.text = "Cargando Texto Dinamico";
addChild(contenedor);

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 20 Ago 2008 06:56 pm
Ok muchas gracias elchininet, mira ya logre modificar los textos, ahora lo que deseo es obtener la referencia del texto atraves de un listener cuando des click en el MC que creamos es decir contenedor por lo tal lo tengo asi:

Código :

var contenedor:Opcion = new Opcion(); 
contenedor.mitexto_txt.text = "Cargando Texto Dinamico";  
addChild(contenedor)

contenedor.addEventListener(MouseEvent.CLICK, Tarea);

function Tarea(event:Event):void{
    trace(event.target.contenedor.mitexto_txt.text)
 }


Pero me marca error, asi que como puedo obtener la referencia del texto cuando le den clic sobre él?? :(

Por sonic23

28 de clabLevel



Genero:Masculino  

2007

firefox
Citar            
MensajeEscrito el 20 Ago 2008 09:11 pm
Primero que es mejor que pongas la propiedad de mouseChildren en false en el contenedor, sino los displayObjects que este contenga también levantarán la función tarea y lo segundo es que cuando te refieres a "evt.target" te estás refiriendo al objeto llamador del evento en este caso "contenedor", no puedes pues buscar a contenedor dentro de contenedor:

Código ActionScript :

var contenedor:Opcion = new Opcion();
contenedor.mitexto_txt.text = "Cargando Texto Dinamico";
contenedor.mouseChildren = false;

addChild(contenedor);

contenedor.addEventListener(MouseEvent.CLICK, Tarea);

function Tarea(event:Event):void {

   trace(event.target.mitexto_txt.text);

}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 20 Ago 2008 09:57 pm
Bueno, entonces como puedo tener acceso a la informacion de "mitexto_txt" a la hora de que den click en mi objeto cargado??

Por sonic23

28 de clabLevel



Genero:Masculino  

2007

firefox
Citar            
MensajeEscrito el 20 Ago 2008 11:53 pm
El código que te puse lanza el texto que tiene el clip al ser clickeado :?

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 21 Ago 2008 06:50 pm
ok, mira elchininet este es el problema,
Fijate que me di cuenta de que sino existe la linea:

Código :

contenedor.mouseChildren = false;


al compilar mi aplicacion me manda error, claro que al agregarla a mi codigo asi:

Código :

[color=blue]var[/color] contenedor:Opcion = [color=blue]new[/color] Opcion();
contenedor.mitexto_txt.[color=blue]text [/color]= [color=green]"Cargando Texto Dinamico"[/color];
[b]contenedor.[color=blue]mouseChildren[/color] = [color=blue]false[/color];[/b]
[color=blue]addChild[/color](contenedor);

contenedor.[color=blue]addEventListener[/color]([color=blue]MouseEvent[/color].[color=blue]CLICK[/color], Tarea);

[color=blue]function[/color] Tarea([color=blue]event[/color]:[color=blue]Event[/color]):[color=blue]void[/color] {
   [color=blue]trace[/color]([color=blue]event[/color].[color=blue]target[/color].mitexto_txt.[color=blue]text[/color]);
}



Funciona de maravilla la aplicacion, pero pasa esto:

En el MC que se carga desde la biblioteca "Opcion", este contiene una animacion que se activa al pasar el mause encima de este, el cual cree con un listener que trae el clip internamente, entonces cuando yo agrego la linea que te comento pues la animacion se pierde,ya que funciona a base de el evento MouseEvent, pero si la quito, la animacion funciona, el problema es biene cuando al hacer clic de nuestra tan comentada funcion de rastrear la referencia del texto me manda el error siguiente:

[code]
TypeError: Error #1010: Un término no está definido y no tiene propiedades.
at botonbar_fla::BotonBar_1/Tarea()[
/code]

Es por esto que me sale este error y de ahi no paso, entonces si funciona si agrego la liena que te comento pero sin animacion, y mi idea es que no solo me mande el texto sino que tambien se anima al pasar el mouse encima del objeto o del MC, como puedo hacer que permanesca la animacion y que al mismo tiempo me de la referencia del teexto??
[img]C:\Documents and Settings\uchavez\Escritorio\Dibujo.jpg[/img]

Por sonic23

28 de clabLevel



Genero:Masculino  

2007

msie
Citar            
MensajeEscrito el 21 Ago 2008 07:24 pm
Utilizando currentTarget en vez de target porque si no el evento se propagará a todos los childs de contenedor:

Código ActionScript :

var contenedor:Opcion = new Opcion();
contenedor.mitexto_txt.text = "Cargando Texto Dinamico";

addChild(contenedor);

contenedor.addEventListener(MouseEvent.CLICK, Tarea);

function Tarea(event:Event):void {

   trace(event.currentTarget.mitexto_txt.text);

}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox

 

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