Comunidad de diseño web y desarrollo en internet online

Problemas con el ambito "this._parent" y "_parent"

Citar            
MensajeEscrito el 04 Ene 2007 11:02 pm
Hola, no entiendo :? la diferencia entre "this._parent" y "_parent", pensaba que eran lo mismo, pero no hacen lo mismo. A continuación os indico un ejemplo y su codigo que no me dan la misma respuesta.

Tengo un boton en _root y cuando se produce el evento onPress quiero que se cargue un swf. A continuacion os pongo la funcion que responde al evento ( de las dos maneras, la 1ª funciona y la otra no):

Código :

//1ª Forma-----------------------------------------------------------------------------------------------------------------------
btn.onPress = function (){
   var mc:MovieClip = [b]this._parent.[/b]createEmptyMovieClip("mc1", _root.getNextHighestDepth());
   trace("mc: " + mc );         //salida -> mc: _level0.mc1
   trace ("this: " + this);                  //salida -> this: _level0.btn
   loadMovie("miswf.swf", mc);
};
//-----------------------------------------------------------------------------------------------------------------------------------

//2ª Forma-----------------------------------------------------------------------------------------------------------------------
btn.onPress = function (){
   var mc:MovieClip = [b]_parent.[/b]createEmptyMovieClip("mc1", _root.getNextHighestDepth());
   trace("mc: " + mc );         //salida -> mc: undefined
   trace ("this: " + this);                  //salida -> this: _level0.btn
   loadMovie("miswf.swf", mc);
};
//-----------------------------------------------------------------------------------------------------------------------------------


Me puede alguien librar de esta duda que seguro que es una tonteria pero no logro entender.

Un saludo y gracias.

Por Maikel82

8 de clabLevel



Genero:Masculino  

Spain

firefox
Citar            
MensajeEscrito el 05 Ene 2007 01:41 am
Eso es porque estás poniendo código dentro de una función, por lo que necesitas poner el this para hacer referencia al boton que lleva el código

Código :

btn.onPress = function (){
trace ("parent: " + _parent) <-- mal
trace ("parent: " + this._parent) <--ok
}; 

fuera de una función el this no es necesario con lo que _parent o this._parent funcionaria igual.

Mírate este tip

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

firefox
Citar            
MensajeEscrito el 05 Ene 2007 02:01 am
Muchas gracias, mira que me habia leido el tip antes de postear la pregunta, pero no me habia enterado de que al estar dentro de la función era necesario poner antes el "this".

Que cazurrin que soy :lol: , me estaba poniendo malo por este tema, gracias de nuevo.

Por Maikel82

8 de clabLevel



Genero:Masculino  

Spain

firefox

 

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