Gracias por la respuesta Xavi.
No conoc�a el uso de 'call', muy util.
pero hay algo que tengo que cambiar. en:
control.prototype.__onRelease__ = function() {
this.__clickHandler__.call(this);
}
this ser� la referencia de la instancia de 'control', pero en mi caso yo
quiero que sea de la instancia de 'Estado', que es la propietaria de la
funci�n manejadora que se ejecutara al final.
Por tanto necesito seguir pasando una referencia de la instancia de
'Estado', para que se pase como parametro en el
this.__clickHandler__.call(...);
De momento seguire pasando la referencia al objeto en la llamada a
setOnPress ( en tu codigo, setClickHandler )
y otra duda: el uso de addProperty es para que cuando usemos lo siguiente:
miMC.ClickHandler="hola";
en realidad se ejecute:
miMC.setClickHandler("hola");
� si vamos a utilizar directamente esta ultima instrucci�n, no es necesario
addProperty, verdad ?
Bueno,.. espero no haberme liado mucho :-)
Un saludo.
----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, November 05, 2003 2:02 PM
Subject: Re: [ASNativos] Handlers. sugerencias.
> Hola F�lix,
> aplicando un poco lo que se est� comentando en el otro post podemos usar
> getters/setters y call().
>
> <sintaxis>
> myFunc.call(obj_referencia,param1,param2);
> </sintaxis>
>
> Esto nos ejecutar�a la funci�n myFunc() pero en el �mbito del objeto
> obj_referencia. Esto es, dentro de la funci�n this apuntar� a
> obj_referencia.
>
> Con c�digo ser�a algo as� (no lo aplico al que has pasado):
>
> <code>
> function control() {
> this.addProperty("onClickHandler",setClickHandler,getClickHandler);
> }
>
> control.prototype = new MovieClip();
>
> control.prototype.setClickHandler = function(clickHandler) {
> this.__clickHandler__ = clickHandler;
> this.onRelease = this.__onRelease__;
> }
>
> control.prototype.getClickHandler = function() {
> return this.__clickHandler__;
> }
>
> control.prototype.__onRelease__ = function() {
> this.__clickHandler__.call(this);
> }
>
> Object.registerClass("tuMC_vinculado",control);
> </code>
>
> Para usarlo inserta un clip de pel�cula en el escenario, vinculado en la
> biblioteca con nombre de vinculaci�n 'tuMC_vinculado'. Lo tienes que
> insertar como muy pronto un frame despu�s que el object.registerClass.
>
> Para asignar una funci�n:
>
> <code>
> function hola() {
> trace("hola " + this);
> }
>
> miMC.setClickHandler("hola");
> </code>
>
> Espero que te sirva
>
> Saludos
> Xavi Beumala
>
>
> > hola a todos,
> >
> > Tengo este codigo que creo que funciona, pero que no me gusta.
> >
> > En concreto lo que me interesa es la funci�n 'setOnPress' de la clase
> > 'Control'.
> >
> > Lo que quiero hacer es activar un evento o handler para el 'onPress' de
la
> > clase 'Control' (de su clip, mas exactamente), de manera que el
'handler'
> > o funci�n que ser� llamada reciba tambien una referencia al objeto que
> > recibe el evento.
> >
> > Ahora lo hago pasando 'handler' y 'objeto' a 'setOnPress' y
almacenandolos
> > en la instancia del Control ( en onPressHandler y onPressObjeto), para
que
> > la funci�n 'control.clip.onPress' tenga acceso a ellos.
> >
> > �alguna sugerencia para mejorarlo?, o algun cambio de concepto?
> >
> > un saludo.
> >
> > El codigo:
> >
> > // Clase Control
> >
> > function Control(){
> > this.clip=createEmptyMovieClip( "Control"+this.prof, this.prof );
> > this.clip.clase = this;
> > }
> >
> >
> > Control.prototype.setOnPress = function(handler,objeto){
> > this.onPressHandler=handler;
> > this.onPressObjeto=objeto;
> > this.clip.onPress=function(){
> > this.clase.onPressHandler(this.clase.onPressObjeto);
> > }
> > }
> >
> > // Clase Estado
> >
> > function Estado(control){
> > this.control=control;
> > this.prueba=15;
> > this.control.setOnPress(this.onPress,this);
> > }
> >
> > Estado.prototype.onPress = function(){
> > trace("onPress de Estado. " + objeto.prueba);
> > }
> > <!-------------------------------
> > Lista ASNativos:
> > subscripciones/desubscripciones
> > http://www.sidedev.net/asnativos
> > -------------------------------->
> >
>
> <!-------------------------------
> Lista ASNativos:
> subscripciones/desubscripciones
> http://www.sidedev.net/asnativos
> -------------------------------->
>
<!-------------------------------
Lista ASNativos:
subscripciones/desubscripciones
http://www.sidedev.net/asnativos
-------------------------------->