Flashhilfe.de - Flash Community

Mausrad im Vollbildmodus auf Mac [Flash 9]

 


AntwortenRegistrieren Seite1 2  

ClausmitZeh#1
Benutzerbild von ClausmitZeh
Beiträge: 38
Registriert: Feb 2006

30.04.2010, 14:42

Da ich mit meinem Latein am Ende bin frage ich mal in die Runde.

Problem:
Ich versuche gerade ein Mausrad auf dem Mac zum Laufen zu bringen. Das klappt auch wunderbar! Nur sobald ich in den Vollbildmodus wechsle funktioniert es nicht mehr.

Die Mausradfunktionalität wurde mit der MouseWheel Klasse von pixelbreaker umgesetzt

Das ist das Script:


ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import flash.display.StageDisplayState;
import com.pixelbreaker.ui.MouseWheel;

Stage.align = 'tl';
Stage.scaleMode = "noScale";

var evt:Object = new Object();
MouseWheel.addListener(evt);
evt.onMouseWheel = function(delta:Number) {
   _root.tf.text = delta;
};

var stageListener:Object = new Object();
Stage.addListener(stageListener);

stageListener.onFullScreen = function(bFull:Boolean) {
   if (bFull) {
   _root.tf2.text = "FUNKTIONIERT NICHT ...........";

   }else{
   _root.tf2.text = "MAUSRAD FUNKTIONIERT ...........";

   }
};

btnFullScreen.onRelease = function() {
   if (Stage.displayState == "fullScreen") {
      Stage.displayState = "normal";
   } else {
      Stage.displayState = "fullScreen";
   }
};




Hat irgendjemand eine Idee?
Danke im Voraus! Claus
Schlagwörter: Mac, MouseWheel
ClausmitZeh#2
Benutzerbild von ClausmitZeh
Beiträge: 38
Registriert: Feb 2006

Themenautor/in

30.04.2010, 14:44

Und hier das Problem online:

http://www.clausernst.com/mousewheel
Sebastian#3
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

30.04.2010, 16:25

Evtl. hat es damit was zu tun:

Users cannot enter text in text input fields while in full-screen mode. All keyboard input and key-related ActionScript is disabled while in full-screen mode, with the exception of the keyboard shortcuts that take the viewer out of full-screen mode.

Funktioniert es wenn Du das Movie unter Windows öffnest?
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
ClausmitZeh#4
Benutzerbild von ClausmitZeh
Beiträge: 38
Registriert: Feb 2006

Themenautor/in

30.04.2010, 16:30

In Windows rollt es einwandfrei, Fullscreen und "Normal"...
Ich lese mir das mal durch.
Sebastian#5
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

30.04.2010, 16:31

Habe gerade ein wenig recherchiert und so wie es aussieht sollte es auch in fullscreen mode funktionieren.

Versuchs mal mit:
ActionScript:
1
2
3
import com.pixelbreaker.ui.osx.MacMouseWheel;

MacMouseWheel.setup( stage );


Ein paar Links zum Thema MouseWheel und Mac.
- AS3.0 MouseWheel on Mac OS X
- Flash MouseWheel Implementations for Mac OS X
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
ClausmitZeh#6
Benutzerbild von ClausmitZeh
Beiträge: 38
Registriert: Feb 2006

Themenautor/in

30.04.2010, 16:33

der Pfad schaut aber nach der as3 Klasse aus...
Das kann ich leider noch nicht, :(
Geändert von ClausmitZeh am 30.04.10 um 16:33 Uhr
Sebastian#7
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

30.04.2010, 16:42

Na dann ist das doch ein guter Grund umzusteigen ;)
Hehe, ne sorry. Hatte nicht daran gedacht das Du eine AS2.0 Lösung suchst und habe auch gerade nichts gefunden das dir weiter helfen würde.

Nachtrag:
Das Problem wird wahrscheinlich am Javascript liegen. Da solltest du mal ansetzen. Z.B. einen Alert in JS einfügen um zu schauen ob Flash überhaupt noch mit JavaScript kommuniziert.
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
ClausmitZeh#8
Benutzerbild von ClausmitZeh
Beiträge: 38
Registriert: Feb 2006

Themenautor/in

30.04.2010, 16:58

Ich muss DEFINITIV as3 anfangen... Also im Vollbild wird kein alert ausgegeben, im Normalmode schon.
Geändert von ClausmitZeh am 30.04.10 um 17:01 Uhr
Sebastian#9
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

30.04.2010, 17:08

Ok. Dann schau mal wie die AS Klasse mit JavaScript kommuniziert und versuch einfach mal eine Test Javascript Funktion aus Flash auf zu rufen.

Versuchs mal mit:
ActionScript:
1
2
3
4
ExternalInterface
fscommand
oder auch:
getURL('javascript:');

Zu dem Spiel mal mit
ActionScript:
1allowScriptAccess
rum. Z.B. mal auf always setzen, oder auch mal ganz entfernen.
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
ClausmitZeh#10
Benutzerbild von ClausmitZeh
Beiträge: 38
Registriert: Feb 2006

Themenautor/in

30.04.2010, 18:53

"schau mal wie die AS Klasse mit JavaScript kommuniziert"
so:
PHP:
1
2
            ExternalInterface.addCallback( "externalMouseEvent", MouseWheel, MouseWheel.externalMouseEvent );   



