Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-07-2005, 08:55   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2004
Ort: Regensburg
Beiträge: 132
Question abfragen ob sich die maus bewegt

hallo zusammen,

gibt es im flash eine möglichkeit abzufragen ob die maus noch bewegt wird?

> ich möchte, dass wenn die maus über eine bestimmte zeit nicht mehr bewegt wird, die präsentation an einen anderen frame springt (eben als eine art bildschirmschoner - ein richtiger bildschirmschoner kommt aus verschiedenen gründen nicht in frage)

Geändert von Cemotion (20-07-2005 um 08:57 Uhr)
Cemotion ist offline   Mit Zitat antworten
Alt 20-07-2005, 09:01   #2 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Guck mal nach "onMouseMove", musste dir aber was bauen was das dan realisiert.
Meine Gedanken währen jetzt:
Eine Funktion schreiben die dann das "Weiterblättern" realisiert.
Bei onMouseMove ein Intervall starten, was nach Ablauf der Zeit deine Funktion aufruft.
Dieses Intervall musst du aber immer bei onMouseMove löschen und wieder neu setzen ( clearInterval(welchesInterval) löscht ein Interval ).
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 20-07-2005, 09:08   #3 (permalink)
Neuer User
 
Registriert seit: Aug 2004
Ort: Regensburg
Beiträge: 132
äääääähhhh. bin leider in sachen actionscript und programmierung noch nicht ganz so fit... kannst du mir da vielleicht noch ein wenig weiter helfen?
Cemotion ist offline   Mit Zitat antworten
Alt 20-07-2005, 09:54   #4 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Mach dir mal ne neue fla und packe dies hier ins erste Frame:
PHP-Code:
// speichert nachher das Interval
var id:Number;
// "ueberwacht" deine Maus
var myListener:Object = new Object();
myListener.onMouseMove = function () {
    
clearIntervalid );
    
id setIntervalnextStop200015);    
};
Mouse.addListenermyListener );

function 
nextStopwo ):Void{
    
clearIntervalid );
    
trace"gotoAndStop(" wo ")" );

Wenn Du jetzt 2 Sekunden lang deine Maus nicht bewegst gibt er dir per trace was aus.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 20-07-2005, 10:37   #5 (permalink)
Neuer User
 
Registriert seit: Aug 2004
Ort: Regensburg
Beiträge: 132
hhhmm - also wenn ich das ganze in eine leere flash-datei einbaue, dann funktioniert's super! also danke erstmal...
problem: baue ich das script in meine präsentation ein, dann bekomme ich eine fehlermeldung. nehme ich dann das ":void" im letzten teil raus, ist zumindest die fehlermeldung weg, aber funktionieren tut's trotzdem nicht...
hast du vielleicht eine ahnung, woran das liegen könnte?
Cemotion ist offline   Mit Zitat antworten
Alt 20-07-2005, 11:05   #6 (permalink)
Neuer User
 
Registriert seit: Aug 2004
Ort: Regensburg
Beiträge: 132
hab herausgefunden woran es liegt, weiss allerdings nicht, wie ich das problem lösen kann...

auf dem ersten frame gibt es einen button, über den man auf den nächsten frame kommt. auf diesem frame soll dann das script, sodass man bei keiner mausbewegung wieder auf frame 1 kommen soll.
irgendwie funktioniert das aber nicht....

hab hier mal eine vereinfachte version angehangen.

vielleicht hat ja jemand eine idee?!
Angehängte Dateien
Dateityp: zip mausbewgung.zip (5,2 KB, 25x aufgerufen)

Geändert von Cemotion (20-07-2005 um 12:05 Uhr)
Cemotion ist offline   Mit Zitat antworten
Alt 20-07-2005, 14:50   #7 (permalink)
Neuer User
 
Registriert seit: Aug 2004
Ort: Regensburg
Beiträge: 132
Unhappy Keine Ideen???

hat denn keiner eine idee????
Cemotion ist offline   Mit Zitat antworten
Alt 20-07-2005, 15:18   #8 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hat dir rendner[i] doch schon beantwortet. Musst du nur anpassen:
ActionScript:
  1. // speichert nachher das Interval
  2. var id:Number;
  3. // "ueberwacht" deine Maus
  4. this.onMouseMove = function() {
  5.     clearInterval(id);
  6.     id = setInterval(nextStop, 2000, 1);
  7. };
  8. function nextStop(wo) {
  9.     clearInterval(id);
  10.     gotoAndStop(wo);
  11. }
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 20-07-2005, 16:53   #9 (permalink)
Neuer User
 
Registriert seit: Aug 2004
Ort: Regensburg
Beiträge: 132
so weit war ich auch schon... hat ja auch funktioniert, aber bei der datei, wo ich erst noch den button davor habe geht's nicht (siehe anhang oben)
Cemotion ist offline   Mit Zitat antworten
Alt 20-07-2005, 17:25   #10 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Wenn du das Script in deiner Datei durch meins (rendner[i]s - nur leicht geändert) ersetzt, dann geht das!!!
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 21-07-2005, 01:50   #11 (permalink)
Freizeitflasher
 
Benutzerbild von Alphanimal
 
Registriert seit: Jun 2004
Ort: Niederösterreich
Beiträge: 615
ich würde das ohne komplizierte intervalle usw. lösen. (speziell wenn ich AS anfänger wäre)

mein vorschlag:
im 2. Frame einen MovieClip, in dem einfach die frames ablaufen, im letzten Frame:
ActionScript:
  1. _parent.gotoAndStop(1);

dh. wenn der MC zum Ende läuft, springt er im Hauptfilm wieder auf den ersten Frame.

dann musst du das noch verhindern, indem du im ersten Frame das einfügst:
ActionScript:
  1. this.onMouseMove = function(){
  2. gotoAndPlay(2);
  3. }

dh. wenn du die maus bewegst, springt er wieder auf frame 2 und die zeit läuft wieder von vorne.

etwas kürzer...
__________________
Some Flash Worx
Alphanimal ist offline   Mit Zitat antworten
Alt 21-07-2005, 09:14   #12 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Und wie willste so etwas machen wenn du 5 Minuten ( oder mehr ) benötigst, also ich finds blödsinnig.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 21-07-2005, 12:57   #13 (permalink)
Freizeitflasher
 
Benutzerbild von Alphanimal
 
Registriert seit: Jun 2004
Ort: Niederösterreich
Beiträge: 615
dem MC nur 5 frames
im 2.:
ActionScript:
  1. st = getTimer();

im 3.:
ActionScript:
  1. if(getTimer()-st > 5*60000){
  2. gotoAndStop(5);
  3. }

im 4.:
ActionScript:
  1. gotoAndPlay(3);

aber wie gesagt...
jetzt mach ich keine frame-loops mehr. hab gelernt dass es mit AS auch anderst geht

früher hätte ich es so gemacht, als ich noch AS anfänger war.
__________________
Some Flash Worx
Alphanimal ist offline   Mit Zitat antworten
Alt 21-07-2005, 19:33   #14 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Da ist doch trotzdem setInterval noch das beste, und so umständlich ist das nicht, auch nicht für einen Anfänger.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 21-07-2005, 21:34   #15 (permalink)
Freizeitflasher
 
Benutzerbild von Alphanimal
 
Registriert seit: Jun 2004
Ort: Niederösterreich
Beiträge: 615
na ok...
hast mich überzeugt!

setTimeout fehlt in flash...
__________________
Some Flash Worx
Alphanimal 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 03:54 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele