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.
Posted in Actionscript 3 | 6 Comments »