Détection résolution + Full screen

lisefriz Messages postés 4 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 novembre 2010 - 27 nov. 2010 à 06:38
ChasseurDeChimeres Messages postés 292 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 15 janvier 2013 - 29 nov. 2010 à 10:16
Bonjour à tous,
malgré plusieurs recherches sur ce forum qui m'ont tout de même apporté un bout de solution, nullarde que je suis, je n'arrive pas à coller les morceaux pour avoir LA solution !
J'explique le problème : un site avec une page index (html) comporte un bouton entrer (jusque là tout va bien !) qui au clic m'ouvre la page html supportant le site (flash à 100%) en full screen.
Pour faire ça j'ai :
1. un fichier js appelé "popup.js" avec le code suivant :
// JavaScript Document
<!--
function base()
{
var url = 'site-rhenjeu.html'
var width = screen.availWidth;
var height = screen.availHeight;
var specs = "fullscreen=no,left=0,top=0,screenX=0,screenY=0";
specs += ",width=" + width + ",height=" + height;
specs += ",scrollbars=no,toolbar=no,menubar=no";
specs += ",status=no,location=no";
specs += ",directories=no,resizable=no,alwaysRaised";
//specs += ",innerHeight=" + height + ",innerWidth=" + width;
var Popup = window.open(url, 'base', specs);
Popup.resizeTo(width,height);
//vete();
}

2. Dans l'index j'ai placé : <script type="text/javascript" src="popup.js"></script> entre les balises head,
et ce lien pour le bouton entrer : href="javascript:base()"

3. Le flash est à 100% dans la page html qui le contient
4. Dans le Flash, j'ai ce code :
Stage.showMenu = false;
Stage.scaleMode = "noScale";
Stage.align = "TL";
//****************************************************
//****************************************************
//on définit une fonction qui sera appelée à chaque resize
position = function () {
// centre le clip_mc au milieu de l'écran
with (clip_mc) {
_x = Math.round(Stage.width/2-clip_mc._width/2);
_y = Math.round(Stage.height/2-clip_mc._height/2);
}
};
//****************************************************
//****************************************************
//on définit le Listener
redim = new Object();
redim.onResize = function() {
//on appelle la fonction du dessus à chaque resize
position();
};
Stage.addListener(redim);
//****************************************************
//****************************************************
//on appelle une première fois la fonction pour positionner tous les éléments sur la scene
position();


Bon j'ai peut-être déjà des trucs bizarres pour les connaisseurs, mais j'ai prévenu je suis nulle et j'ai essayé de trouver des trucs à droite à gauche.. et jusque là tout allez bien !
Le soucis est que lorsque je teste le site sur sur une résolution comme celle de mon portable (1440x900) bien entendu le site qui fait 900 px de hauteur ne s'affiche plus correctement (le haut et le bas sont bouffés). Je n'ose imaginer les versions encore inférieures...

Question :
- J'ai pensé à créer une version supplémentaire pour résolution inférieure. Déjà est-ce une bonne idée ?
Si oui, comment puis-je ajouter la détection de la résolution à ce que j'ai déjà ? J'ai bien trouvé des codes(http://www.javascriptfr.com/codes/REDIRECTION-SELON-RESOLUTION-ECRAN_15999.aspx et http://www.javascriptfr.com/code.aspx?id=15770) mais comment les cumuler à ma configuration actuelle ? Là je bloque...

Je vous remercie par avance de vos réponses très attendues !

4 réponses

@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
27 nov. 2010 à 11:22
ce serait bien de voir le resultat

sinon quand on regarde le sript de la popup elle s'adapte bien a l'ecran il faudrait plutot voir au niveau du flash
0
lisefriz Messages postés 4 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 novembre 2010
27 nov. 2010 à 12:23
Merci du retour. Bon je préviens, en + de m'avoir bien pris la tête techniquement, le site ne me convient pas trop graphiquement (client avec de drôles de goûts...) bref, voici le lien : http://www.rhenjeu.fr/rhenjeu/index.html

Pour infos :
- le flash fait 1280x900
- pour le resize dans le flash, j'ai seulement utilisé une partie du code trouvé vue le design du site, (surtout cette bande horizontale qui prend tout l'écran), mais je pense que le soucis vient effectivement de là. Je vais essayer de placer l'entête et la signature en bas de page avec ce code.
Voici le code complet :
//les propriétés à ne pas oublier pour le Stage
Stage.showMenu = false;
Stage.scaleMode = "noScale";
Stage.align = "TL";
//****************************************************
//****************************************************
//on définit une fonction qui sera appelée à chaque resize
position = function () {
//Quelques exmples de replacement / redimensionnement
//****************************************************
// redimensionne le fond
with (background_mc) {
_y = 0;
_x = 0;
_width = Stage.width;
_height = Stage.height;
}
// place le clip date_mc en haut à droite
with (date_mc) {
_y = 0;
_x = Stage.width-date_mc._width;
}
// place le logo_mc en haut à gauche
with (logo_mc) {
_y = 0;
_x = 10;
}
// place le footer
with (footer_mc) {
_y = Stage.height-footer_mc._height;
_x = 0;
}
// ajuste la taille du background du footer à celui de l'ecran
with (footer_mc.footerBackground_mc) {
_width = Stage.width;
}
// centre le texte du footer
with (footer_mc.footerTxt_mc) {
_x = Math.round(Stage.width/2-footer_mc.footerTxt_mc._width/2);
}
// centre le clip_mc au milieu de l'écran
with (clip_mc) {
_x = Math.round(Stage.width/2-clip_mc._width/2);
_y = Math.round(Stage.height/2-clip_mc._height/2);
}
};
//****************************************************
//****************************************************
//on définit le Listener
redim = new Object();
redim.onResize = function() {
//on appelle la fonction du dessus à chaque resize
position();
};
Stage.addListener(redim);
//****************************************************
//****************************************************
//on appelle une première fois la fonction pour positionner tous les éléments sur la scene
position();
0
@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
27 nov. 2010 à 15:33
le probleme c'est que on ne peut pas modifier la taille du flash avec javascript il faudrait pauser la question sur le forum flash
0
ChasseurDeChimeres Messages postés 292 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 15 janvier 2013 3
29 nov. 2010 à 10:16
Salut;
En effet comme dit kazma le passage en full screen est beaucoup plus aisé en flash :
stage.scaleMode = StageScaleMode.NO_SCALE;//pas de redimensionnement de l'anim
stage.align = StageAlign.TOP_LEFT;//pas de centrage de l'anim
stage.displayState = StageDisplayState.FULL_SCREEN;//occupe tout l'écran


ensuite tu récupères les dimensions de "stage" qui aura dorénavant la taille de l'écran, et tu position tes éléments avec des valeurs en pourcentages.
Désolé de pas être plus précis.
bon dev'

Sinon je sais bien que c'est pour un client mais je le redis : a part pour les vidéos et les jeux, le passage en full-screen est limite inutile pour un site web.
0
Rejoignez-nous