Forums Développement Multimédia

Aller au contenu

centrer un clip par rapport à la scène

CODE Actionscript

14 réponses à ce sujet

#1 darsanha

    Ceinture Bleue

  • Members
  • PipPipPipPipPip
  • 76 messages

Posté 30 November 2007 - 19:08 PM

Bonjour à tous,
j'ai une scène en presque fullscreen (car il y à quand même la possiblité de modifier la taille de la fênettre) et j'essais, via un bouton, d'afficher un clip centré dans la scène...
jusque la ça marche sans soucis, par contre je voudrais qu'en changeant la taille de ma fenettre de navigateur , ce clip ce re-centre automatiquement par rapport au nouvelles dimensions de ma fenettre,
mais la franchement je galère pas mal...
si quelqu'un peux m'aiguiller un peu ça serait cool wink.gif

#2 boostevo

    Ceinture Orange

  • Members
  • PipPipPip
  • 38 messages

Posté 30 November 2007 - 19:37 PM

Salut ^^

Un petite recherche sur google avant de poster sa peut être utile ... Voila ce que j'ai trouvé :

Action Script

// alignement par default forcé sur centré ("")(ecrase les paramètres html)
Stage.align = "";
// ne pas redimensionner le contenu du player
Stage.scaleMode = "noScale";
/** lorsque scaleMode est definit a "noScale", l'objet Stage peut diffuser
/* l'evenement onResize aux ecouteurs qui possedent une methode onResize */
// definit une methode onResize sur monClip
monClip.onResize = function () {
centrerClip (this);
};
// enregistre monClip pour ecouter l'evenement onResize de Stage
Stage.addListener ("monClip");
// centrer monClip des le demarrage
// (monClip doit etre chargé dans le a ce moment là)
centrerClip (monClip);
// function redondante pour centrer un clip sur la scène
function centrerClip (clip) {
clip._x = Stage.width / 2 - clip._width / 2;
clip._y = Stage.height / 2 - clip._height / 2;
}

Ciao,
Flo

#3 darsanha

    Ceinture Bleue

  • Members
  • PipPipPipPipPip
  • 76 messages

Posté 30 November 2007 - 19:50 PM

j'ai bien sûre pas mal cherché avant de poster ma question.
merci pour ta réponse mais ça ne fonctionne pas ou je n'arrive pas à faire fonctionner le code...
en fait c'est plus exactement un fichier swf externe qui viens se superposer à la scène sur un niveau supérieur et qui devrait donc récupérer les paramètres de la scène pour se centrer par rapport à celle ci.
mais merci pour ta réponse icon_wink.gif

#4 boostevo

    Ceinture Orange

  • Members
  • PipPipPip
  • 38 messages

Posté 30 November 2007 - 21:41 PM

Re ^^

Je te joins un fla, en gros sa place les éléments où tu veux. Je pense que c'est ce que tu cherches. Et même si c'est un swf externe chargé, tu dois le mettre dans un clip non ? C'est à ce clip qu'il faut donner une occurence (tu verras avec le fla wink.gif).

Ciao,
Flo

Fichier(s) joint(s)



#5 tetsuoo

    Ceinture Blanche

  • Members
  • Pip
  • 2 messages

Posté 03 December 2008 - 02:29 AM

Très très utile ce ptit fla, merci smile.gif

Par contre j'ai voulu centrer ET redimensionner un même clip, ça ne fonctionne pas très bien icon_confused.gif
En local no problem, mais dès que je mets en ligne ça fonctionne une fois de temps en temps, le reste du temps rien ne s'affiche.

position = function () {

with (clip_mc) {
_x = Math.round(Stage.width/2-clip_mc._width/2);
_y = Math.round(Stage.height/2-clip_mc._height/2);

_width = Stage.width*1.25; // fonctionne mal online
_height = Stage.height*6; // fonctionne mal online
}
};

Modifié par Tetsuoo, 03 December 2008 - 02:32 AM.


#6 david.roux.63

    Ceinture Orange

  • Members
  • PipPipPip
  • 39 messages

Posté 25 September 2009 - 13:04 PM

Pour centrer un clip sur la scène (centrage horizontal et vertical), il y a une solution efficace (exemple pour une occurrence de clip qui s'appelle "conteneur") :

//initialisation de la position
conteneur._x = Stage.width / 2 - conteneur._width / 2;
conteneur._y = Stage.height / 2 - conteneur._height / 2;
// ajout d'un couteur pour garder le centrage si la fentre est redimensionne
conteneur_center_listener = new Object()
conteneur_center_listener.onResize = function()
{
  conteneur._x = Stage.width / 2 - conteneur._width / 2;
  conteneur._y = Stage.height / 2 - conteneur._height / 2;
}
Stage.addListener(conteneur_center_listener)

Tout ce code se met dans la première frame de l'anim :D

Modifié par zampai, 25 September 2009 - 13:06 PM.


#7 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7017 messages

Posté 25 September 2009 - 13:49 PM

A 9 mois près c'était tout bon ;-) ...

#8 david.roux.63

    Ceinture Orange

  • Members
  • PipPipPip
  • 39 messages

Posté 25 September 2009 - 13:54 PM

Voir le messageMonsieur_Spi, le 25 September 2009 - 13:49 PM, dit :

A 9 mois près c'était tout bon ;-) ...

En fait, j'essaye de contribuer au forum. Je pensais être utile. Je n'aurai pas dû ?
Je me dis que si quelqu'un comme moi cherche la solution et tombe là, ben il la trouve non ?

Bref, pourquoi ce lien vers "La grande question sur la vie, l'univers et le reste" ?

#9 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7017 messages

Posté 25 September 2009 - 14:34 PM

Citation

En fait, j'essaye de contribuer au forum.

C'est une bonne chose et merci ;-)

Citation

Je pensais être utile. Je n'aurai pas dû ?

C'est pas çà, c'est juste que au bout de 9 mois il a surement réglé son problème.
Sachant que ce genre de question reviens assez régulièrement tu auras tout le loisir d'aller répondre aux nouvelles questions du genre.
Il vaut mieux s'occuper des sujets actifs et vivants que ceux tombés dans l'oubli depuis X mois, c'est plus efficace ;-).

Citation

Je me dis que si quelqu'un comme moi cherche la solution et tombe là, ben il la trouve non ?

Oui mais dans ce cas tu va avoir du boulot car ce type de sujets délaissé par leur auteur est très nombreux sur le forum.
Tu serais plus efficace en donnant des solutions à ceux qui ont des projets en cours et ont besoin d'une réponse rapide ;-)

Citation

Bref, pourquoi ce lien vers "La grande question sur la vie, l'univers et le reste" ?
Parce que je suis un grand adepte du "guide du routard Galactique" pas le navet filmique sorti il y a 3 ou 4 ans mais la série de bouquins.
Il faut les avoir lu pour comprendre le sens profond de cette réponse ("42") et surtout de la question qui amène à cette réponse...

#10 tetsuoo

    Ceinture Blanche

  • Members
  • Pip
  • 2 messages

Posté 26 September 2009 - 14:07 PM

Merci pour ta réponse zampai.

C'est vrai que ça fait un peu tard, perso ça ne me servira que si je retrouve le courage de me remettre à Flash... ^^;
Et c'est vrai aussi que cela pourra servir à d'autres, donc ton intervention reste très utile, n'écoute pas ce râleur... :lol:

#11 cagoule51

    Ceinture Orange

  • Members
  • PipPipPip
  • 30 messages

Posté 29 September 2009 - 13:33 PM

Moi je trouve tres bien de continuer a repondre aux messages 3jours, ou 9 mois plus tard ! :D
La preuve, voila des heures que je cherche et je viens de trouver une reponse claire à toutes mes questions !!

Merci a vous !

#12 david.roux.63

    Ceinture Orange

  • Members
  • PipPipPip
  • 39 messages

Posté 29 September 2009 - 17:18 PM

En fait, comme dit l'administrateur, le forum est rempli de sujet qui finissent en "queue de pie", sans solution. La plupart du temps parce que les gens ont la flemme de préciser la solution quand il ont trouver leur bonheur, ou alors parce-qu'ils laissent tomber ! et ça c'est dommage !

#13 super-yann

    Ceinture Blanche

  • Members
  • Pip
  • 11 messages

Posté 12 November 2009 - 00:04 AM

Voir le messagezampai, le 25 September 2009 - 13:04 PM, dit :

Pour centrer un clip sur la scène (centrage horizontal et vertical), il y a une solution efficace (exemple pour une occurrence de clip qui s'appelle "conteneur") :

//initialisation de la position
conteneur._x = Stage.width / 2 - conteneur._width / 2;
conteneur._y = Stage.height / 2 - conteneur._height / 2;
// ajout d'un écouteur pour garder le centrage si la fenêtre est redimensionnée
conteneur_center_listener = new Object()
conteneur_center_listener.onResize = function()
{
  conteneur._x = Stage.width / 2 - conteneur._width / 2;
  conteneur._y = Stage.height / 2 - conteneur._height / 2;
}
Stage.addListener(conteneur_center_listener)

Tout ce code se met dans la première frame de l'anim :D

Moi ca marche pas (ta réponse aurait pu servir pour un autre comme moi :) )
C'est p-e parce que j'ai d'autre truc dans mon anim, dont un fond qui se resize automatiquement ? Je sais pas mais ca marche pas :)

#14 david.roux.63

    Ceinture Orange

  • Members
  • PipPipPip
  • 39 messages

Posté 12 November 2009 - 14:40 PM

Voir le messagesuper-yann, le 12 November 2009 - 00:04 AM, dit :

Moi ca marche pas (ta réponse aurait pu servir pour un autre comme moi :) )
C'est p-e parce que j'ai d'autre truc dans mon anim, dont un fond qui se resize automatiquement ? Je sais pas mais ca marche pas :)

Je confirme que ça marche.
Moi aussi j'ai plein d'autres truc qui se redimensionnent. C'est d'ailleurs l'intérêt de ce code. Tu peux le dupliquer pour autant de structures que tu veux, dans une même animation.

Alors,
- attention à bien écrire le code (c'est un truc de base qui résout pas mal de problème).
- vérifier que t'as bien des objets avec les noms d'occurrence correspondant dans le code
- peut être que la version de flash intervient ?

J'ai pas d'autre idées...

#15 fred81

    Ceinture Blanche

  • Members
  • Pip
  • 3 messages

Posté 27 January 2010 - 16:11 PM

Hello tout le monde,

j'ai un petit problème avec ça :
conteneur._x = Stage.width / 2 - conteneur._width / 2;
conteneur._y = Stage.height / 2 - conteneur._height / 2;
ça centre bien mon clip sur la scene mais par rapport au coin supérieur gauche de mon clip :s

c possible de changer le "centre" de mon clip via actionscript ??? (c un clip créé dynamiquement)

merciiiiiiiiiiiiii



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

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