Comunidad de diseño web y desarrollo en internet online

Ayuda para acceder a objetos creados en el stage

Citar            
MensajeEscrito el 02 Feb 2009 05:00 am
Buenas a todos soy nuevo en el foro asi como en AS3, la verdad es que de momento he conseguido hacer lo que he necesitado para mi proyecto pero me encuentro atascado en lo siguiente:

En el escenario tengo creado dos Dynamic Text con el nombre de instancia: login y pass, hasta aqui perfecto.
He enlazado un archivo as (Login.as).

Se que desde el .as puedo generar el TextField o un componente Input con new TextField, pero mi pregunta es si hay alguna opcion para recoger datos o cambiar el texto de un objeto que ya se ha creado manualmente, algo asi en AS2 como _root.login.text = "LOGIN" o guardar el contenido en una variable tlog = _root.login.text;

Muchas gracias por su tiempo.

PD: Agradeceria mucho si alguien puede proporcionarme ayuda de como funciona el DisplayObject porque he leido algunos temas pero me lia bastante.

Por vr46

2 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Feb 2009 08:19 am

vr46 escribió:

Se que desde el .as puedo generar el TextField o un componente Input con new TextField, pero mi pregunta es si hay alguna opcion para recoger datos o cambiar el texto de un objeto que ya se ha creado manualmente

Piensa que, cuando tenemos un MovieClip o un TextField en el escenario (pongamos que el nombre de instancia sea "mimc" y "mitextField") Flash lo "traduce" como

Código ActionScript :

var mimc:MovieClip=new MovieClip()
var mitextField:TextField=new TextField()
addChild(mimc)
addChils(mitextField)
//así que puedes escribir
mitextField.text="Hola Mundo"
mimc.x=300
if (mitextField.text=="LOGIN"){
      .......
}

Observa que "traduce" los nombres de instancia a "VARIABLES" que hacen referencia a los MCs

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Feb 2009 07:13 am
Gracias Eliseo2 ya lo solucione el problema era que no tenia el mismo nomre en el fla que en el as y no se el porque parece ser que es obligatorio, ahora tengo otro pequeño problema haber si alguien me podria hechar una mano, les explico:

He creado una serie de MovieClips con un for hasta aqui perfecto los crea sin problema pero quiero crear un evento para cuando pasen por encima de cada uno de los Clips he probado de la siguiente manera:

Código :

for (var r:int=0; r < mc.length; r++){
   var tx:String = mc[r].texto;
   mc[r].addEventListener( MouseEvent.MOUSE_OVER, function(e:Event) { abrir(tx); } );
}


De esta manera funciona el evento pero no consigo que el parametro abrir(tx) funcione siempre me devuelve el ultimo valor del Array.

Haciendo lo mismo que el for a mano si que funciona:

Código :

mc[0].addEventListener( MouseEvent.MOUSE_OVER, function(e:Event) { abrir(mt[0]); } );
mc[1].addEventListener( MouseEvent.MOUSE_OVER, function(e:Event) { abrir(mt[1]); } );
mc[2].addEventListener( MouseEvent.MOUSE_OVER, function(e:Event) { abrir(mt[2]); } );
mc[3].addEventListener( MouseEvent.MOUSE_OVER, function(e:Event) { abrir(mt[3]); } );


Alguien sabe como solucionar el problema?

Muchas gracias por su tiempo.

Por vr46

2 de clabLevel



 

chrome
Citar            
MensajeEscrito el 10 Feb 2009 12:10 pm
Debería ser

Código ActionScript :

for (var r:int=0; r < mc.length; r++){
   var tx:String = mc[r].texto;
   mc[r].id=r  //<---le damos una variable al MC
   mc[r].addEventListener( MouseEvent.MOUSE_OVER, onMouseOver);
}
function onMouseOver (e:Event) { 
    var id:Number=MovieClip(e.target).id
    abrir(mt[id])
}

Por Eliseo2

710 de clabLevel



 

firefox

 

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