Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-11-2011, 08:12   #1 (permalink)
Neuer User
 
Benutzerbild von Danjy
 
Registriert seit: Apr 2010
Beiträge: 122
Monitorauflösung wird falsch erkannt...

Hey zusammen,

ich hole mir momentan die aktuelle Monitorauflösung mittels
PHP-Code:
Capabilities.screenResolutionX
Capabilities
.screenResolutionY 
allerdings habe ich das Problem/Vergnügen zwei Monitore zu haben und wenn ich mein Browser mit der SWF auf meinen zweiten Monitor schiebe bekomme ich immer nur die Monitorauflösung des ersten Monitors..

Hat jemand eine Idee was ich anders machen kann? oder Ob es eine Funktion gibt die darauf achtet?!

Ich habe leider nichts gefunden - Vielen Dank im voraus
Danjy ist offline   Mit Zitat antworten
Alt 03-11-2011, 09:07   #2 (permalink)
Neuer User
 
Benutzerbild von Herzenslicht
 
Registriert seit: Aug 2006
Ort: Hamburg
Beiträge: 736
Hi,
Hier ein Beispiel, wie Du einen MC scalierst...
(Schau dir mal die Werte an)

PHP-Code:
Stage.scaleMode "noScale";
//Skalierung für die ganze Bühne abschalten. 
Stage.align "TL";
//Die aktuelle Ausrichtung der SWF-Datei im Player oder Browser. In diesem Fall TL(Top-Left).  
lstrn = new Object();
//Listener erstellen. 
lstrn.onResize = function() {
    
//Beim verändern der Bühnengröße... 
    
scaleMC._x Stage.width/2;
    
//den zu skalierenden MovieClip in die Mitte des Flash Films setzen. 
    
scaleMC._y Stage.height/2;
    
//den zu skalierenden MovieClip in die Mitte des Flash Films setzen. 
    
scaleMC._width Stage.width;
    
//die Breite des MovieClip = die Breite der Bühne. 
    
scaleMC._height Stage.height;
    
};
Stage.addListener(lstrn);
//Listener der Bühne hinzufügen. 
lstrn.onResize();
//sofort die Funktion aufrufen. 
__________________
_________________
Liebe Grüße
Herzenslicht ist offline   Mit Zitat antworten
Alt 03-11-2011, 09:24   #3 (permalink)
Neuer User
 
Benutzerbild von Danjy
 
