Il n'existe pas d'option intégrée pour ce que vous décrivez, mais elle est facilement réalisable avec les scripts, que ce soit dans Flash ou JavaScript. Je vais mettre un extrait de code à la fin de la réponse qui devrait vous aider à démarrer. D'abord, cependant, permettez-moi de suggérer ce que vous devriez probablement faire à la place. Pensez à ce qui se passe quand un utilisateur arrive (qui, peu importe la taille du moniteur) n'a pas le navigateur en plein écran. Si vous mettez en œuvre comme vous le décrivez, ils verront votre site à une taille arbitrairement petite, en fonction de la taille de leur navigateur, et verront probablement quelque chose de suffisamment petit pour être illisible et/ou inutilisable. Maintenant, bien sûr, vous pouvez résoudre ce problème en implémentant une taille minimale en dessous de laquelle Flash arrête la mise à l'échelle, mais vous commencez à faire beaucoup de doutes sur la façon dont les utilisateurs verront votre site. Au lieu de cela, il convient de vous demander, ce qui serait un utilisateur avec un petit moniteur (ou une petite fenêtre de navigateur) attendre le site à faire? Et la réponse à cela est, montrer le site en taille réelle et ajouter des barres de défilement. Et pour mon argent, c'est ce que votre site devrait faire. Ainsi, dans votre HTML (ou dans les paramètres d'exportation HTML de Flash), insérez votre fichier SWF dans un conteneur 1000 x 750. Cela empêchera le SWF de se mettre à l'échelle pour tout le monde - sur votre moniteur, vous verrez le site non calibré centré (ou aligné en haut à gauche) dans la fenêtre, et sur les moniteurs plus petits, le site entier . À la fin de la journée, vous devez réaliser que même si le contenu de Flash évolue de manière inhérente, la plupart des sites Web sont constitués de texte et d'images, ce qui n'est pas le cas. Même si vous pouvez réduire l'échelle au moment de l'exécution, ce n'est généralement pas ce que l'utilisateur attend et cela ne rend généralement pas le site beau.
Maintenant, comme promis, voici un extrait de code AS3 Flash qui devrait vous donner assez de tête commencent à faire ce que vous aimez avec mise à l'échelle. Cela devrait vous donner l'effet désiré, si vous avez publié votre Flash dans un conteneur qui occupe toute la fenêtre du navigateur, avec le paramètre scalemode réglé sur "aucune échelle".
// perform initial size check
checkStageSize();
// register to re-check when stage size changes
stage.addEventListener(Event.RESIZE, onResize, false, 0, true);
function onResize(e:Event) {
checkStageSize();
}
// do the scaling here
function checkStageSize():void {
var wid:Number = stage.stageWidth;
var hi:Number = stage.stageHeight;
var needToScaleDown:Boolean = (wid < 550); // or some other test
if (needToScaleDown) {
var scale:Number = wid/550;
someContent.scaleX = someContent.scaleY = scale;
} else {
someContent.scaleX = someContent.scaleY = 1;
}
}
Cela suppose que « somecontent » fait référence à un tout support de conteneur que vous voulez à l'échelle, avec son point d'enregistrement à l'origine de la scène (coin supérieur gauche). Il n'existe pas de méthode simple pour mettre à l'échelle automatiquement l'ensemble du film. Vous devez donc placer votre contenu dans un clip de conteneur et le redimensionner à la place. N'hésitez pas à mettre l'extrait ci-dessus dans une action de cadre sur la scène, changer "someContent" pour se référer à un conteneur que vous pouvez mettre à l'échelle, et jouer avec. Mais je pense vraiment que vous finirez par décider qu'il est plus facile de montrer le site sans échelle.