Zurück   Flashforum > Flash > Mobile Flash und Flash Lite

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19-12-2011, 22:34   #1 (permalink)
Little Big Freak
 
Benutzerbild von Maciej
 
Registriert seit: Apr 2003
Beiträge: 230
iOS || AIR 3.0, stage grösse setzen

Hey,

hab hier ne iOS app die ich passend zur Auflösung skalieren will.
Da ich die Skalierung selber vornehme muss ich nur dafür sorgen das auch die Stage die volle Auflösung des Gerätes hat.

Hab dazu folgendes gesetzt:

PHP-Code:
[SWF(backgroundColor='0x000000'frameRate='24'widthPercent='100'heightPercent='100')] 
dann im code:

PHP-Code:
stage.stageWidth Capabilities.screenResolutionX;
stage.stageHeight Capabilities.screenResolutionY
und auch in der Application Descriptor file hab ich
PHP-Code:
<resizable>true</resizable
Funktioniert alles prima im Debug Player, nur auf dem Device funktioniert die setter function von stage.stageWidth / stage.stageHeight nicht.
Capabilities gibt auch die korrekte Auflösung des Gerätes an, nur ich schaffs einfach nicht das die Stage angepasst wird.
Die Stage bleibt einfach bei ihrer Standardauflösung.

Jemand ne Idee was ich falsche mache?
Maciej ist offline   Mit Zitat antworten
Alt 19-12-2011, 23:07   #2 (permalink)
in the boondocks
 
Benutzerbild von shin10
 
Registriert seit: Feb 2006
Ort: Augsburg
Beiträge: 3.500
Hi,

also wenn du den scaleMode auf noScale stellst hat die Bühne doch genau die Größe des Bildschirms. Warum willst du da noch was von Hand ändern?

mfg

sx
__________________

flintfabrik.de
shin10 ist offline   Mit Zitat antworten
Alt 20-12-2011, 14:04   #3 (permalink)
Little Big Freak
 
Benutzerbild von Maciej
 
Registriert seit: Apr 2003
Beiträge: 230
Hi,

das ist eben mein Problem, sie hat es nicht. Hab gestern 3 std langen zich Varianten probiert und immer wieder auf dem iPad direkt getestet. Die Bühne bleibt bei der Standardauflösung und passt sicht nicht dem Screen an.

Das widthPercentage / heightPercentage scheint nicht zu greifen.
Klappt wie gesagt super im Debug Player aber auf dem Device will es einfach nicht.

Capabilities liest auch die korrekte Auflösung des Gerätes aus, also scheint die AIR App auch zu wissen auf welche Auflösung sie sich anpassen sollte, sie tuts aber nicht.

Edit: noScale ist natürlich auch direkt am Anfang gesetzt.

Geändert von Maciej (20-12-2011 um 14:07 Uhr)
Maciej ist offline   Mit Zitat antworten
Alt 20-12-2011, 17:34   #4 (permalink)
Little Big Freak
 
Benutzerbild von Maciej
 
Registriert seit: Apr 2003
Beiträge: 230
So hab das Problem gelöst. Wusste nicht das die stage, obwohl es keinen sinn macht, zwei unterschiedliche Auflösungen gleichzeitig haben kann.

Da ich den Fullscreen Mode auf den Geräten nutze muss ich in Flash stage.fullScreenWidth / stage.fullScreenHeight nutzen. stage.stageWidth / stage.stageHeight werden wohl nicht aktualisiert wenn sich die Stage an den Fullscreen anpasst.
Wirkt dann erstmal so als ob sie zwei unterschiedliche Auflösungen gleichzeitig hätte wenn man die Werte ausliest.

Da die App im Landscape läuft muss ich nun nur noch gucken obs möglich ist
PHP-Code:
stage.setOrientation(StageOrientation.ROTATED_RIGHT); 
im Debug Player zum feuern zu bringen so das stage.fullScreenWidth / stage.fullScreenHeight veratuscht werden damit ich das nicht immer zum testen im Debug Player per Hand anpassen muss.
Maciej ist offline   Mit Zitat antworten
Alt 20-12-2011, 17:39   #5 (permalink)
in the boondocks
 
