1&1 DSL
Flashhilfe.de - Flash Community

Mausrad im Vollbildmodus auf Mac [Flash 9]

Forum > ActionScript 2.0 > Mausrad im Vollbildmodus auf Mac

 


AntwortenRegistrieren Seite1 2

 30.04.2010, 14:42 
Beiträge: 38
Registriert: Feb 2006

Mausrad im Vollbildmodus auf Mac
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
 30.04.2010, 14:44Re1
Beiträge: 38
Registriert: Feb 2006

Themenautor/in

Und hier das Problem online:

http://www.clausernst.com/mousewheel
 30.04.2010, 16:25Re2
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6938
Wohnort: München
Registriert: Jan 2002

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?
Flex Freelancer || Flashhilfe @ Twitter || XING Profil
 
nicht sichtbar bei eingeloggten Mitgliedern
 30.04.2010, 16:30Re3
Beiträge: 38
Registriert: Feb 2006

Themenautor/in

In Windows rollt es einwandfrei, Fullscreen und "Normal"...
Ich lese mir das mal durch.
 30.04.2010, 16:31Re4
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6938
Wohnort: München
Registriert: Jan 2002

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
Flex Freelancer || Flashhilfe @ Twitter || XING Profil
 30.04.2010, 16:33Re5
Beiträge: 38
Registriert: Feb 2006

Themenautor/in

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

 
nicht sichtbar bei eingeloggten Mitgliedern1&1 Webhosting
 30.04.2010, 16:42Re6
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6938
Wohnort: München
Registriert: Jan 2002

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.
Flex Freelancer || Flashhilfe @ Twitter || XING Profil
 30.04.2010, 16:58Re7
Beiträge: 38
Registriert: Feb 2006

Themenautor/in

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

 30.04.2010, 17:08Re8
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6938
Wohnort: München
Registriert: Jan 2002

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.
Flex Freelancer || Flashhilfe @ Twitter || XING Profil
 30.04.2010, 18:53Re9
Beiträge: 38
Registriert: Feb 2006

Themenautor/in

"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?
 30.04.2010, 19:09Re10
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6938
Wohnort: München
Registriert: Jan 2002

Kannst Du das gesamte Test-Projekt inkl. js mal uploaden?
Flex Freelancer || Flashhilfe @ Twitter || XING Profil
 30.04.2010, 19:22Re11
Beiträge: 38
Registriert: Feb 2006

Themenautor/in

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
 30.04.2010, 21:17Re12
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6938
Wohnort: München
Registriert: Jan 2002

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ß ;)
Flex Freelancer || Flashhilfe @ Twitter || XING Profil
 30.04.2010, 21:35Re13
Beiträge: 38
Registriert: Feb 2006

Themenautor/in

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!
 30.04.2010, 21:39Re14
Beiträge: 38
Registriert: Feb 2006

Themenautor/in

Kannst Du aber vielleicht Dein as3 Ergebnis zeigen? Dann habe ich schon mal was zum üben.
 30.04.2010, 21:49Re15
Beiträge: 38
Registriert: Feb 2006

Themenautor/in

ah, hat sich erledigt, ist ja ein Beispiel auf pixelbreaker.com zu finden.
 
Themen
Ähnliche Beiträge zum Thema
 
AntwortenRegistrieren Seite1 2

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.
Partner Webseiten: DesignerInAction.de   Designnation.de   Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   PSD-Tutorials.de   Tutorials.de

Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2012 Sebastian Wichmann - Flashhilfe.de