• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-05-2009, 13:07   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 60
Maus außerhalb des Flashfilms

Gibt es eine Möglichkeit abzufragen, ob der Mauszeiger außerhalb des Flashfilms liegt? _root._xmouse und _root.ymouse liefern dann nur noch die Werte der letzten Position, als der Mauszeiger noch innerhalb des Flashfilmes lag.
pinoccio64 ist offline   Mit Zitat antworten
Alt 24-05-2009, 13:08   #2 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.305
z.B. über einen hitTest könnte man doch prüfen ob die maus noch über einem bestimmten bereich, also in dem fall der swf ist...

cheers, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 24-05-2009, 13:34   #3 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
sewrvus
so in etwa!
PHP-Code:
var indi:Boolean null;
var 
mL:Object = new Object();
mL.onMouseMove = function() {
   if (
buehne.hitTest(_xmouse_ymousefalse)) {
      
_root.indi true;
   } else {
      
_root.indi false;
   }
};
Mouse.addListener(mL); 
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 24-05-2009, 14:51   #4 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 60
Danke für die Ideen, ist aber in meinem Fall nicht möglich. Ich verwende ein eigenes Symbol als Mauszeiger, das im Flashfilm stehen bleibt, sobald die Maus aus dem Film heraus bewegt wird. Es wäre dann also immer eine Kollision gegeben.
pinoccio64 ist offline   Mit Zitat antworten
Alt 24-05-2009, 15:27   #5 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.305
Zitat:
Zitat von pinoccio64 Beitrag anzeigen
Danke für die Ideen, ist aber in meinem Fall nicht möglich. Ich verwende ein eigenes Symbol als Mauszeiger, das im Flashfilm stehen bleibt, sobald die Maus aus dem Film heraus bewegt wird. Es wäre dann also immer eine Kollision gegeben.
das stimmt so aber icht. hier gibts ja einen hitTest mit einem object "buehne" und den maus koordinaten...
wo da ein künstlich erzeugter mauszeiger sich grad aufhält sollte also vollkommen egal sein!?

statt dem onMouseMove kannste es auch mal mit einer enterFrame schleife probieren... ist zwar nicht so sauber, aber dafür kriegste immer ein ergebnis, auch wenn sich die maus grad nict bewegt.

cheers & grüße an rusty,
sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!

Geändert von salazar (24-05-2009 um 15:29 Uhr)
salazar ist offline   Mit Zitat antworten
Alt 24-05-2009, 18:03   #6 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 60
Zitat:
Zitat von salazar Beitrag anzeigen
hier gibts ja einen hitTest mit einem object "buehne" und den maus koordinaten...
Ich habe das nun getestet. Der hitTest mit den Mauskoordinaten und einem Objekt, das sich über das gesamte Dokument erstreckt wie oben beschrieben, ergibt bei mir immer "wahr", egal ob sich die Maus innerhalb oder außerhalb des Filmes befindet. Auch unerheblich ob ich den originalen Zeiger ausblende oder nicht. Außerhalb des Flash-Dokumentes wird ja kein hitTest vorgenommen. Das ist ja das Problem.

Geändert von pinoccio64 (24-05-2009 um 18:07 Uhr)
pinoccio64 ist offline   Mit Zitat antworten
Alt 26-05-2009, 11:48   #7 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 60
Vielleicht kommt ja eine Idee, wenn ich noch etwas mehr Informationen gebe, worum es geht:

Ich programmiere ein kleines Spiel, bei dem die Karte, die sich weit über den sichtbaren Film erstreckt, gescrollt werden kann, indem der Spieler die Maus an den Rand des Flashfilms führt. Wenn der Spieler nun Browserbuttons ansteuert und zuvor den Rand der Spielkarte erreicht hat, so scrollt das Spiel immer weiter, solange sich der Spieler in den Browsermenus befindet. Und Actionscript fragt keine Mauskoordinaten mehr ab und auch keinen Hittest, sobald sich die Maus außerhalb des Filmes befindet, so dass immer munter weitergescrollt wird, wenn sich die Maus zuvor am Rand des Filmes befand.

Man könnte natürlich auch Schalter für das Scrollen erstellen. Ist aber bei diesem Spiel etwas unpraktisch, da der Spieler recht große Elemente in der Karte anbauen kann, die dann als Mauszeiger fungieren. Und immer den Mauszeiger zu wechseln, wenn er über die Scrollschalter fährt, sieht sehr nervös und auch nicht gut aus.

Sicherlich gibt es jemanden, der das Problem schon einmal gelöst hat?
pinoccio64 ist offline   Mit Zitat antworten
Alt 26-05-2009, 12:21   #8 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.305
eine ganz andere möglichkeit wäre es noch abzufragen ob sich die maus überhaupt bewegt. also das man z.B. für x sekunden prüft ob sich die maus pos nicht mehr verändert hat und dann entsprechend reagiert...
und noch die frage hinterher wie du die andere idee mit dem hitTest getestet hast...
haste das nur in der lashumgebung mal ausprobiert, oder auch im browser?

cheers, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!

Geändert von salazar (26-05-2009 um 12:22 Uhr)
salazar ist offline   Mit Zitat antworten
Alt 27-05-2009, 19:49   #9 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 60
Zitat:
Zitat von salazar Beitrag anzeigen
eine ganz andere möglichkeit wäre es noch abzufragen ob sich die maus überhaupt bewegt. also das man z.B. für x sekunden prüft ob sich die maus pos nicht mehr verändert hat und dann entsprechend reagiert...
Ein interessanter Gedanke. Wer allerdings mit recht ruhiger Hand länger scrollt (und das Spielfeld ist recht groß) bleibt irgend wann stehen, bis er wieder ein bisschen mit der Maus ruckelt. Und wer das Flash-Dokument mit der Maus verlässt, scrollt eine Weile weiter, bis es irgendwann aufhört. Ich werde das mal testen und bin aber auch für andere Ideen weiter offen.

Zitat:
Zitat von salazar Beitrag anzeigen
und noch die frage hinterher wie du die andere idee mit dem hitTest getestet hast...
haste das nur in der lashumgebung mal ausprobiert, oder auch im browser?
Natürlich im Browser. Wieso? Kommst Du auf andere Ergebnisse?
pinoccio64 ist offline   Mit Zitat antworten
Alt 25-02-2010, 13:09   #10 (permalink)
--------------------
 
Benutzerbild von ShockeR.1
 
Registriert seit: Jul 2001
Ort: Dortmund
Beiträge: 299
Das gleiche Problem

Hallo,
ich habe ja das gleiche Problem und wollte mal fragen ob Du es bereits gelöst hast? Mit hitTest() bin ich leider auch nicht weitergekommen, zumindest nicht sobald ich den hitTest über die gesamte Fläche des Flashfilms mache.

Hier mal mein Ansatz, funktioniert leider nur innerhalb des Flashfilms, also wenn der MC "hitTestArea" kleiner ist als die Bühne und ich innerhalb des Flashs den MC verlasse funktionert es, ist der MC so gross wie die Stage ist der hitTest() auch 'true' wenn ich das Flash verlasse. Die Mauskoordinaten bleiben innerhalb vom Flash dann bei der letzten Position stehen.

PHP-Code:
checkMouseOutID setInterval(checkMouseOutmouseOutsideTimer);
function 
checkMouseOut(){
    
clearInterval(autoFadeOutAddContentID);
    
autoFadeOutAddContentID null;
    
mouseOutside hitTestArea.hitTest(_root._xmouse_root._ymousefalse);
    
    if(!
mouseOutside){
        
autoFadeOutAddContentID setInterval(autoFadeOutAddContentautoFadeOutAddContentTimer);
    }

Gibt es denn keine andere Möglichkeit das Ganze mit AS zu lösen? Eine Alternative wäre ja noch mit JavaScript zu prüfen ob sich die Maus ausserhalb des Flashs befindet und dementsprechend dem Film via ExternalInterface Bescheid zu geben. Ich würde aber eine flashinterne Variante, falls es eine gibt, bevorzugen.

Ideen?
__________________
www.shocker.de
ShockeR.1 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:22 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele