| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Oct 2009
Beiträge: 39
| Anwendung im Vollbildmodus ausführen und gleichzeitig MCs ausrichten
Hallo zusammen, ich habe ein Problem wofür ich keine Lösung finde. Und zwar geht es darum, dass meine Flash-Datei hochskaliert werden soll, wenn der Vollbildmodus aktiviert wird. Das ist zunächst kein Problem, jedoch sollen gleichzeitig einige MovieClips an dem rechten und linken Bildschirmrand ausgerichtet werden. Sinnvoll soll dies insbesondere für Bildschirme im Breitbildformat sein. Beispielsweise befindet sich am rechten Bildschirmrand ein MovieClip. Wird die Anwendung dann in den Vollbildmodus geschaltet soll das MovieClip anschließend wieder am rechten Bildschirmrand ausgerichtet werden. Die Anwendung hat eine Auflösung von 800x600 Pixel und wenn diese jetzt im Vollbildmodus bei einer Bildschirmauflösung von bsp. 1280 x 800 Pixel dargestellt wird, muss dieser MovieClip manuell per ActionScript versetzt werden. Mein Ansatz sieht folgendermaßen aus: Code:
stage.scaleMode = StageScaleMode.SHOW_ALL;
stage.align = StageAlign.TOP_LEFT;
vollbild_mc.addEventListener(MouseEvent.CLICK, onMouseClick);
function onMouseClick(e:Event) {
stage.displayState = StageDisplayState.FULL_SCREEN;
rechteck_mc.x = stage.fullScreenWidth;
} Und hier ist der Punkt an dem ich nicht weiterkomme. Wie kann ich den MovieClip korrekt positionieren? Für Ideen und Tipps bin ich dankbar |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: May 2010
Beiträge: 87
|
Hi, hast du mal daran gedacht das resizen unabhängig vom fullscreen modus zu machen? Die Stage feuert RESIZE-Events egal ob du nun in den Vollbildmodus wechselst oder ob du die Fenstergröße änderst. sowas in der art: PHP-Code: |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Oct 2009
Beiträge: 39
|
Nein, dann verschwindet der MovieClip komplett am rechten Rand, da die Pixel von der Bühne ja größer werden und screenResolutionX demnach viel zu hoch ist. Der Wert muss zwischen stageWidth und screenResolutionX liegen. Aber wie berechne ich den Wert exakt? |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Oct 2009
Beiträge: 39
|
Wenn ich stage.scaleMode auf StageScaleMode.NO_SCALE setzte ist es kein Problem den MovieClip zu Positionieren, aber dann muss ich ja alle Elemente von Hand skalieren. Und das ist ja ein eher unsauberer weg. Da müsste es doch eine andere Möglichkeit geben? |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: May 2010
Beiträge: 87
|
Ich komme grad nicht ganz klar mit den Berechnungen zwischen den zwei Koordinatensystemen. Ich denke aber das es eine korrekte Lösung geben muss! EDIT: Achso ich glaube der weg über die screenResultionX/Y ist sowieso ziemlich schwach, da man ja mehrere Monitore haben kann. EDIT 2: code entfernt (war bs) Geändert von NilsK (13-05-2010 um 15:22 Uhr) |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Oct 2009
Beiträge: 39
|
Der Ansatz war gar nicht so verkehrt. Es zählt bei screenResultionX/Y immer der Monitor auf dem sich die Bühne gerade befindet. Solange das Seitenverhältnis der Bühne kleiner ist als das von der Bildschirmauflösung funktioniert es. Das kann man ja über eine If-Abfrage steuern: PHP-Code: |
| | |
| | #10 (permalink) |
| Neuer User Registriert seit: May 2010
Beiträge: 87
|
Ok, das hier scheint zu funktionieren: (der else-Fall ist im Nachhinein auch logisch, aber so ganz trauen tu ich der geschicht noch nicht ;-)) PHP-Code: |
| | |
| | #12 (permalink) |
| Neuer User Registriert seit: May 2010
Beiträge: 87
|
kein Thema. Ich würde es zur Sicherheit trotzdem mal bei einem System mit zwei Monitoren unterschiedlicher Auflösung testen. Mich persönlich würde immer noch interessieren warum diese Rechnung zu stimmen scheint: PHP-Code: |
| | |
| | #13 (permalink) |
| Neuer User Registriert seit: Oct 2009
Beiträge: 39
|
Mit ratioRes wird das Seitenverhältnis der Bühne berechnet und mit ratioStage das Seitenverhältnis der Monitorauflösung. Wenn das Seitenverhältnis von dem Monitor größer ist, sprich der Bildschirm breiter als die Bühne ist, dann muss man den MovieClip der am Rand ausgerichtet werden soll um so viel Pixel nach rechts verschieben, wie das Seitenverhältnis prozentual größer ist als die Bühne. Bsp: Bühne: 800 x 600 Pixel => ratioStage: 1 1/3 Monitor: 1440 x 900 Pixel => ratioRes 1,6 ratioStage < ratioRes => Seitenverhältnis vom Monitor ist größer als von der Bühne ratioRes / ratioStage = 1.2 => Seitenverhältnis des Bildschirms ist 20% größer, also muss man um den Pixel des äußeren Randes zu Berechnen 20% auf die Breite der Bühne hinzurechnen und das macht man mit dieser Formel: stage.stageWidth * (ratioRes / ratioStage); So müsste es eigentlich sein. |
| | |
| | #14 (permalink) | |
| Neuer User Registriert seit: May 2010
Beiträge: 87
| Zitat:
| |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Fuse Frage: Höhe und position (stage) d. MC gleichzeitig ausführen | nod74 | Flash CS3 Professional | 3 | 04-03-2009 16:16 |
| Mehrere Änderungen gleichzeitig ausführen | jtmayer | Flex allgemein | 0 | 14-03-2008 14:04 |
| Mehrere Keyframes gleichzeitig ausrichten | monalisa | Flash 4 und Flash 5 | 4 | 09-05-2005 15:32 |
| Ausrichten im Vollbildmodus | DeDani | Flash MX | 14 | 29-01-2004 19:52 |
| Funktion gleichzeitig mehrfach ausführen | fl0b0 | ActionScript 1 | 7 | 22-01-2004 16:09 |