Hola,
que yo sepa los métodos setInterval y setTimeout SIEMPRE haran la
llamada desde el contexto del objeto window.

Si necesitas que ejecuten un método de un objeto tuyo tendrás que
guardarlo en una variable global y usar esa global en la llamada del
setInterval. Mejor pongo el codigo que se explica solo:

<script type="text/css">
//Global para el interval
var gObj;

function obj(){
 this.nombre="objeto";
}

obj.prototype.alertaMaxima=function(){
gObj = this; 
 this.intervalo=setInterval("gObj.canta()",1000);
}

obj.prototype.canta=function(){
 alert(this.nombre);
}
</script>

El problema de hacerlo asi es que diferentes llamadas a alertaMaxima
machacarian la global, pero si ese es tu problema puedes hacer que la
global sea una lista / cola de objetos para irlos tratando por orden.

Un saludo,
Serxi

P.D:
Reitero el "que yo sepa" pues me acabo de enterar que setInterval y
setTimeout aceptan punteros a funciones...


On Mon, 31 Jan 2005 11:48:58 +0100, Marc el XrV <[EMAIL PROTECTED]> wrote:
> Hola,
> 
> a ver si alguien me ilumina con algúna idea sobre como hacer que un
> setInterval o un setTimeout sea local el lugar de global, para por ejemplo,
> ejecutarlo encapsulado en un objeto:
> 
> <script type="text/css">
> function obj(){
>  this.nombre="objeto";
> }
> obj.prototype.alertaMaxima=function(){
>  this.intervalo=setInterval(this.canta,1000);
> }
> obj.prototype.canta=function(){
>  alert(this.nombre);
> }
> </script>
> 
> Pues eso, que this.nombre sería igual a window.nombre... y eso exactamente no
> me interesa...
> a ver si alguien tiene una solución a eso :).
> 
> gracias!
> atte, Marc Palau
> 
> _______________________________________________
> Lista de distribución Ovillo
> Para escribir a la lista, envia un correo a Ovillo@ovillo.org
> Puedes modificar tus datos o desuscribirte en la siguiente dirección: 
> http://ovillo.org/mailman/listinfo/ovillo_ovillo.org
>

_______________________________________________
Lista de distribución Ovillo
Para escribir a la lista, envia un correo a Ovillo@ovillo.org
Puedes modificar tus datos o desuscribirte en la siguiente dirección: 
http://ovillo.org/mailman/listinfo/ovillo_ovillo.org

Responder a