Benutzerbild von shin10
 
Registriert seit: Feb 2006
Ort: Augsburg
Beiträge: 3.500
Interessant! War mir noch nicht aufgefallen. Danke
__________________

flintfabrik.de
shin10 ist offline   Mit Zitat antworten
Alt 20-12-2011, 18:04   #6 (permalink)
Little Big Freak
 
Benutzerbild von Maciej
 
Registriert seit: Apr 2003
Beiträge: 230
Sollte dann wohl noch erwähnen das man
PHP-Code:
stage.displayState StageDisplayState.FULL_SCREEN_INTERACTIVE
setzen sollte damit die App auch komplett Interactive ist.

Für eine App die nur im Landscape & Fullscreen mode läuft und nur zwischen Landscape modes hin und her rotiert sieht das alles dann so aus (falls ich oder jemand das mal wieder braucht ):
PHP-Code:
[SWF(backgroundColor='0x000000'frameRate='24'widthPercent='100'heightPercent='100')] 
PHP-Code:
stage.align StageAlign.TOP_LEFT;
stage.scaleMode StageScaleMode.NO_SCALE;
stage.displayState StageDisplayState.FULL_SCREEN_INTERACTIVE;

stage.autoOrients true;
stage.setAspectRatio(StageAspectRatio.LANDSCAPE);
stage.setOrientation(StageOrientation.ROTATED_RIGHT);
      
stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGINGonStageRotationHandler);

function 
onStageRotationHandler(event:StageOrientationEvent):void
{
    
event.preventDefault();
    if (
event.beforeOrientation == StageOrientation.ROTATED_RIGHT)
        
stage.setOrientation(StageOrientation.ROTATED_LEFT);
    else if (
event.beforeOrientation == StageOrientation.ROTATED_LEFT)
        
stage.setOrientation(StageOrientation.ROTATED_RIGHT);

und in der Application descriptor:
PHP-Code:
<autoOrients>true</autoOrients>
<
aspectRatio>landscape</aspectRatio>
<
fullScreen>true</fullScreen
und dann halt mit
PHP-Code:
stage.fullScreenWidth
stage
.fullScreenHeight 
arbeiten.

Kann dann sein das es zwar im Debug Player die width & height für den Landscape mode nicht vertauscht, funzt dann aber super auf dem Device.

Geändert von Maciej (20-12-2011 um 18:06 Uhr)
Maciej ist offline   Mit Zitat antworten
Alt 21-12-2011, 10:01   #7 (permalink)
Neuer User
 
Registriert seit: Dec 2005
Ort: Oldenburg
Beiträge: 2.408
Man dankt.
__________________
Mein Blog
Freue mich über jeden Besucher. :)
Nico B. ist offline   Mit Zitat antworten
Alt 26-01-2012, 16:21   #8 (permalink)
Neuer User
 
Benutzerbild von flash_newbie
 
Registriert seit: Feb 2007
Beiträge: 175
Dazu passend diese aktuelle Diskussion beim Einsatz von FlashDevelop:

FlashDevelop.org - View topic - FD4 Mobile debug testing screen size?
flash_newbie ist offline   Mit Zitat antworten
Alt 20-02-2012, 12:14   #9 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
Von mir auch danke!

Dennoch sind mir die Settings teilweise suspekt.
Es ist doch doppelt gempoppelt, wenn ich landscape in der XML und in AS definiere.
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 20-02-2012, 13:32   #10 (permalink)
Little Big Freak
 
Benutzerbild von Maciej
 
Registriert seit: Apr 2003
Beiträge: 230
hey,

das ist in der Tat etwas blöd mit dem doppelt gemoppelt, einige Artikel schreiben man solle beides setzen.
Genauso schreiben einige man solle immer die Werte nicht auf das setzen was man will sondern auf das gegensätzliche.
Ist recht chaotisch und im moment bin ich noch am testen. Das da oben war mein erster Ansatz.