Ich habe jetzt ein wenig rumgetestet, also mit ExternalInterface + getUrl funktionieren Funktionsaufrufe auch im Vollbild. Er verlässt zwar sofort den Vollbildmodus, was wahrscheinlich an der alert-box liegt.

Blöderweise hilft mir das nicht viel weiter da ich die Mausklasse nicht wirklich verstehe:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import flash.external.ExternalInterface;
import com.pixelbreaker.event.EventBroadcaster;
/**
* @author Gabriel Bucknall
*
* Class that supports using the mouseWheel on Mac OS, requires javascript class
* swfmacmousewheel.js
*
* Safari PC support added by Robert M. Hall, based on code/suggestions from Richard "RaillKill" Rodney of Hypermedia - http://railkill.free.fr/
*/

class com.pixelbreaker.ui.MouseWheel
{
   private static var isMac:Boolean;
   private static var macBroadcaster:EventBroadcaster;
   private static var _browser:String;
   
   private static function main():Void
   {
      isMac = System.capabilities.os.toLowerCase().indexOf( "mac" ) != -1;
      
      _browser = _root.browser.toUpperCase();
         if ( _browser == null ) { _browser = "browser" }
      
      if( isMac || _browser == "SAFARI" )
      {
         macBroadcaster = new EventBroadcaster();
         ExternalInterface.addCallback( "externalMouseEvent", MouseWheel, MouseWheel.externalMouseEvent );   
      }
   }
   /**
    * Add a listener for using the mouseWheel
    * obj param must have an "onMouseWheel" method to be called.
    */

   public static function addListener( obj:Object )
   {
      if( !isMac ) MouseWheel.main();
      if( isMac || _browser == "SAFARI" )
      {
         macBroadcaster.addListener( obj );
      }else{
         Mouse.addListener( obj );   
      }
   }
   
   /**
    * Remove a listener
    */

   public static function removeListener( obj:Object ):Void
   {
      if( isMac || _browser == "SAFARI" )
      {
         macBroadcaster.removeListener( obj );
      }else{
         Mouse.removeListener( obj );   
      }
   }
   
   private static function externalMouseEvent( delta:Number ):Void
   {
      macBroadcaster.broadcastMessage( "onMouseWheel", delta );
   }
}


Was mach ich denn jetzt, hat noch jemand einen Tipp?
Sebastian#11
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

30.04.2010, 19:09

Kannst Du das gesamte Test-Projekt inkl. js mal uploaden?
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
ClausmitZeh#12
Benutzerbild von ClausmitZeh
Beiträge: 38
Registriert: Feb 2006

Themenautor/in

30.04.2010, 19:22

Im Anhang ist der Projektordner.

Die Fladatei ist zu groß zum hochladen, ist aber nur ein Frame mit Button, hier das Script:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import flash.display.StageDisplayState;
import flash.external.ExternalInterface;
import com.pixelbreaker.ui.MouseWheel;
import flash.net.navigateToURL;

Stage.align = 'tl';
Stage.scaleMode = "noScale";

var evt:Object = new Object();
MouseWheel.addListener(evt);
evt.onMouseWheel = function(delta:Number) {
    _root.tf.text = delta;
};

var stageListener:Object = new Object();
Stage.addListener(stageListener);

stageListener.onFullScreen = function(bFull:Boolean) {
    if (bFull) {
        _root.tf2.text = "MOUSEWHEEL DOES NOT WORK ...........";
        ExternalInterface.call('doSomething()');
        //getURL("javascript:doSomething()");
    } else {
        _root.tf2.text = "MOUSEWHEEL WORKS FINE ...........";
    }
};

btnFullScreen.onRelease = function() {
    if (Stage.displayState == "fullScreen") {
        Stage.displayState = "normal";
    } else {
        Stage.displayState = "fullScreen";
    }
};




Vielen Dank!

Angehängte Dateien:
Komprimierte Datei Flash Mausrad Problem.zip18.30 KB
Sebastian#13
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

30.04.2010, 21:17

Hm. Habe jetzt mal die AS3 Variante mit neuem JS geladen und dann einfach dein swf eingebunden. Mit der AS3 swf funktioniert es, mit Deiner nicht. Konnte das Problem bis jetzt nicht identifizieren und rate Dir einfach mal zu AS3. - wenn man weis das es da funktioniert, macht das Suchen unter AS2 keinen Spaß ;)
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
ClausmitZeh#14
Benutzerbild von ClausmitZeh
Beiträge: 38
Registriert: Feb 2006

Themenautor/in

30.04.2010, 21:35

Hm, na gut, führt wohl kein Weg daran vorbei. Das kann ja was werden..., ab dem nächsten Projekt muss es dann wohl as3 sein. Danke trotzdem für die Bemühungen! Und einen guten Start in den Mai!
ClausmitZeh#15
Benutzerbild von ClausmitZeh
Beiträge: 38
Registriert: Feb 2006

Themenautor/in

30.04.2010, 21:39

Kannst Du aber vielleicht Dein as3 Ergebnis zeigen? Dann habe ich schon mal was zum üben.
ClausmitZeh#16
Benutzerbild von ClausmitZeh
Beiträge: 38
Registriert: Feb 2006

Themenautor/in

30.04.2010, 21:49

ah, hat sich erledigt, ist ja ein Beispiel auf pixelbreaker.com zu finden.

AntwortenRegistrieren Seite1 2  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2020 Sebastian Wichmann - Flashhilfe.de