begin process at 2012 05 27 09:41:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

positionner dynamiquement un clip en fonction d un clip precedant....


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

positionner dynamiquement un clip en fonction d un clip precedant....

lundi 20 novembre 2006 à 21:37:37 | positionner dynamiquement un clip en fonction d un clip precedant....

groovybronx

salut
alors voila le probleme :
j essaye de faire un genre de gallerie dynamique qui charge les images a partir d un fichier xml et pour cela j ai besoin que chaque image se place dans un movie clip qd elle est chargée . jusque la tt va bien mais le probleme c est que j aimerai qu elle se colle a la precedente!
donc le soucis est :
comment donner la position img._x ?


ma logique voudrait que img._x = "img._x  de l image precedente" +"la largeur de l'image precedente"
suis je sur la bonne voie?


voici une partie de mon code:


for (var i = 0; i<noeuds.length; i++) {
  //nom de l'image
  var nom = noeuds[i].attributes.name;
// largeur de l image
  var img.width = noeuds[i].attributes.width;
  //On crée un clip vide et le positionne
  var img = this.createEmptyMovieClip("img"+i, i++);
  img._x = noeuds[i-1].attributes.width;  c est la que ca bloque
lundi 20 novembre 2006 à 21:39:59 | Re : positionner dynamiquement un clip en fonction d un clip precedant....

groovybronx

je precise que bien evidemment la largeur des images n est pas toujours la meme d ou la difficultée (pour moi en tout cas ):)))
mardi 21 novembre 2006 à 08:20:17 | Re : positionner dynamiquement un clip en fonction d un clip precedant....

Girou

Membre Club
Bonjour,
essaye comme ceci :

var positionX=0; // position de base du premier clip
var largeur =0;
for (var i = 0; i<noeuds.length; i++) {
  //nom de l'image
  var nom = noeuds[i].attributes.name;
// largeur de l image
if (i>0){
 largeur = noeuds[i-1].attributes.width;
}
  //On crée un clip vide et le positionne
  var img = this.createEmptyMovieClip("img"+i, 100+i);
  img._x =positionX + largeur; 
  positionX+=
noeuds[i].attributes.width
}

@+

signature
mardi 21 novembre 2006 à 10:45:44 | Re : positionner dynamiquement un clip en fonction d un clip precedant....

groovybronx

salut ,
je viens de tester ta solution mais pour l instant ca ne fonctionne pas malheureusement .
je ne vois que la derniere image qui est positionnée en x=0
j y retourne!

si quelqu un a des precisions  ou  d autres solutions elles sont toujours les bienvenues :)
mardi 21 novembre 2006 à 10:46:01 | Re : positionner dynamiquement un clip en fonction d un clip precedant....

groovybronx

salut ,
je viens de tester ta solution mais pour l instant ca ne fonctionne pas malheureusement .
je ne vois que la derniere image qui est positionnée en x=0
j y retourne!

si quelqu un a des precisions  ou  d autres solutions elles sont toujours les bienvenues :)
mardi 21 novembre 2006 à 15:00:06 | Re : positionner dynamiquement un clip en fonction d un clip precedant....

Girou

Membre Club
Salut,

1° es-tu sur que le xml est chargé completement lorsque tu lances ta fonction de positionnement des clips ??
2° si tu fait un trace(noeuds[i].attributes.width) dans ta boucle de positionnement des clips, est-ce que cela te sort les bonnes valeurs ??


@+

signature
mardi 21 novembre 2006 à 21:43:30 | Re : positionner dynamiquement un clip en fonction d un clip precedant....

groovybronx

j ai essayé avec la fonction trace mais rien ne s affiche....
alors voila je met la source complete et si quelque trouve la solution se serait super cool :)
tout ce que je veux c est reussir a creer un slideshow avec les photos qui se chargent de maniere dynamique et se placent l une a coté de l autre sur un axe horizontal sans avoir de restriction au niveau des largeurs de fichiers ...

