Comunidad de diseño web y desarrollo en internet online

propiedades de objetos con nombres de variables

Citar            
MensajeEscrito el 08 Sep 2009 01:40 pm
Hola, a ver si me explico.

quiero controlar las propiedades de un mc en el escenario como .x .y etc. el problema es que el nombre del objeto es obtenido mediante codigo y asignado a una variable de tipo String.

tengo varios mcs en el escenario los cuales al darle clic se obtiene su nombre para luego modificar sus propiedades.
y cuando intento cambiar de posicion el mc aparece un error porque una variable String no tiene propiedades modificables como .x o .y.

Código ActionScript :

function onClic(evento:MouseEvent){
var nombre:String=evento.target.name;
nombre.x=10;
}


anteriormente había visto en as2 como con corchetes se podia modificar el valor de las propiedades de una variable algo como esto:

Código ActionScript :

[nombre]._x=10;

y funcionaba, pero ahora en as3 no tengo idea de como hacerlo, espero que puedan hecharme un tip.

Saludos.

Por kazooe

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Sep 2009 02:32 pm
No se si llegues a utilizar el nombre del clip en otro lado pero ya que la variable nombre es local me imagino que no, no te sirve mover directamente el target?? tu capturas el nombre de tu target que es el movieclip que quieres mover.....entonces ignora el nombre y mueve el movieclip directamente.

Código ActionScript :

function onClic(evento:MouseEvent){ 
evento.target.x=10;  
} 

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Sep 2009 04:18 am
Funciona perfectamente Angel Roberto, Muchas gracias por tu respuesta.

Por kazooe

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Sep 2009 06:03 am
Si usas un clip con otros clips dentro, texto, etc. el target te puede dar dolor de cabeza, usa el currentTarget

Por GersonM_17

330 de clabLevel



Genero:Masculino   Héroes

Flash AS3 / PHP Developer

chrome
Citar            
MensajeEscrito el 13 Sep 2009 09:56 am
Kazooe, en la "variable" (realmente no es una variable) evento.target tienes una referncia al propio MC. Por eso se suele escribir

Código ActionScript :

function onClic(evento:MouseEvent){ 
  var mc:MovieClip= evento.target as MovieClip
  //y usamos "mc" a partir de ahora
  mc.x=10
  //ó
  trace(mc.name)
  }

Evidentemente lo puedes simplificar y no usar una variable auxiliar.

La "notación de corchetes" también se puede usar siempre que estemos hablando de un MovieClip -o si tu película extiende de MovieClip- Así, también funciona, p.e.

Código ActionScript :

this[nombre].x=100

Recordemos que la "notación de corchetes" se puede usar con this, parent, o cualquier MovieClip

Por último, podemos tener una variable que haga referencia a un MC del que sabemos su "propiedad" name como

Código ActionScript :

var nombre:String="mimc"
var mc:MovieClip=getChildByName(nombre) as MovieClip
mc.x=100


sí, es cierto que en Flash, muchas veces debemos hacer una "conversión de cast". Esto es debido a quemuchas de las funciones y propiedades (e.target, getChildByName()...) devuelven un valor que es un "simple" DisplayObject. Si sabemos que es un MovieClip, podemos hacer dicha "conversión de cast".

Por Eliseo2

710 de clabLevel



 

msie8

 

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