Teste gerade ein anderen Ansatz da mein Kunde will das die App, wenn sie geöffnet wird, immer zu der aktuellen Landscape Positon des iPads rotiert.
Mit dem Code oben rotiert die App am anfang immer nach Rechts (zum iPad Home Button).

Mein neuer Code (aus nem Blog) klappt ganz gut nur der Splash Screen springt am anfang von Landscape kurz in Portrait und initialisiert dann die App. Die App ist dann aber wieder richtig rum im Landscape Mode gedreht.

Sobald ich den Bug mit dem Splash Screen raus hab, poste ich hier den Code.
Maciej ist offline   Mit Zitat antworten
Alt 20-02-2012, 18:44   #11 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
Okay, nice.

Im Moment rall ich aber auch noch nicht, was das mit stage.fullScreenWidth und stage.stageWidth (und height) soll. Dazu kommt, dass das iPad scheinbar IMMER eine Breite von 768 und IMMER eine Höhe von 1024 hat, egal ob landscape oder portrait gesetzt ist. Ist natürlich recht verwirrend.

Und wofür muss ich noch die Orientation definieren, wenn schon klar ist, dass das Ding auf landscape steht?
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 20-02-2012, 22:27   #12 (permalink)
Little Big Freak
 
Benutzerbild von Maciej
 
Registriert seit: Apr 2003
Beiträge: 230
Zu den Screengrössen:
Das iPad z.b. hat 2 Auflösungen, einmal 768 x 1004 (Portrait) und 768 x 1024 (Portrait Fullscreen).
Setzt du die App nicht auf Fullscreen sieht man (sollte man zumindest) oben dann immer die Statusleiste (wo die Wlan Anzeige und der rest zu sehen sind).

Zu Stage & width/height:
Flash scheint bei der Stage grösse zwischen Normal & Fullscreen zu unterscheiden.
Hast du die App in der descriptor file auf Fullscreen gesetzt und setzt nun z.b. über das SWF Metadata Tag die Stagegrösse auf
PHP-Code:
[SWF(backgroundColor='0x000000'frameRate=30width=640height=480)] 
Testest das ganze z.b. auf nem iPad,
Bekommst du auch wenn die Stage sich an die Auflösung des Gerätes angepasst hat, im Falle von stage.stageWidth & stage.stageHeight immer die 640 x 480 zurück.
stage.fullScreenWidth & stage.fullScreenHeight hingegen geben dir die korrekte Fullscreen Auflösung des Gerätes von 768 x 1024 (iPad Portrait Fullscreen) zurück. Im Landscape dann 1024 x 768.

stage.stageWidth & stage.stageHeight behalten die Werte der Original Stagegrösse.

Orientation:
Musst du nicht, hab ich zum testen der App für mich gemacht.
Ohne die Zeile drehte er die App bei mir wenn das iPad flach auf dem Tisch lag immer links rum und die App stand auf dem Kopf, musste die App dann immer erst zurück drehen.

Hatte ich wohl vergessen rauszulöschen.

Geändert von Maciej (20-02-2012 um 22:29 Uhr)
Maciej ist offline   Mit Zitat antworten
Alt 21-02-2012, 18:10   #13 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
besten Dank. schön ausführlich.
__________________
Design ist AUCH Geschmackssache.
Mr.Twister 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
stage immer auf niedrigste Ebene setzen Ullmann ActionScript 3 2 18-08-2009 09:01
Stage Resize in der Flash IDE: Wieso bleibt die Stage nicht oben links? Mr.Twister Am Rande 1 12-06-2009 15:19
Objekt anhand der Stage Grösse proportional skalieren elephantiX ActionScript 2 1 28-02-2009 20:41
Stage Resize Listener richtig setzen gmadesign Flash 8 2 16-02-2007 10:51
popup grösse = bild grösse elhana HTML und CSS 3 20-08-2003 03:33


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:28 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele