Funktionen behindern sich

chuvak

Erfahrenes Mitglied
Ich habe ein Bild, welches von oben rausgerollt werden soll, wenn man mit der Maus auf einen Text fährt. Wenn die Maus den Text verläßt, soll das Bild wieder nach oben rollen.
Das funktioniert ja. Aber genau das Gleiche soll auch passieren, wenn ich mit der Maus auf das Bild fahre.
Wenn ich zB den Text mit der Maus verlasse, fährt das Bild hoch, wenn ich dann sofort über das Bild fahre, fährt das Bild nicht erneut raus, sondern bleibt einfach stehen.
Der folgende Code ist sowohl auf dem Bild, als auch auf dem Text.

HTML:
on (rollOver){
this.onEnterFrame=function(){
_root.Bild._y+=5;
if(_root.Bild._y>=20){
_root.Bild._y=20;
delete this.onEnterFrame;
}}}

on (rollOut){
this.onEnterFrame=function(){
_root.Bild._y-=5;
if(_root.Bild._y>=-100){
_root.Bild._y=-100;
delete this.onEnterFrame;
}}}
Die Funktionen behindern sich irgendwie gegenseitig.
Was kann man dagegen machen?
 
Hallo!

Ich seh bloss, dass du zwei verschiedene onEnterFrame-Funktionen hast, die unter Umständen auch gleichzeitig laufen können, z.B. wenn du schnell vom Text (MovieClip?), dessen onEnterFrame noch nicht gekillt wurde, auf das Bild fährst, dessen onEnterFrame nun dem des Text entgegen wirkt, so dass beide onEnterFrames nie ihre Bedingungen für den Kill erfüllen.

Ich würd das Script wie folgt gestalten:

Code:
on (rollOver){
    _root.bild.onEnterFrame=function(){
        this._y+=5;
        if(this._y>=20){
              this._y=20;
              delete this.onEnterFrame;
        }
    }
}


on (rollOut){
    _root.bild.onEnterFrame=function(){
        this._y-=5;
        if(this._y<=-100){
              this._y=-100;
              delete this.onEnterFrame;
        }
    }
}

So überschreibst du auch immer dieselbe onEnterFrame-Funktion.

gruss
 
Zurück