Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-01-2005, 12:55   #1 (permalink)
Grand Master Flash
 
Benutzerbild von Tiburon
 
Registriert seit: Dec 2003
Ort: Schweiz
Beiträge: 130
onRollOver mit Verzögerung

Ein gutes Neues Jahr wünsche ich erstmal!

Schon geht's los mit einer Frage:

ich habe ein paar Buttons, welche mit btn.onRollOver ein Bild einblenden. Nun möchte ich verhindern, dass wenn der User nur mit der Maus zufällig darüberfährt, ein Bild eingeblendet wird. Zufällig definiere ich so: die Maus ist weniger als 1 Sek über dem Button.

Wie kriege ich Flash dazu die btn.onRollOver Funktion so zu verzögern, dass sie erst ab einer Sekunde "Verweilzeit" ausgeführt wird?
Ich hab's schon mit getTimer() versucht, aber keinen Erfolg gehabt.
__________________
Gruss

}-^°>
Tiburon ist offline   Mit Zitat antworten
Alt 03-01-2005, 12:59   #2 (permalink)
Neuer User
 
Benutzerbild von the binary
 
Registriert seit: Jul 2001
Ort: Berlin | Friedrichshain
Beiträge: 3.561
versuchs mal mit 'setInterval();'

gruss
__________________
8bm | join ff@BOINC
formpackage.org | audiohunter.de | problematica.de | 8ball-media.de/blog | taikonauten.cn
the binary ist offline   Mit Zitat antworten
Alt 03-01-2005, 14:18   #3 (permalink)
Grand Master Flash
 
Benutzerbild von Tiburon
 
Registriert seit: Dec 2003
Ort: Schweiz
Beiträge: 130
Wie?

einfach in der Art

ActionScript:
  1. btn.onRollOver = function() {
  2.     intID = setInverval(function {
  3.         machwas;
  4.         clearInterval(intID);
  5.         delete intID;
  6.     },1000);
  7. }
__________________
Gruss

}-^°>

Geändert von Tiburon (03-01-2005 um 14:25 Uhr)
Tiburon ist offline   Mit Zitat antworten
Alt 03-01-2005, 16:15   #4 (permalink)
Neuer User
 
Benutzerbild von the binary
 
Registriert seit: Jul 2001
Ort: Berlin | Friedrichshain
Beiträge: 3.561
sieht doch gut aus..

würd die interval_id allerding _global speichern, da du sonst
mit mit nicht gekillten intervallen probleme bekommst, wenn du dass rollover
innerhalb von 1 sekunde ausführst.

dann wird eine neue id erstellt, und der alte interval läuft weiter.

gruss
__________________
8bm | join ff@BOINC
formpackage.org | audiohunter.de | problematica.de | 8ball-media.de/blog | taikonauten.cn

Geändert von the binary (03-01-2005 um 16:18 Uhr)
the binary ist offline   Mit Zitat antworten
Alt 03-01-2005, 17:19   #5 (permalink)
Grand Master Flash
 
Benutzerbild von Tiburon
 
Registriert seit: Dec 2003
Ort: Schweiz
Beiträge: 130
Scheint zu funzen.
Allerdings muss man noch ne Abfrage einbauen, ob sich die Maus noch über dem Button befindet, sonst startet das Skript einfach zeitverzögert. Also das könnte dann so aussehen, wenn man die MovieClip Klasse noch um die Methode mouseOverClip erweitert.
ActionScript:
  1. Button.onRollover = function() {
  2.   _global.intID = setInterval(function() {
  3.     if (Button.mouseOverClip()) {
  4.       machwas;
  5.     }
  6.     clearInterval(_global.intID);
  7.     delete _global.intID  // optional
  8.   }
  9. }

Danke binary für den Denkanstoss!
__________________
Gruss

}-^°>

Geändert von Tiburon (03-01-2005 um 19:47 Uhr)
Tiburon ist offline   Mit Zitat antworten
Alt 03-01-2005, 22:47   #6 (permalink)
Neuer User
 
Benutzerbild von the binary
 
Registriert seit: Jul 2001
Ort: Berlin | Friedrichshain
Beiträge: 3.561
das sollte dein problem auch so lösen..

ActionScript:
  1. myButton.onRollOver = function()
  2. {
  3.  clearInterval(  _global.intID );
  4. }

gruss
__________________
8bm | join ff@BOINC
formpackage.org | audiohunter.de | problematica.de | 8ball-media.de/blog | taikonauten.cn
the binary ist offline   Mit Zitat antworten
Alt 04-01-2005, 08:26   #7 (permalink)
Grand Master Flash
 
Benutzerbild von Tiburon
 
Registriert seit: Dec 2003
Ort: Schweiz
Beiträge: 130
Aha, aber die onRollOver Funktion ist ja schon belegt.

Wahrscheinlich meinst Du

ActionScript:
  1. myButton.onRollOut = function()
  2. {
  3. clearInterval(  _global.intID );
  4. }

Elegante Lösung, ich werd's probieren.

Danke!
__________________
Gruss

}-^°>
Tiburon ist offline   Mit Zitat antworten
Alt 04-01-2005, 12:56   #8 (permalink)
Grand Master Flash
 
Benutzerbild von Tiburon
 
Registriert seit: Dec 2003
Ort: Schweiz
Beiträge: 130
Funktioniert einwandfrei.

Zu Beachten ist noch, dass jeder Button eine eigene Intervall-ID benützen muss (also bspw. intButton1ID, intButton2ID,...), sonst gibt's Stress, da Flash laufende Intervalle "vergessen" kann.
__________________
Gruss

}-^°>
Tiburon ist offline   Mit Zitat antworten
Alt 05-01-2005, 08:01   #9 (permalink)
Neuer User
 
Benutzerbild von the binary
 
Registriert seit: Jul 2001
Ort: Berlin | Friedrichshain
Beiträge: 3.561
hast recht....
sollte natürlich auf onRollOut liegen..

Zitat:
Zitat von Tiburon
Funktioniert einwandfrei.

Zu Beachten ist noch, dass jeder Button eine eigene Intervall-ID benützen muss (also bspw. intButton1ID, intButton2ID,...), sonst gibt's Stress, da Flash laufende Intervalle "vergessen" kann.
dass genau meinte ich. deshalb ja das speichern der id in einer globalen variable.
dann kann jeder button auf die gleiche variable zugreifen.


gruss
__________________
8bm | join ff@BOINC
formpackage.org | audiohunter.de | problematica.de | 8ball-media.de/blog | taikonauten.cn
the binary ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 00:01 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele