[AS3] Fullscreen avec StageDisplayState.FULL_SCREEN

8 mars 2008 – 3:47

Pour la réalisation d'un cd-rom en Flash j'avais besoin de passer en plein-écran, ce qui se fait très facilement via fscommand. Cependant je viens de découvrir la méthode displayState de la classe Stage qui permet de choisir entre un état "NORMAL" ou "FULL_SCREEN" pour le flash player.

fscommand("fullscreen", "true");

Au début j'ai pensé que c'était pareil, rien de spécial, mais j'ai vite remarqué qu'il y a un détail subtile qui me fait dire que vous pouvez dire adieu à fscommand pour faire du plein-écran. Avec fscommand, lorsque vous exécutez votre swf, vous verrez que pendant une fraction de seconde le flash est ouvert à sa taille "normal" puis qu'il passe en "fullscreen". Ce qui a pour conséquence que souvent on attribue un écouteur à la scène pour afficher le contenu une fois que le player est passé en plein-écran. Mais si vous utilisez stage.displayState le mode plein écran est instantané à l'exécution du swf. Si vous tracez directement le stage.stageWidth et stage.stageHeight ça renverra la taille de l'écran.

stage.align = StageAlign.TOP_LEFT;
stage.displayState = StageDisplayState.FULL_SCREEN;
stage.scaleMode = StageScaleMode.NO_SCALE;
 
var output:TextField = new TextField();
output.text = stage.stageWidth+" * "+stage.stageHeight;
addChild(output);

Vous pouvez copier l'exemple ci-dessus d'un fla vide et tester le swf pour voir le résultat.
Dans le même genre il y a aussi :

  • une classe FullScreenEvent qui s'occupe de signaler le passage en plein-écran.
  • deux propriétés stage.fullScreenWidth et stage.fullScreenHeight qui renvoient la taille de l'écran lorsque celui-ci passe en plein-écran.
  • la possibilité de passer une zone précise du Flash en plein-écran avec stage.fullSceenSourceRect (j'ai pas encore testé).

ATTENTION que les deux derniers points ne sont disponible qu'à partir de la troisième mise à jour du flashplayer 9

Conclusion, si vous désirez passer en plein-écran, pensez à StageDisplayStage.FULL_SCREEN et oubliez fscommand.

  1. 7 Responses to “[AS3] Fullscreen avec StageDisplayState.FULL_SCREEN”

  2. Avec ce code, le plein écran ne fonctionne pas chez moi. J’ai testé le swf en solo, puis dans une page HTML, sous MAC OSX et XP. Toujours rien. Il manque un truc. Mais lequel ?

    By AS3Debutant on avr 30, 2008

  3. Je viens de faire copier coller de ce code dans un fla vide. Je publie. Je lance le fichier swf et ça fonctionne directement.

    Dans l’ide ça ne fonctionnera jamais, dans une page HTML non plus, enfin pas directement car tu dois laisse l’utilisateur choisir.

    Mais dans mon cas c’était pour un cd-rom et ça fonctionne parfaitement.

    As-tu bien vérifier que tu possède la dernière version du flash player 9 (update 3)

    Bien à toi,

    S.

    By Sakana on avr 30, 2008

  4. Je viens de faire la même manipulation, le swf se lance bien en plein écran mais rien n’est affiché (alors qu’en appuyant sur escape, j’ai bien le trace des dimensions de l’écran.

    Mais ce n’est pas seulement dû à cette méthode. Une animation flash classique n’affiche pas de contenu lorsque je passe manuellement en mode plein écran.

    Pour info : Flash Player 9 (9.0.115.0)

    By Nicolas on mai 26, 2008

  5. Il s’agit en fait d’une question de paramétrage de l’affichage du lecteur Flash : en décochant « Activer l’accélération matérielle », tout rentre dans l’ordre.

    By Nicolas on mai 26, 2008

  6. Hello, lorsque je coche « activer l’accélaration matérielle, ca ne rentre pas dans l’ordre… J’ai éssayé avec tout les navigateurs :-(

    By nicou on nov 6, 2008

  7. Je précise que dans l’IDE vous ne verrez rien. Vous devez cliquez directement sur le swf compilé pour le voir passer en plein écran automatiquement.

    S.

    By Sakana on nov 7, 2008

  8. ça fonctionne parfaitement merci.

    By Chris on jan 25, 2009

Post a Comment