Forums Développement Multimédia

Aller au contenu

Position X + redimensionnement

CODE Actionscript

24 réponses à ce sujet

#1 guillaume

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 54 messages

Posté 02 July 2008 - 09:35 AM

Bonjour,
Je souhaite positionner 2 clips dans mon animation.
Celle-ci comprend le code :

Action Script

Stage.showMenu = false;
Stage.scaleMode = "noScale";
Stage.align = "B";

Se qui implique que l'animation est centrée.
Je voudrais que mes deux clips est une taille de 100%.
Le redimensionnement ne se fait que sur la droite.
Pourriez vous m'expliquer se qui ne va pas dans l'AC ?

Action Script

//on définit une fonction qui sera appelée à chaque resize
position = function () {
//****************************************************

// place le footer
with (footer_mc) {
_x = 0;
}
with (footer_mc2) {
_x = 0;
}

// ajuste la taille du background du footer à celui de l'ecran
with (footer_mc) {
_width = Stage.width;
}
with (footer_mc2) {
_width = Stage.width;
}

};
//****************************************************
//****************************************************
//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();

Fichier(s) joint(s)



#2 paodao

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 7081 messages

Posté 02 July 2008 - 09:40 AM

salut

tes clips ne sont pas alignés a droite, il depasse sur la droite, mais comme tu ne peux pas le voir tu as l'impression qu'il sont alignés a droite

Action Script


Stage.showMenu = false;
Stage.scaleMode = "noScale";
Stage.align = "TL";
redim = new Object();
redim.onResize = function() {
footer_mc._x = footer_mc2._x = 0;
footer_mc._width = footer_mc2._width = Stage.width;
};
Stage.addListener(redim);
redim.onResize();

a+

#3 guillaume

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 54 messages

Posté 02 July 2008 - 09:52 AM

Je ne comprend pas vraiment.
Je pense qu'il faut que

Action Script

Stage.align = "";
soit avec B afin que mon animation soit en bas et centré au milieu.
Mais le problème est qu'avec le redimensionnement les clips ne s'agrandissent toujours pas à gauche.
Je lui complètement perdu.

#4 paodao

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 7081 messages

Posté 02 July 2008 - 09:59 AM

si tu align horyzontalement en centré, cela n'ira pas
quand tu fait _x=0, il se base sur la position centrer
il faut que ton anim soit aligné a gauche
essaye

Stage.align = "BL";

a+

#5 guillaume

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 54 messages

Posté 02 July 2008 - 10:20 AM

J'ai compris pourquoi il faut utiliser BL.
Mais alors si je veux que mon animation soit centré. Par exemple je met en texte au milieu et je veux que par défaut ça se centre.
Comment faut-il faire?

#6 guillaume

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 54 messages

Posté 02 July 2008 - 10:25 AM

De cette façon ça marche apparemment, mais je pense pas que ça soit le plus adaptée.

Action Script

//les propriétés à ne pas oublier pour le Stage
Stage.showMenu = false;
Stage.scaleMode = "noScale";
Stage.align = "B";
//****************************************************

//##################################################
//Centrer les clips avec redimentionnement de la scène
//ouverture fonction positionnement
position = function() {
//centrage clip 'menu_mc'
with(footer_mc) {
_x = Stage.width/2;
_width = Stage.width*2;
}

}
position()
redim = new Object;
redim.onResize = function() {
position();
}
//regarde en permanance si l'objet 'redim' est changé ; nécessaire pour le redimensionnement
Stage.addListener(redim);


#7 paodao

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 7081 messages

Posté 02 July 2008 - 10:39 AM

Action Script


Stage.showMenu = false;
Stage.scaleMode = "noScale";
Stage.align = "CB";
redim = new Object;
initWidth = Stage.width

redim.onResize = function() {
footer_mc._x=footer_mc2._x = (initWidth-Stage.width)/2
footer_mc._width = footer_mc2._width=Stage.width
}
Stage.addListener(redim);
redim.onResize()

a+

#8 guillaume

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 54 messages

Posté 02 July 2008 - 10:48 AM

Merci beaucoup ! icon_smile.gif
L'action se passe très bien pour footer_mc2
Mais par compte, le footer_mc n'est pas centré comme le footer_mc2.
Comment faut il faire?

#9 paodao

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 7081 messages

Posté 02 July 2008 - 10:52 AM

etrange
chez moi cela fonctionne

Fichier(s) joint(s)



#10 guillaume

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 54 messages

Posté 02 July 2008 - 10:57 AM

MERCI Beaucoup ! icon_smile.gif
Je viens de comprendre mon erreur. la barre verte dans le footer_mc n'était pas x et y = 0
c'est pour cela que ça ne fonctionnait pas.
C'est Géant !
Une dernière petite question, je ne connaissais pas

Action Script

Stage.align = "CB";
que signifie CB ?

CC = Milieu + Milieu
B = BAS + Milieu

#11 guillaume

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 54 messages

Posté 02 July 2008 - 11:01 AM

Action Script

Stage.showMenu = false;
Stage.scaleMode = "noScale";
Stage.align = "CB";
redim = new Object;
initWidth = Stage.width

redim.onResize = function() {
footer_mc._x=footer_mc2._x=footer_mc3._x = (initWidth-Stage.width)/2
footer_mc._width = footer_mc2 = footer_mc3._width=Stage.width
}
Stage.addListener(redim);
redim.onResize()

Si j'ai un calque en plus mc3 par exemple. Faut il fonctionner comme ça ?

#12 guillaume

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 54 messages

Posté 02 July 2008 - 11:19 AM

OKAY tout fonctionne parfaitement. Mais dans le flash player seulement.
Dès que l'animation est dans une page web ça ne fonctionne pas.

#13 paodao

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 7081 messages

Posté 02 July 2008 - 11:31 AM

heu oui autant pour moi "C" n'existe pas icon_lol.gif

sinon as tu bien mis 100% comme dimensions de ton animation dans la page html ?

#14 guillaume

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 54 messages

Posté 02 July 2008 - 11:38 AM

Pour le Stage.align j'ai mis B

Oui l'animation est bien à 100% tout fonctionne très bien dans le flash player. Mais pas le navigateur.
Y a t'il une solution?

#15 paodao

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 7081 messages

Posté 02 July 2008 - 11:53 AM

fait voir le code html de ta page

#16 guillaume

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 54 messages

Posté 02 July 2008 - 11:56 AM

Voici la page HTML.

Fichier(s) joint(s)

  • Fichier joint  site.html   2.9 Ko   10 téléchargement(s)

Modifié par guillaumerobin.fr, 02 July 2008 - 11:56 AM.


#17 paodao

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 7081 messages

Posté 02 July 2008 - 13:20 PM

salut

change
initWidth = Stage.width
par la vrai valeur
initWidth = 800

a+

#18 guillaume

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 54 messages

Posté 02 July 2008 - 13:31 PM

ça ne change rien.
il y a toujours le même problème.

il y a peut être un paramètre dans le code de la page à changer?

Action Script

	<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,65,0"
WIDTH="100%"
HEIGHT="100%"
id="indexMD"
ALIGN="">
<PARAM NAME=movie VALUE="indexMD.swf">
<PARAM NAME=quality VALUE=high>
<EMBED
src="indexMD.swf"
quality=high
WIDTH="100%"
HEIGHT="100%"
NAME="indexMD"
ALIGN=""
TYPE="application/x-shockwave-flash"
PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">
</EMBED>
</OBJECT>


#19 guillaume

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 54 messages

Posté 02 July 2008 - 13:35 PM

Je répond trop vite. Je vois se que tu veux dire.
Sauf que la largeur de l'écran change en fonction du pc sur lequel est chargé le site. Donc je ne peux pas mettre de valeur fixe.

#20 paodao

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 7081 messages

Posté 02 July 2008 - 13:52 PM

il faut que tu mette la valeur definni pour l'animation dans flash
si tu as creer ton animation en 800*600 alors tu met 800

a+

#21 guillaume

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 54 messages

Posté 02 July 2008 - 14:00 PM

icon_razz.gif icon_razz.gif icon_razz.gif icon_razz.gif icon_razz.gif icon_razz.gif icon_razz.gif MERCI Mile fois !
Effectivement ça fonctionne parfaitement !
Je suis trop Happy ! merci merci merci!

#22 paodao

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 7081 messages

Posté 03 July 2008 - 09:43 AM

salut

que ne comprend tu pas dans code ?

#23 guillaume

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 54 messages

Posté 07 July 2008 - 08:16 AM

Salut,
effectivement il y a une grande partie du code que je ne comprend pas du tout.

1. Pourquoi définir redim comme new Object ? -> Pourquoi new Object? A quoi ça sert?
2. Je ne comprend pas le 2ème ligne. Est ce que ça définit la valeur de la largeur de l'animation?

Action Script


redim = new Object;
initWidth = 1000


Si je ne me trompe pas, ici on ouvre la fonction redim. Mais pourquoi .onResize ?
Ou je suis complètement perdu c'est pour se qui suit. Pourquoi faut il mettre les clips les uns à la suite des autres espacés d'un = ?
Je pense que (initWidth-Stage.width)/2 et Stage.width sont appliqué au calque mis avant. Mais pourquoi un = entre chaque noms.

Les deux dernières lignes permettent d'ajouter un écouteur afin que la fonctionne s'applique en permanence.

Action Script


redim.onResize = function() {
footer_mc._x=footer_mc2._x=footer_mc3._x = (initWidth-Stage.width)/2
footer_mc._width = footer_mc2 = footer_mc3._width=Stage.width
}
Stage.addListener(redim);
redim.onResize()

Merci beaucoup pour l'aide dont vous m'apportez.

Modifié par guillaumerobin.fr, 07 July 2008 - 08:19 AM.


#24 paodao

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 7081 messages

Posté 07 July 2008 - 09:02 AM

alors
pour redim et onResize il faut que tu regarde du coté des evenements envoyer par la classe Stage
regarde ca pour comprendre les evenements
http://flash.mediabox.fr/index.php?showtopic=85011

Citation
¨Pourquoi faut il mettre les clips les uns à la suite des autres espacés d'un = ?


c'est juste pour appliquer la meme valeur a plusiseur objet en meme temps
par exemple
a=b=5
equivaut a
a=5
b=5

a+

#25 guillaume

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 54 messages

Posté 08 July 2008 - 08:49 AM

icon_razz.gif Merci pour ton aide paodao. J'ai parfaitement compris le système de ce code.
Bonne journée !



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)