Du er nødt til at enten gemme this i en anden variabel og så bruge den ellers kan du gemme de variabler du vil bruge som lokale variable i stedet.
fx
var self = this;
function animate(t, dt)
{
self.graphic.scale += dt/self.speed;
}
eller
var speed = 10;
this.graphic.addFrameListener(this.animate);
var graphic = this.graphic;
function animate(t, dt)
{
graphic.scale += dt/speed;
}
Og for lige at få terminologien på plads, så er der ikke noget, der hedder "klasse" i JavaScript.
Hvis addFrameListener er din egen funktion, kan du også bruge et alternativ:
function addFrameListener(func, obj) {
this.func = func;
this.obj = obj;
}
function callFrameListener(t, dt){
this.func.apply(this.obj, [t, dt]);
}
Edit: blev vidst lige overhalet der.
Indlæg senest redigeret d. 25.09.2009 23:36 af Bruger #3143