Registriert seit: Apr 2010
Beiträge: 122
Hey, Danke erst mal für deine Antwort, allerdings benötige ich die Monitorauflösung des Monitors (Mir geht es momentan nicht um das Scalieren von MC's)..

Ich habe es jetzt mit JS gelöst, was ich eigentlich vermeiden wollte - aber es scheint als würde es nur in AIR-Anwendungen so funktionieren wie ich es brauche.. Übrigens arbeite ich mit AS3...

Trotzdem Danke
Danjy ist offline   Mit Zitat antworten
Alt 03-11-2011, 09:54   #4 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von Danjy Beitrag anzeigen
... allerdings benötige ich die Monitorauflösung des Monitors..
Darf man fragen wofür Du das brauchst (wenn es um keine Offline-Anwendung geht und Du nicht im FullScreen-Modus bist)?!
Du wirst doch nicht so ein Nutzer-vergewaltigendes, sich selbst skalierendes PopUp basteln wollen?

Zitat:
Zitat von Danjy Beitrag anzeigen
Ich habe es jetzt mit JS gelöst, was ich eigentlich vermeiden wollte - aber es scheint als würde es nur in AIR-Anwendungen so funktionieren wie ich es brauche..
Eine Methode wäre in den FullScreenModus zu gehen und dann stage.stageWidth und stage.stageHeight auszulesen...

@Herzenslicht:
Zitat:
Zitat von Danjy Beitrag anzeigen
Übrigens arbeite ich mit AS3...
Wie man unschwer an dem Forenbereich erkennen kann, in dem Danjy gepostet hat
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (03-11-2011 um 09:57 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 03-11-2011, 10:05   #5 (permalink)
Neuer User
 
Benutzerbild von Herzenslicht
 
Registriert seit: Aug 2006
Ort: Hamburg
Beiträge: 736
@ Martin, schön wieder einmal etwas von Dir zu "lesen".

Zitat:
Eine Methode wäre in den FullScreenModus zu gehen und dann stage.stageWidth und stage.stageHeight auszulesen...
Siehe oben.

Zitat:
@Herzenslicht:
Zitat:
Zitat von Danjy
Übrigens arbeite ich mit AS3...
Wie man unschwer an dem Forenbereich erkennen kann, in dem Danjy gepostet hat
"stageWidth" und "stageHeight" sollten doch auch in As3 gehen oder liege ich da falsch ?

Es diente nur als Beispiel, mit dem Verweis auf die Werte (stageWidth + stageHeight)
__________________
_________________
Liebe Grüße
Herzenslicht ist offline   Mit Zitat antworten
Alt 03-11-2011, 10:20   #6 (permalink)
Neuer User
 
Benutzerbild von Danjy
 
Registriert seit: Apr 2010
Beiträge: 122
Also... Um ehrlich zu sein habe ich mich da in etwas verrannt :P

@Martin Kraft:
Nein ich arbeite nicht an einem solchen von dir schön beschriebenen Popup :P

@Herzenslicht:
Doch stage.stageHeight etc geht natürlich auch in AS3 :P sollte nicht böse gemeint sein.


Ich arbeite an einer Flash-Homepage die mit 100%x100% in den Browser eingebettet wird.

Hier frage ich beim betreten der Homepage ab welche Monitorauflösung der User hat - dementsprechend reagiere ich auf den Film und gebe einen stage.scaleMode an in etwas so
PHP-Code:
if(monitorHeight 1000){
    
stage.scaleMode "noScale";
    
scaleOrientation 1;
}else if(
monitorHeight 1000 && monitorWidth 1500){
    
stage.scaleMode "showAll";
    
scaleOrientation 2;
}else{
    
stage.scaleMode "noBorder";
    
scaleOrientation 3;

um alle Monitorauflösungen abzufangen...

Natürlich ich weiß das es totaaal falsch ist.. aber ich komme aus der Sache nicht mehr raus und muss es einfach so lösen weil ich sonst viel zu viel Script umschreiben müsste..

Ich weiß momentan einfach nicht mehr wirklich weiter und versuche jetzt mittels innere Höhe & Breite des Browserfensters und Monitorauflösung alles zu Positionieren..

Wenn jemand eine bessere Lösung hat um mir da weiter zu helfen wäre ich sehr sehr Dankbar..
Danjy ist offline   Mit Zitat antworten
Alt 03-11-2011, 10:26   #7 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von Herzenslicht Beitrag anzeigen
"stageWidth" und "stageHeight" sollten doch auch in As3 gehen oder liege ich da falsch ?
In AS3 schon, aber in AS2 nicht:

In AS1/2 sind width und height statische Eigenschaften der Klasse Stage:
PHP-Code:
Stage.width Stage.height
In AS3 hingegen gehören stageWidth und stageHeight zu einer Instanz der Klasse Stage, die in der Eigenschaft stage jedes untergeordneten Anzeigeobjekts gespeichert ist, während width und height die Größe der Bühneninhalte beschreibt:
PHP-Code:
stage.stageWidth stage.stageHeight
Das mögen auf den ersten Blick nur kleine Unterschiede sein, aber gerade Anfänger, die später mal auf diesen Thread stoßen, kann es wahnsinnig verwirren, wenn im AS3-Bereich kommentarlos AS1/2-Scripts gepostet werden (und umgekehrt). Wir sollten das daher vermeiden!
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (03-11-2011 um 10:27 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 03-11-2011, 10:28   #8 (permalink)
Neuer User
 
Benutzerbild von Herzenslicht
 
Registriert seit: Aug 2006
Ort: Hamburg
Beiträge: 736
Wieder etwas gelernt - Danke.
__________________
_________________
Liebe Grüße
Herzenslicht ist offline   Mit Zitat antworten
Alt 03-11-2011, 10:33   #9 (permalink)
Neuer User
 
Benutzerbild von padavan
 
Registriert seit: Apr 2002
Beiträge: 496
die Monitorhöhe/breite wird dir nichts helfen - die ist doch garnicht entscheidend für die Größe deiner Bühne

demnach verwende zum unterscheiden der Skalierungsmethoden stage.stageHeight/stageWidth
__________________
Grafik - Webdesign - Programmierung - www.thsc.at
Adventkalender 2011 advent.wien.info/de
Jobspace - Universum der Lehrstellen www.jobspace.at
padavan ist offline   Mit Zitat antworten
Alt 03-11-2011, 10:38   #10 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von Danjy Beitrag anzeigen
Hier frage ich beim betreten der Homepage ab welche Monitorauflösung der User hat
Mit diesem Vorgehen wirst Du aber bei zwei Monitoren immer Probleme haben: Was wenn der Nutzer die Seite auf dem kleineren öffnet und dann auf den größeren zieht (oder umgekehrt)?

Zitat:
Zitat von Danjy Beitrag anzeigen
Wenn jemand eine bessere Lösung hat um mir da weiter zu helfen wäre ich sehr sehr Dankbar..
Ich würde Dir daher empfehlen einen RESIZE-Listener zu registrieren und dann die Inhalte umzupositionieren (alles andere ist gurkig):
PHP-Code:
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;

stage.scaleMode StageScaleMode.NO_SCALE;
stage.align StageAlign.TOP_LEFT;

stage.addEventListener(Event.RESIZEresizeHandler);
resizeHandler();

private function 
resizeHandler(event:Event):void {
    
// Inhalte neu positionieren
    
    // oder ggf. die komplette Stage skalieren:
    
stage.scaleX stage.scaleY Math.min(stage.stageWidth root.loaderInfo.widthstage.stageHeight root.loaderInfo.height);

__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (03-11-2011 um 10:39 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 03-11-2011, 10:50   #11 (permalink)
Neuer User
 
Benutzerbild von padavan
 
Registriert seit: Apr 2002
Beiträge: 496
Zitat:
Zitat von Martin Kraft Beitrag anzeigen
Mit diesem Vorgehen wirst Du aber bei zwei Monitoren immer Probleme haben: Was wenn der Nutzer die Seite auf dem kleineren öffnet und dann auf den größeren zieht (oder umgekehrt)?
und bei Usern die den Browser nicht im Vollbild verwenden.
und noch dazu benötigt jedes System und jeder Browser verschieden viel Platz (Taskleiste, Browserfenster, Menüzeilen etc...)

wenn ich die Aufgabenstellung richtig verstehe ist die Monitorausflösung hier sinnlos
__________________
Grafik - Webdesign - Programmierung - www.thsc.at
Adventkalender 2011 advent.wien.info/de
Jobspace - Universum der Lehrstellen www.jobspace.at
padavan ist offline   Mit Zitat antworten
Alt 03-11-2011, 11:01   #12 (permalink)
Neuer User
 
Benutzerbild von Danjy
 
Registriert seit: Apr 2010
Beiträge: 122
@padavan:
Du hast vollkommen recht!
Ich weiß Theoretisch (und Praktisch) ist das Humbug - nur muss ich mich jetzt erst einmal für eines entscheiden und die Entscheidung liegt hier auf .. "tja wenn der User diese Größe zur Verfügung hat aber nicht nutzt sieht er nur die Hälfte".. <- Völlig Bescheiden.. ich weiß, Problem ist nur das ich momentan echt wenig Zeit habe und im nach hinein wenn das Projekt Online ist noch mal überarbeiten werde.

@Martin Kraft:
Ja ein REZISE-Handler ist schon eingebaut nur da ich mir momentan echt nicht sicher bin wie ich am schnellsten und vor allem am "saubersten" weiter komme muss ich mir gerade nochmal ein bisschen Gedanken über das Konzept machen...

Fakt ist das ich im Endeffekt den ganzen Kram nochmal neu aufsetzen muss.. mit Intelligenter scale & resize-Geschichte da ich das Projekt bestimmt vor einem halben Jahr angefangen habe und seid dem sehr viel in Flash und AS3 dazugelernt habe.. Würde ich heute neu anfangen würde ich es komplett anders machen...
Da das Projekt aber sehr bald online gehen muss, muss ich ersteinmal eine Lösung finden und dann etwas nachliefern..
Danjy ist offline   Mit Zitat antworten
Alt 03-11-2011, 11:14   #13 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von Danjy Beitrag anzeigen
Fakt ist das ich im Endeffekt den ganzen Kram nochmal neu aufsetzen muss.. mit Intelligenter scale & resize-Geschichte da ich das Projekt bestimmt vor einem halben Jahr angefangen habe und seid dem sehr viel in Flash und AS3 dazugelernt habe.. Würde ich heute neu anfangen würde ich es komplett anders machen...
Da das Projekt aber sehr bald online gehen muss, muss ich ersteinmal eine Lösung finden und dann etwas nachliefern..
Da wir nicht wissen, wie Deine aktuellen RESIZE-Funktionen aussehen, können wir Dir da nicht wirklich weiterhelfen.

Wenn aber erstmal alles so bleiben soll, wie es ist, kannst Du ja Deinen Code vom Anfang in angepasster Form in einen RESIZE-Listener schreiben und hoffen, dass es funktioniert:
PHP-Code:
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;

var 
scaleOrientation:uint;

stage.addEventListener(Event.RESIZEresizeHandler);
resizeHandler();

private function 
resizeHandler(event:Event null):void {
    
// Dein angepasster alter Code:
    
if(stage.stageHeight 1000){
        
stage.scaleMode StageScaleMode.NO_SCALE;
        
scaleOrientation 1;
    } else if(
stage.stageWidth 1500){
        
stage.scaleMode StageScaleMode.SHOW_ALL;
        
scaleOrientation 2;
    } else {
        
stage.scaleMode StageScaleMode.NO_BORDER;
        
scaleOrientation 3;
    }  

__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (03-11-2011 um 11:16 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 03-11-2011, 13:41   #14 (permalink)
Neuer User
 
Benutzerbild von Danjy
 
Registriert seit: Apr 2010
Beiträge: 122
@Martin Kraft:

Ja im Resize-Handler war nicht viel zu sehen - dort habe ich nur den footer neu Positioniert.
PHP-Code:
stage.addEventListener(Event.RESIZEresizeHandler);
function 
resizeHandler(evt:Event){
    
getInnerSize();
    
footer_elements.= (innerHeight 35);

Ich werde es jetzt erstmal so machen wie du in deinem Code gezeigt hast..
Vielleicht fällt mir ja noch was besseres ein bis ich es neu baue :P

Ich danke euch!
Danjy 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Flash 8] If wird nicht erkannt enky Flash Einsteiger 7 27-07-2009 13:20
[Flash CS3] id wird nicht erkannt zlab Flash Einsteiger 2 19-12-2008 14:36
AVI wird nicht erkannt. Darkslide Flash Einsteiger 14 31-12-2006 16:39
'<' Zeichen im dyn. Text wird falsch erkannt: mobotter Flash MX 1 25-05-2004 15:07
HDD wird als DVD-LW erkannt projecktx Am Rande 5 15-03-2004 11:57


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

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


Copyright ©1999 – 2012 Marc Thiele