Resize auto en cas de fenetre de taille inférieur à la scène

Signaler
Messages postés
14
Date d'inscription
dimanche 1 mars 2009
Statut
Membre
Dernière intervention
31 janvier 2010
-
Messages postés
14
Date d'inscription
dimanche 1 mars 2009
Statut
Membre
Dernière intervention
31 janvier 2010
-
Bonjour,

J'ai créer une galerie en flash de taille 1024/768 afin d'avoir un maximum de place pour afficher mes images.
Le site passe correctement sur des browser avec résolution supérieur à la taille de ma scène (normal) mais sur une résolution inférieur les scrollbar apparaissent (normal aussi).
J'aimerai éviter ça.
Mon but est que ma scène reste à sa taille en cas de résolution supérieur à 1024/768 et qu'elle ce resize automatiquement et proportionnellement en cas de résolution inférieur afin de rendre la navigation plus agréable.

Je travaille en AS2 sous CS4.
Je comprend l'AS mais je ne le parle pas (un peu comme l'anglais ) donc dur pour moi d'élaborer le code. En fouinant sur le net j'ai pu voir qu'il faut jouer avec le stage.scalemode. Mais tout les tuto que j'ai trouvé sont prévus pour des sites full screen.

Pour info, si ca a de l'importance, j'ai traficoté de code HTML de ma page pour centrer mon SWF en hauteur et largeur, en le mettant dans un tableau qui est centré proportionnellement ensuite.

Please Help

Damien

14 réponses

Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
Salut,

je ne sais pas si j'ai bien compris ce que tu voulais faire, mais tel que je l'ai compris : tu souhaites que ton animation soit toujours affichée en totalité quelque soit la résolution du moniteur sur lequel elle est affichée ? Si c'est bien ça, tu peux régler ce paramètre dans flash : dans le menu de flash, tu vas dans "fichier", puis "paramètres de publication", et dans l'onglet "html", tu choisis "Pourcentage" dans l'onglet "Dimensions". Ainsi ton animation sera toujours affichée en totalité et en proportion sur l'écran (par contre ça amoindrit la qualité du visuel lorsqu'on réduit). Tu auras malgré tout toujours les scrollbars sur ta fenêtre, mais je pense qu'il est possible de les supprimer en intervenant dans le code html du flash publié (mais je ne sais pas comment faire...)

BBfunk01
Messages postés
14
Date d'inscription
dimanche 1 mars 2009
Statut
Membre
Dernière intervention
31 janvier 2010

Merci BBFUNK01 pour ta réponse.

En fait ce que je ne souhaite pas c'est que mon image ne soit pas étirée. J'aimerai mettre une contrainte dans mon code afin que ma scène garde sa taille normale si la fenêtre me le permet. Mais par contre si la fenêtre est trop petite, alors dans ce cas, j'aimerais qu'il y ai un rétrécissement de ma scène.

J'ai essayé ce que tu m'a dit, mais le soucis c'est que ma scène est étirée en cas de fenêtre plus grande que ma scène.

Dsl je ne vois pas vraiment comment expliqué autrement

Damien
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
Re,

je vois ce que tu veux dire : tu souhaites que la taille de ta fenêtre qui contient ton animation garde les proportions hauteur et largeur de ton animation, que l'on rétrécisse ou agrandisse la fenêtre. Et bien pour ça je t'avoue que je ne vois pas.
Essaie peut-être de chercher à "stage._scale" et de voir ce qu'il est proposé en fonction au niveau du code html.

BBFUNK01
Messages postés
14
Date d'inscription
dimanche 1 mars 2009
Statut
Membre
Dernière intervention
31 janvier 2010

Pour être sur que l'on ce soit bien compris, voici un petit dessin explicatif :


Sur le dessin de gauche la résolution du browser (IE ou firefox etc...) offre assez de place pour afficher ma scène flash en entière. Ma scène scène flash garde ces proportions maximum.

Sur le dessin de droite, la résolution est trop petite pour afficher la scène flash en entière, alors ma scène est redimensionner en fonction de la taille de l'écran (dans cet exemple 800/600)

Je pense que le code devrais ressembler à ca (reste plus qu'à le traduire en HTML ou AS2):
si stage_scale < 1024
alors scène_scale = stage_scale
sinon scène_scale = 1024/768

Reste plus qu'a le mettre en AS ou en html.

Je vais continuer mes recherches sans grand espoir mais cette fois ci en me concentrant sur le code HTML comme tu me l'a conseillé.
J'ai vraiment besoin d'aide.

Merci
Damien
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
Salut Damien,

je regarde cet après-midi et je te tiens au courant si je trouve.

A plus,

BBFUNK01
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
Re Damien,

j'ai regardé vite fait et franchement je ne vois pas trop comment faire. Sache cependant que quand tu fais :
Stage._scale;

Tu définis l'échelle de ton Stage et non sa dimension, pour la dimension c'est "Stage._width" pour la longueur, et "Stage._height" pour la hauteur.
De même que tu as "Stage._xscale" pour l'échelle horizontale de ton Stage (donc ton "Stage._width") et "Stage._yscale" pour l'échelle verticale de ton Stage (donc ton "Stage._height").

Désolé de ne pas pouvoir t'aider plus, essaie quand même de faire une recherche en tapant "adapter animation flash aux différentes résolutions d'écran".

A plus,

BBFUNK01
Messages postés
14
Date d'inscription
dimanche 1 mars 2009
Statut
Membre
Dernière intervention
31 janvier 2010

Merci beaucoup pour ton investissement dans mon problème.
Je vais faire des tests avec les morceaux de code que tu as cité.
Je te tien au courant

Merci encore
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
De rien, je t'ai pas vraiment aidé dans la forme.

Bon courage,

BBFUNK01
Messages postés
14
Date d'inscription
dimanche 1 mars 2009
Statut
Membre
Dernière intervention
31 janvier 2010

Ouaiiiiiii ca fonctionne !!!
...
..
....
... mais pas que sous flash snif
Tout d'abord voici le code (Il ne doit pas être très top, c'est mon 1er code 100% damien )


var myListener:Object = new Object();
myListener.onResize = function () {
if (Stage.height>770) {
_yscale = 100
}
if (Stage.height<750) {
Stage.scaleMode = "showall"
}
if (Stage.width>1030) {
_xscale = 100
}
if (Stage.width<1000) {
Stage.scaleMode = "showall"
}
}
Stage.addListener(myListener);
//Stage.removeListener(myListener)


note : il reste encore un petit soucis mais ca ne me dérange pas trop, dès que la fonction Stage.scaleMode "showall" est activée impossible de la désactivée. En gros une fois que tu as rétréci l'image elle va suivre la taille de la fenêtre peut importe sa dimension. A mon avis pour éviter ca il me faudrai juste une variante de la fonction Stage.scaleMode "showall".

Donc voila le problème maintenant :
Ce code fonctionne comme je l'espérais mais uniquement lorsque je l'exécute à partir de flash avec le CTRL/entré
Si j'exécute mon swf en externe (double clique sur l'icône) et bien ca ne marche plus (bizarre non?)...

Une solution?
Messages postés
14
Date d'inscription
dimanche 1 mars 2009
Statut
Membre
Dernière intervention
31 janvier 2010

oups dans le post précédent je voulais pas dire : ".. mais pas que sous flash snif "
mais : ".. mais que sous flash snif"
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
Re Damien,

...ben là comme ça à froid je vois pas trop comment palier au problème (je suis crevé en ce moment donc mon cerveau tourne vraiment au ralenti).
Sinon je suis allé faire un petit tour sur ton site histoire de voir à quoi il ressemblait, les idées sont bonnes et le graphisme plutôt sympa. J'ai remarqué que tu mettais beaucoup de barre de chargement, et je trouve que c'est dommage car du coup ça paralyse un peu le contenu. Mais bon, je sais que c'est pas évident de faire un site impeccable (ça fait seulement quelques mois que je bosse sur flash) car je suis en train de faire la 3ème version de mon site tant les 2 premières étaient pourries :)

Bref, bon courage en tout cas !

BBFUNK01
Messages postés
14
Date d'inscription
dimanche 1 mars 2009
Statut
Membre
Dernière intervention
31 janvier 2010

^^ merci
Sauf que ce n'est pas pour mon site perso mais pour le site de ma boite que je viens de monter avec 4 autres associés.
C'est pour ça que je chipote sur la galerie. J'aimerai vraiment faire un truc impeccable pour une fois.
l'adresse : [www.blackpixelstudio.com ]

Merci pour tout tes conseils et repose toi bien

Damien,
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
Re Damien,

et bien le site de ta boîte est pas mal du tout !
Par contre 2 défauts qui pourraient être corrigés rapidement :
- 1) Enlever le "e" à "publicité" dans le "à propos" par que "publicitée" ça le fait pas trop :)
- 2) Ajouter un formulaire de contact serait pas mal en plus du lien qui permet d'ouvrir le logiciel mail par défaut sur la machine de l'utilisateur.

Sinon :
- J'aime bien l'ambiance épurée et le contraste du noir avec le blanc comme atmosphère générale (simple mais très efficace).
- J'aime beaucoup les graphismes (je dessine moi-même et particulièrement des personnages (du moins je dessinais... ça fait un bail que j'ai pas pris un crayon)).

Bref : un site très sympa qui sera encore plus sympa une fois terminé je pense :)

ps: je compte me mettre un peu à la 3D d'ici peu donc je suis preneur de coneils.

A plus,

BBFUNK01
Messages postés
14
Date d'inscription
dimanche 1 mars 2009
Statut
Membre
Dernière intervention
31 janvier 2010

Merci beaucoup.

J'ai bien pris en compte tes remarques et fais les modifications nécessaires. La mise à jour sur le FTP ce fera prochainement.

Je t'envoie par MP mon adresse msn si tu souhaite des conseils en 3D. Ça sera avec grand plaisir que je t'aiguillerai dans ce domaine.

Pour ce qui est de la galerie, apparemment ce que je souhaite faire ce passe dans le code java plutôt que sur flash. J'ai donc ouvert un nouveau sujet sur le forum java. En attente de la suite

Damien