salut
comment generé une liste de fichier depuis un repertoire distant.
salut
comment generé une liste de fichier depuis un repertoire distant.
si tu veux creer des fichers a partir de flash c'est impossible, il faut que tu transmet des variables à un langage comme php ou asp qui le fait pour toi
c'est possible de transmettre des variable depuis php vers flash
ouiEnvoyé par cloeuf
--> http://flash.developpez.com/faq
@++
en fait, ce que je veux faire c'est :
- generé une liste de fichiers du contenu d'un repertoire
---> je vois a peu pres comment faire en php dans un tableau
- recuperé cette liste sous flash pour crée un diapo
comme ca cela evite d'edité le diapo à chaque fois que j'ajoute des photos
salut,
oui tu peux le faireIl suffit de générer un xml à partir de php que tu récupère dans flash
le mieux est que tu essaie de faire quelque chose et que tu nous demande si tu coinces.
@++
ca y est j'ai generé mon xml en php
Mais j'arrive pas recuperé les donnée dans un tableau dans flash
mon code php pour le xml
mon code flash (pour l'instant)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 $index = 1; $fichier = "list-image.xml"; $fd = fopen("$fichier","w"); $_xml ="<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n"; $_xml .="<listimage>"; $dossier = opendir ("../image/modelisme/"); while ($fichier = readdir ($dossier)) { if ($fichier != "." && $fichier != "..") { //echo $fichier.'<br />'; $_xml .="<image>"; $_xml .= "<index>".$index."</index>"; $_xml .= "<lien>".$fichier."</lien>"; $_xml .= "</image>"; $index++; } } $_xml .= "</listimage>"; fwrite($fd, $_xml); closedir ($dossier);
apres, es-ce que je peux faire un code du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 // initialisation tableau tabimage = new Array(); taburl = new Array(); lien_doc = new XML(); lien_doc.onLoad = prendimage; // charge xml lien_doc.load("list-image.xml"); prendimage = function () { tabimage = lien_doc.firstChild.childNodes; imageCourant = 10; }; function LireImage(messNumero) { if (tabimage[messNumero].nodeName.toLowerCase() == "image") { taburl = tabimage[messNumero].childNodes; trace(taburl); } for (j=0; j<tabContenu.length; j++) { trace(j); type = tabContenu[j].nodeName.toLowerCase(); if (type == "index") { _root.indeximage = tabContenu[j].firstChild.nodeValue; } if (type == "lien") { _root.lienimage = tabContenu[j].firstChild.nodeValue; } } }
pour affecté à un mc ???
Code : Sélectionner tout - Visualiser dans une fenêtre à part attachBitmap (lienimage(imageCourant));
j'ai changé mon code (merci au tuto de Bolo)
dans image 1,_root
dans un bouton sur le _root
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 document_xml = new XML(); document_xml.ignoreWhite = true; _global.prendsimage = new Array(); _global.indeximage = new Array(); _global.imageCourante = 1; document_xml.onLoad = function(ok) { _global.noeuds = this.firstChild.childNodes; if (ok) { for (var i = 1; i<noeuds.length; i++) { indeximage[i] = noeuds[i].attributes.numero; prendsimage[i] = noeuds[i].attributes.lien; } } else { trace("probleme chargement"); stop; } }; document_xml.load('list-image.xml');
pour voir ce que ca donne http://loeuf.free.fr/new%20site/test%20diapo/diapo.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 on (press) { if (imageCourante<noeuds.length) { _global.imageCourante += 1; // Crée un clip parent pour stocker le conteneur. //_root.createEmptyMovieClip("my_mc", 0); // Crée un clip enfant dans "my_mc". // Clip devant être remplacé par l'image. //_root.contImage_mc.createEmptyMovieClip("container_mc", 99); // Utiliser MovieClipLoader pour charger l'image. var my_mcl:MovieClipLoader = new MovieClipLoader(); my_mcl.loadClip(prendsimage[imageCourante], _root.contImage_mc); } }
l'image s'affiche pas au centre, cela vient d'où ? parceque j'ai essayé de changé le chemin et ...
juste un truc, qui ne te pause pas spécialement problème mais c'est pas un peu long de générer le xml à chaque affichage ?
Je vais utiliser un truc comme ça et niveau ressource serveur, a tu testé ?![]()
salut
Pour l'instant je genere une liste avec une cinquantaine de fichier et c'est presque instantanée mais des fois ca rame cela doit venir d'un emcombrement des pages perso chez free.
tu peux tester ici
http://loeuf.free.fr/trombinoscope/
http://loeuf.free.fr/new%20site/diapo-kiwi.php
http://loeuf.free.fr/new%20site/diapo-modelisme.php
j'ai amélioré en triant le nom des fichiers en passant par un tableau.
a+ Christophe
c'est a dire, tu ne va plus chercher les fichier selon ton arborescence physique ?Envoyé par cloeuf
non l'ordre retourné par readdir est bizzare pas dans l'ordre alpha mais toujours de même si on reintialize (suis-je comprehensible ???)
c'est pourquoi j'ai tout mis dans un tableau puis un sort sur le tableau, generation du xml et hop...
ben ouai, en fait c'est l'ordre de ta boucle, elle lit tous les dossiers dans un ordre et elle les ajoute un par un, si tu voie ce que je veux dire, bon ben merci.
si tu peux me dire si mon code est bien tourné...
Je sais que ca sort du theme flash mais tu peux me donner ton avis...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 <? // Ouvrir le fichier $index = 1; $tabl = array (); $fichier = "list-image.xml"; $dir = "../new site/image/modelisme/"; $fd = fopen("$fichier","w"); $_xml ="<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\r\n"; $_xml .="<listimage>"; $dossier = opendir ($dir); while ($fichier = readdir ($dossier)) { if ($fichier != "." && $fichier != "..") { $array[] = $fichier; } } sort($array); $index = 1; foreach ($array as $fichier) { // $_xml .="<image "; $_xml .='numero="'.$index.'"'; $_xml .=' lien="'.$dir.$fichier.'"'; $_xml .="/>"; $index++; } $_xml .= "</listimage>"; fwrite($fd, $_xml); closedir ($dossier); fclose($fd); ?><style type="text/css"> <!-- body { background-color: #CCCCCC; } --> </style> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="640" height="480"> <param name="movie" value="test diapo/diapo.swf" /> <param name="quality" value="high" /> <embed src="test diapo/diapo.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="733" height="474"></embed> </object>
merci
non c'est tres bien, la seul chose que j'ai vue c'est que tu déclare 2 fois ton index de base
A part ça, j'est peux etre une solution pour la génération, si tu vérifie la date de création des photos (si c'est possible en php) et que tu compare avec la date de ton fichier xml, tu peux controler s'il y a besoin de scanner à nouveau ton répertoire pour recréer le fichier xml.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $index = 1;
![]()
le deuxieme $index c'est parceque je voulais incrementer le tableau (mais ca se fait automatiquement) il faut que je nettoie le code.
Pour le test de la date du xml c'est une bonne idée il faut que j'essaye.
merci
Partager