2010-03-10 3 views
0

Mode plein écran et je me bats depuis un certain temps dans cette application Flex, et je suis à court de résultats Google pour mettre fin à mes malheurs. Je n'ai aucun problème à passer en mode plein écran en faisant un Application.application.stage.displayState = StageDisplayState.FULL_SCREEN;, mais le reste du contenu se trouve juste là dans le coin supérieur gauche, à sa taille d'origine. D'accord, dit-il, je vais juste faire un stage.scaleMode = StageScaleMode.SHOW_ALL et faire comprendre comment retirer cela. Et ça a l'air comme ça. Sauf que lorsque vous passez la souris sur les cases à cocher individuelles et les boutons et les divers composants, ils tous réagissent légèrement. Juste un léger saut de haut en bas pendant qu'ils redimensionnent ... avec la souris au dessus de. Eh bien, c'est frustrant, mais supportable. Je peux toujours invoquer invalidateSize() explicitement pour chacun d'entre eux.Quelle est la bonne façon d'adapter une application Flex en plein écran?

Mais pour les combobox. Ceux qui sont en bas ont leurs menus en bas de l'écran, et quand je sors du mode plein écran, leurs listes déroulantes sont coupées à mi-chemin. Je n'ai aucune idée de comment réparer que. Quelqu'un peut-il intervenir ici et me sortir de ma misère?

Quelle est la bonne façon d'adapter une application Flex en plein écran?

var button:Button = button_fullscreen; 
try { 
    if(stage.displayState == StageDisplayState.FULL_SCREEN) { 
     Application.application.stage.displayState = StageDisplayState.NORMAL; 
     button.label = "View Fullscreen Mode"; 
     stage.scaleMode = StageScaleMode.NO_SCALE; 
    } else { 
     Application.application.stage.displayState = StageDisplayState.FULL_SCREEN; 
     button.label = "Exit Fullscreen Mode"; 
     stage.scaleMode = StageScaleMode.SHOW_ALL; 
    } 
    invalidateSizes(); // Calls invalidateSize() explicitly on several components. 
} catch(error:SecurityError) { 
    Alert.show("The security settings of your computer prevent this from being displayed in fullscreen.","Error: "+error.name+" #"+error.errorID); 
} catch(error:Error) { 
    Alert.show(error.message,error.name+" #"+error.errorID); 
} 

Répondre

1

Parfois les choses vont mal avec flex :)

essayer l'approche suivante

stage.align = StageAlign.TOP_LEFT; 

puis sur Redimensionner ou ajouté à Scénographie l'échelle manuellement

private function updateScaling():void 
{ 
    if(stage.stageWidth != width || stage.stageHeight != height) 
    { 
     var scaling:Number = 1; 
     if(width>height) 
     { 
      scaling = stage.stageWidth/width; 
     } 
     else 
     { 
     scaling = stage.stageHeight/height; 
     } 

     scaleX = scaleY = scaling; 
    } 
} 
Questions connexes