c est loin d etre fini mais pour avancer il faudrait deja que j arrive a resoudre ce probleme de placement....


HEEEEEEEEEELP!




fichier getImgList.php :


<?php

//Les répertoires
$rep_imgs = "./images";
$rep_mini = "./mini";

//Les dimensions max des miniatures
$width_mini = 300;
$height_mini = 400;

//La variable renvoyer à flash
$retour="<racine>";

//On ouvre le dossier
$rep=opendir($rep_imgs);

/*Expression régulière pour identifier les fichiers jpg ou jpeg quelque soit leur casse */
$regex="#[-_a-z0-9]+.jp[e]?g#i";

//On parcours tous les fichiers
while ($file = readdir($rep)){

 //Si c'est un jpg
 if(preg_match($regex, $file)){

  //On copie l'image
       $src_img = imagecreatefromjpeg("$rep_imgs/$file");

  //Si la miniature n'existe pas
  if(!file_exists("$rep_mini/$file")){

   //On cherhe la plus grande dimension
   if(imagesx($src_img) > imagesy($src_img)){
    //On calcul la proportion
    $proportion = $width_mini/imagesx($src_img);

    //Nouvelles dimensions
    $new_w = $width_mini;
    $new_h = imagesy($src_img)*$proportion;
   }else{
    //On calcul la proportion
    $proportion = $height_mini/imagesy($src_img);

    //Nouvelles dimensions
    $new_h = $height_mini;
    $new_w = imagesx($src_img)*$proportion;
   }

   //On crée la nouvelle image
   $dst_img = imagecreatetruecolor($new_w,$new_h);
   imagecopyresized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,imagesx($src_img),imagesy($src_img));

   //On l'enregistre
   imagejpeg($dst_img,"$rep_mini/$file");
  }

  //On rajoute un noeud xml avec le nom de l'image et ses dimensions
  $retour .= "<img name='$file' width='".imagesx($src_img)."' height='".imagesy($src_img)."' />";
 }
}

//On ferme le premier noeud
$retour .= "</racine>";

//On ferme le dossier
closedir($rep);

//On renvoie le xml au format utf8
echo utf8_encode($retour);

?>


fichier galerie.swf:

var imglist = new XML(); //création de l'objet XML
imglist.ignoreWhite=true;// les espaces vides sont supprimés
imglist.load("getImgList.php");//chargement du document PHP
      stop();
imglist.onLoad = function() {
 createGalerie();
      play(); }; //quand le chargement du document est terminé , lancement de l'animation

 

//Création de la galerie
function createGalerie() {
 //liste des images
 var noeuds = imglist.firstChild.childNodes; 
 
 
 // position de base du premier clip
 
 
for (var i = 0; i<noeuds.length; i++) {
 var positionX=0;  
    var largeur=0;
  var nom = noeuds[i].attributes.name;
     // largeur de l image
      if (i>0){
      largeur = noeuds[i-1].attributes.width;
   
      }
      else { largeur=0 ;}
  //On crée un clip vide et le positionne
  var mc = this.createEmptyMovieClip("img"+i, i);
  positionX+=noeuds[i-1].attributes.width;
  //mc._x =(positionX + largeur); 
  


var view = mc.createEmptyMovieClip("view", 0);
  view.loadMovie("images/"+nom);
  view._x = positionX + largeur
}
}

mercredi 22 novembre 2006 à 21:56:23 | Re : positionner dynamiquement un clip en fonction d un clip precedant....

groovybronx

alors oui a pres des recherches , la version actuel de mon fichier me renvois les bonnes valeurs de largeur avec la fonction trace .
que dois je faire chef? :)
mercredi 22 novembre 2006 à 22:05:08 | Re : positionner dynamiquement un clip en fonction d un clip precedant....

groovybronx

autre possibilité je pense ce coup ci etre sur la bonne piste , ne devrais je  pas cibler mes clip a l aide de la comande "this" ? en effet en les placant un peu au hasard je viend d obtenir un effet etrange qui redimensionne ma page web en fonction de la taille de l explorateur .... (je sais pas ci c est clair )
jeudi 23 novembre 2006 à 13:28:11 | Re : positionner dynamiquement un clip en fonction d un clip precedant....

Girou

Membre Club
Bon,

on va procéder par étape...(dans createGalerie, vu que c'est là que ca coice)
1° sortire de la boucle
var positionX=0;  
    var largeur=0;
sinon les valeur se réinitialisent à chaque itération
2° pour le moment on laisse tomber img et view, je vois pas (encore) pourquoi tu fait un clip dans un clip pour chaque miniature

essaye avec la fonction codée comme ceci

function createGalerie ()
{
 //liste des images
 var noeuds = imglist.firstChild.childNodes;
 // position de base du premier clip
 var positionX = 0;
 var largeur = 0;
 for (var i = 0; i < noeuds.length; i ++)
 {
  var nom = noeuds [i].attributes.name;
  // largeur de l image
  if (i > 0)
  {
   largeur = noeuds [i - 1].attributes.width;
  }
  //On crée un clip vide et on le positionne
  var mc = this.createEmptyMovieClip ("img" + i, 1000+i);
  positionX += largeur
  mc._x =(positionX + largeur);
  mc.loadMovie ("images/" + nom);
 }
}

et dit moi ce qui ce passe...

@+

signature not found

1 2

Cette discussion est classée dans : image, var, clip, img, precedente


Répondre à ce message

Sujets en rapport avec ce message

Propriétés d'un clip [ par mdog ] Bonjour a tous,Je me remet au Flash apres quelques temps sans toucher a l'action script et j'ai un petit probleme.Dans mon anim je charge une image av Problème loadmovie [ par mailys6 ] Voici une question bête, mais je ne comprend pas pourquoi j'ai ce problème.Je crée dynamiquement un clip avec createEmptyMovieClip, dans lequel je veu Désespoir : une anim qui n'en finit pas [ par kjouve ] Y aura t'i une bonne ame pour m'aider ?Je ne parviens pas arreter cette boucle après une première lecture.C'est urgent et j'ai tout essayer : help !!! Désespoir : une anim qui n'en finit pas [ par kjouve ] Y aura t'i une bonne ame pour m'aider ?Je ne parviens pas arreter cette boucle après une première lecture.C'est urgent et j'ai tout essayer : help !!! Désespoir : une anim qui n'en finit pas [ par kjouve ] Y aura t'i une bonne ame pour m'aider ?Je ne parviens pas arreter cette boucle après une première lecture.C'est urgent et j'ai tout essayer : help !!! images superposées [ par SpicyJR ] Voici mon code qui me permet de charger en rafalle des images.Pour le moment, les images se chargent et se superposent, aussi, pour pouvoir les décale ouverture de popup sur clic d'un movie clip creer dynamiquement [ par yosh ] Bonjour a tous Je voudrais savoir comment faire pour ouvrir une popup sur le clic d'un movie clip Explication: G le code suivant qui crer dynamique Affichage d'IMG aléatoire ds une séquence (prob de code) [ par Cybernaute ] Bonjour,J'ai un ptit problème avec mon animation flash.Je souhaite (pour créer mon écran de veille), que des images s'affichent aléatoirement, et en o clip dynamique [ par MatLeCat ] Je cherche à créer un clip de 100 frame où chacune des frame est chargée dynamiquement.Mon problème est que j'arrive à cherger uniquement la première Diaporama multiple a partir d'un fichier xml ...besoin d'aide !!! [ par ViNCiNTO ] Bonjour, je cherche à créer un diaporama a partir d'un fichier xml. Pour l'instant j'arrive à afficher les images une par une (et leur nom : legende)


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,186 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales