Flash et SPIP via XML

Bonjour ;

Voilà le problème…
Le FLASH en question est assigné aux articles de SPIP et ce n'est autre chose qu'un petit diaporama qui devrait charger les jpg associées à l'article.

1- Le lecture des XMLs

Il m'a été impossible de lui faire accepter un XML autre que ceux-ci et appelé avec un path en dur :
dist/imgsflash.html (c'est des fichiers XML en réalité, que SPIP nomme en html pour pouvoir les lire)

<?xml version="1.0"?>
<gallery>
  <img><![CDATA[DCP_0740.jpg]]></img>
</gallery>

<?xml version="1.0"?>
<gallery>
  <img>DCP_0740.jpg</img>
</gallery>

Parce que celui-ci il ne le voie tout simplement pas qu'il soit appelé en dur ou du genre
spip.php?page=imgsflash

<?php echo '<'.'?xml version="1.0" encoding="#CHARSET"?'.'>'; ?>
<BOUCLE_documentsa(DOCUMENTS){id_article}{extension==jpg}>
<gallery>
  <img>[(#FICHIER)]</img>
</gallery>
</BOUCLE_documentsa>

2- Le bricolage au niveau de l'object

Ç'a l'air d'aller mieux, mais ce n'est que l'air.

<BOUCLE_FLASH_ARTICLE(DOCUMENTS){id_article}{extension=swf}>
<object type="application/x-shockwave-flash" data="[(#FICHIER)]?domaine=[(#URL_SITE_SPIP)]&imgspip=<BOUCLE_IMGSPIP(DOCUMENTS){id_article}{extension==jpg}><img>[(#URL_SITE_SPIP)]/[(#FICHIER)]</img></BOUCLE_IMGSPIP>" width="[(#LARGEUR)]" height="[(#HAUTEUR)]">
<param name="movie" value="[(#FICHIER)]?domaine=[(#URL_SITE_SPIP)]&imgspip=<BOUCLE_IMGSPIP_PARAM(DOCUMENTS){id_article}{extension==jpg}><img>[(#URL_SITE_SPIP)]/[(#FICHIER)]</img></BOUCLE_IMGSPIP_PARAM>" />
<p>You need flash player</p>
</object>
</BOUCLE_FLASH_ARTICLE>

Parce que si là il gobe les variables et les affiche (affiche le chemin), il ne les traite pas (ne charge pas l'image).

3- J'ai essayé aussi au niveau des fichiers backend, en faisant des copies, mais ça n'a rien donné.

Auriez-vous une piste, un diagnostique, un fichier d'exemple ?

Merci d'avance et excusez le Hors Sujet, si c'en est un.

Cordialement

Luis

salut luis, et au niveau de ton fla, tu l’appelles comment ton fichier xml ?, tu es en quelle version de flash ?

++

Le 09/10/07, Luis Speciale <speciale@ouvaton.org> a écrit :

Bonjour ;

Voilà le problème…
Le FLASH en question est assigné aux articles de SPIP et ce n’est autre
chose qu’un petit diaporama qui devrait charger les jpg associées à
l’article.

1- Le lecture des XMLs

Il m’a été impossible de lui faire accepter un XML autre que ceux-ci et
appelé avec un path en dur :
dist/imgsflash.html (c’est des fichiers XML en réalité, que SPIP
nomme en html pour pouvoir les lire)

<?xml version="1.0"?> <?xml version="1.0"?> DCP_0740.jpg

Parce que celui-ci il ne le voie tout simplement pas qu’il soit appelé
en dur ou du genre
spip.php?page=imgsflash

<?php echo '<'.'?xml version="1.0" encoding="#CHARSET"?'.'>'; ?>

<BOUCLE_documentsa(DOCUMENTS){id_article}{extension==jpg}>

[(#FICHIER)]

</BOUCLE_documentsa>

2- Le bricolage au niveau de l’object

Ç’a l’air d’aller mieux, mais ce n’est que l’air.

<BOUCLE_FLASH_ARTICLE(DOCUMENTS){id_article}{extension=swf}>

You need flash player

Parce que si là il gobe les variables et les affiche (affiche le
chemin), il ne les traite pas (ne charge pas l’image).

3- J’ai essayé aussi au niveau des fichiers backend, en faisant des
copies, mais ça n’a rien donné.

Auriez-vous une piste, un diagnostique, un fichier d’exemple ?

Merci d’avance et excusez le Hors Sujet, si c’en est un.

Cordialement

Luis


liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip.net/fr_article1054.html


Karim Belkacem, Ergonomind
11, rue Neuve Sainte-Catherine, 13007 Marseille
Gsm:(+33)6 818 375 63 - Fixe:(+33)4 915 480 46
http://www.ergonomind.com

karim belkacem a écrit :

salut luis, et au niveau de ton fla, tu l'appelles comment ton fichier xml ?, tu es en quelle version de flash ?

Hola le Marseillais !-)

Je ne l'appelle plus, je l'insulte !

//XML instance
var imgs_xml:XML = new XML();
imgs_xml.ignoreWhite = true;
imgs_xml.onLoad = function(success:Boolean) {
  try {
    /* Parse image names to array. */
    if (success) {
      var images:Array = this.firstChild.childNodes;
      var gallery_array:Array = new Array();
      for (var i = 0; i<images.length; i++) {
        gallery_array.push({src:images[i].firstChild.nodeValue});
      }
      /* call the displayGallery on the Stage. */
      displayGallery(gallery_array);
    } else {
      throw new Error("Unable to parse XML");
    }
  } catch (e_err:Error) {
    trace(e_err.message);
  } finally {
    delete this;
  }
};

/* J'ai tout essayé avec les fichiers xml, à mon avis il est tatillon FLASH à ce niveau là,
en tout cas je ne pas réussi à trouver la c… voilà pourquoi je vous casse encore les vôtres !-)
*/

// load the gallery.xml file from the current directory.
imgs_xml.load(domaine+"spip.php?page=imagesflash");

La version de FLASH est la CS3 mais l'exportation est en FLASH 8 et AS 2.0.

Ça fait trous jours que je me bâts avec ce merdier. Je commence à croire que je deviens taré à force de vieillir.

Entre parenthèses, quel match ! Epique. Une de plus belles pages de l'histoire du rugby, et il a fallu que ce soit les frogs qui l'écrivent !-)
Fille de joie !

A + et merci de te soucier d'un Argentin !-)

Luis Speciale a écrit :

karim belkacem a écrit :
  

salut luis, et au niveau de ton fla, tu l'appelles comment ton fichier xml ?, tu es en quelle version de flash ?

Hola le Marseillais !-)

Je ne l'appelle plus, je l'insulte !

//XML instance
var imgs_xml:XML = new XML();
imgs_xml.ignoreWhite = true;
imgs_xml.onLoad = function(success:Boolean) {
  try {
    /* Parse image names to array. */
    if (success) {
      var images:Array = this.firstChild.childNodes;
      var gallery_array:Array = new Array();
      for (var i = 0; i<images.length; i++) {
        gallery_array.push({src:images[i].firstChild.nodeValue});
      }
      /* call the displayGallery on the Stage. */
      displayGallery(gallery_array);
    } else {
      throw new Error("Unable to parse XML");
    }
  } catch (e_err:Error) {
    trace(e_err.message);
  } finally {
    delete this;
  }
};
  

Hola Luis
attention à domaine il faut le chemin complet avec www obligatoire soit http://www.monsite.com

tiens un lien que j’utilise avec flash et spip, http://www.flashkod.com/gma/galerie%20image voit ce qui te conient

Je reviens vers toi si j’ai plus d’infos

VIVA ARGENTINA, non je rigole :slight_smile: le math de debut de tournoi, c’était pour nous échauffé, on vous attend en finale

++

Le 09/10/07, Luis Speciale <speciale@ouvaton.org> a écrit :

karim belkacem a écrit :

salut luis, et au niveau de ton fla, tu l’appelles comment ton fichier
xml ?, tu es en quelle version de flash ?

Hola le Marseillais !-)

Je ne l’appelle plus, je l’insulte !

//XML instance
var imgs_xml:XML = new XML();
imgs_xml.ignoreWhite = true;
imgs_xml.onLoad = function(success:Boolean) {
try {
/* Parse image names to array. /
if (success) {
var images:Array = this.firstChild.childNodes;
var gallery_array:Array = new Array();
for (var i = 0; i<images.length; i++) {
gallery_array.push({src:images[i].firstChild.nodeValue});
}
/
call the displayGallery on the Stage. */
displayGallery(gallery_array);
} else {
throw new Error(« Unable to parse XML »);
}
} catch (e_err:Error) {
trace(e_err.message);
} finally {
delete this;
}
};

/* J’ai tout essayé avec les fichiers xml, à mon avis il est tatillon
FLASH à ce niveau là,
en tout cas je ne pas réussi à trouver la c… voilà pourquoi je vous
casse encore les vôtres !-)
*/

// load the gallery.xml file from the current directory.
imgs_xml.load(domaine+" spip.php?page=imagesflash");

La version de FLASH est la CS3 mais l’exportation est en FLASH 8 et AS 2.0.

Ça fait trous jours que je me bâts avec ce merdier. Je commence à croire
que je deviens taré à force de vieillir.

Entre parenthèses, quel match ! Epique. Une de plus belles pages de
l’histoire du rugby, et il a fallu que ce soit les frogs qui l’écrivent !-)
Fille de joie !

A + et merci de te soucier d’un Argentin !-)


liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip.net/fr_article1054.html


Karim Belkacem, Ergonomind
11, rue Neuve Sainte-Catherine, 13007 Marseille
Gsm:(+33)6 818 375 63 - Fixe:(+33)4 915 480 46
http://www.ergonomind.com

jo@ki-learning.fr a écrit :

Hola Luis
attention à domaine il faut le chemin complet avec www obligatoire soit http://www.monsite.com

Mon cher Jo :

J'ai essayé ça aussi. C'est une des raisons pour lesquelles j'ai posté. Je me disais qu'un gourou aller descendre et me dire comment faire pour lui passer toutes les variables de SPIP à cet abruti de Flash.

Mais si t'as un exemple où une piste je suis prenneur.

Cordialement

Luis

je pense a un autre truc, tu connais peut etre http://flash.mediabox.fr/ y a pas mal de brute en flash surtout en as2 et maintenant 3 qui y trainent, inscrit toi, tu peux trouver ta solution a ton problème

++


Karim Belkacem, Ergonomind
11, rue Neuve Sainte-Catherine, 13007 Marseille
Gsm:(+33)6 818 375 63 - Fixe:(+33)4 915 480 46
http://www.ergonomind.com

Luis Speciale a écrit :

jo@ki-learning.fr a écrit :

Hola Luis
attention à domaine il faut le chemin complet avec www obligatoire soit http://www.monsite.com
    
Mon cher Jo :

J'ai essayé ça aussi. C'est une des raisons pour lesquelles j'ai posté. Je me disais qu'un gourou aller descendre et me dire comment faire pour lui passer toutes les variables de SPIP à cet abruti de Flash.

Mais si t'as un exemple où une piste je suis prenneur.

Cordialement

Luis

_______________________________________________
  

Quelle est l'adresse de la page spip qui renvoie le XML? (si tu veux que je regarde)Elle devrait renvoyer qq chose comme:

<?xml version="1.0"?>
<gallery>
  <img>http://www.monsite.com/DCP_0740.jpg&lt;/img&gt;
</gallery>

tu peux essayer ton flash en 'loadant' un fichier à extension XML imgs_xml.load("monsite.com - Ce site web est à vendre ! - Ressources et information concernant monsite Resources and Information.);

si c'est bon côté flash reste à voir côté spip à renvoyer du bon xml
Espérons que tu trouveras avant la finale Argentine France

jo@ki-learning.fr a écrit :

Espérons que tu trouveras avant la finale Argentine France

D'abord, nous avons les Springboks et vous les autres. J'en doute fort de nos respectives présences. Pour ce qui est de trouver, nous sommes pas forcément intelligents, les argentins, mais nous sommes assez obstinées. Comme disait l'autre : "a mind not gifted to discover truth but tenacious to hold it".

Voilà le travail, au cas où ça servirait à quelqu'un, ne serait-ce que comme un départ à oublier rapidement.

Globalement : on passe au swf des variables, on l'envoi
lire un XML avec ces variables et SPIP lui donne la réponse; à savoir,
les urls des jpg a télécharger, en fonction de sa page d'appel.

Merci à toi Jo, et à toi aussi, le Marseillais.

Le AS
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••*/

//La position des images

_global.thisX = 15;
_global.thisY = 15;

/*
Les variables pour communiquer avec SPIP,
respectivement #URL_SITE_SPIP, #ID_ARTICLE
et le chemin qui le mème jusqu'à la lecture de imagesflash.html.
*/

var domaine;
var article;
var element_spip = ("/spip.php?page=imagesflash&id_article="+article);

goScene_btn.enabled = true;

//Le bouton de recharge fait par David

/*
On fait une boucle sur tous les objets de la scène
se nommant "imageX_mc", X étant incrémenté tant
qu'un objet portant ce nom (imageX_mc) existe
Ensuite, on replace le clip à la position x et y
par défaut (correspondant aux variables globales
définies au début du script _global.thisX
et _global.thixY...
*/

goScene_btn.onRelease = function() {
  var i = -1;
  while (this._parent["image"+(i+1)+"_mc"] != undefined) {
    i++;
    this._parent["image"+i+"_mc"]._x = thisX;
    this._parent["image"+i+"_mc"]._y = thisY;
  }
};

// Transitions
import mx.transitions.*;
import mx.transitions.easing.*;

//XML instance
var imgs_xml:XML = new XML();
imgs_xml.ignoreWhite = true;
imgs_xml.onLoad = function(success:Boolean) {
  try {
    /* On fait un tableau. */
    if (success) {
      var images:Array = this.firstChild.childNodes;
      var gallery_array:Array = new Array();
      for (var i = 0; i<images.length; i++) {
        gallery_array.push({src:images[i].firstChild.nodeValue});
      }
      /*On envoi sur la scène */
      displayGallery(gallery_array);
    } else {
      throw new Error("Unable to parse XML");
    }
  } catch (e_err:Error) {
    trace(e_err.message);
  } finally {
    delete this;
  }
};

// On charge les images.
imgs_xml.load(domaine+element_spip);

// Créer clips
function displayGallery(gallery_array:Array) {
  var galleryLength:Number = gallery_array.length;
  for (var i = 0; i<galleryLength; i++) {
    var thisMC:MovieClip = this.createEmptyMovieClip("image"+i+"_mc", i);
    mcLoader_mcl.loadClip(gallery_array[i].src,thisMC);
    thisMC._x = _global.thisX;
    thisMC._y = _global.thisY;
  }
}

// Chargeurs et cafteurs
var mcLoader_mcl:MovieClipLoader = new MovieClipLoader();
var mclListener:Object = new Object();
mclListener.onLoadStart = function() {
};

// OK, on peut bouger
mclListener.onLoadInit = function(evt:MovieClip) {
  evt._parent[evt.getDepth()+"_mc"].removeMovieClip();
  evt.onPress = function() {
    this.startDrag();
    //On garde X
    this.origX = this._x;
    this.origY = this._y;
    // Plan
    this.origDepth = this.getDepth();
    //Image au premier plan
    this.swapDepths(this._parent.getNextHighestDepth());
    // Transition
   mx.transitions.TransitionManager.start(this,{type:mx.transitions.Photo, direction:0, duration:1, easing:mx.transitions.easing.Strong.easeOut, param1:empty, param2:empty});
    evt.onRelease = function() {
      this.stopDrag();
      this._x = 540;
      this._y = 371;
    };
  };
};
mcLoader_mcl.addListener(mclListener);

La vrai-faux XML
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••*/

#CACHE{3600}
[(#HTTP_HEADER{Content-type: text/xml[; charset=(#CHARSET)]})]
<?php echo '<' ?>?xml version="1.0"[ encoding="(#CHARSET)"]?>
<gallery>
<BOUCLE_IMGSPIP_PARAM(DOCUMENTS){id_article=#ID_ARTICLE}{extension==jpg}>
[<img>(#URL_SITE_SPIP)]/[(#FICHIER)</img>]
</BOUCLE_IMGSPIP_PARAM>
</gallery>

Et la boucle mère
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••*/

<BOUCLE_FLASH_ARTICLE(DOCUMENTS){id_article}{extension=swf}>
<object type="application/x-shockwave-flash"
data="[(#FICHIER)]?domaine=[(#URL_SITE_SPIP)]&article=[(#ID_ARTICLE)]"
width="[(#LARGEUR)]"
height="[(#HAUTEUR)]">
<param name="movie"
value="[(#FICHIER)]?domaine=[(#URL_SITE_SPIP)]&article=[(#ID_ARTICLE)]" />
<p>You need flash player</p>
</object>
</BOUCLE_FLASH_ARTICLE>

trop fort ses argentins, respect :slight_smile:

Le 10/10/07, Luis Speciale <speciale@ouvaton.org> a écrit :

jo@ki-learning.fr a écrit :

Espérons que tu trouveras avant la finale Argentine France

D’abord, nous avons les Springboks et vous les autres. J’en doute fort
de nos respectives présences. Pour ce qui est de trouver, nous sommes
pas forcément intelligents, les argentins, mais nous sommes assez
obstinées. Comme disait l’autre : « a mind not gifted to discover truth
but tenacious to hold it ».

Voilà le travail, au cas où ça servirait à quelqu’un, ne serait-ce que
comme un départ à oublier rapidement.

Globalement : on passe au swf des variables, on l’envoi
lire un XML avec ces variables et SPIP lui donne la réponse; à savoir,
les urls des jpg a télécharger, en fonction de sa page d’appel.

Merci à toi Jo, et à toi aussi, le Marseillais.

Le AS
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••*/

//La position des images

_global.thisX = 15;
_global.thisY = 15;

/*
Les variables pour communiquer avec SPIP,
respectivement #URL_SITE_SPIP, #ID_ARTICLE
et le chemin qui le mème jusqu’à la lecture de imagesflash.html.
*/

var domaine;
var article;
var element_spip = (« /spip.php?page=imagesflash&id_article= »+article);

goScene_btn.enabled = true;

//Le bouton de recharge fait par David

/*
On fait une boucle sur tous les objets de la scène
se nommant « imageX_mc », X étant incrémenté tant
qu’un objet portant ce nom (imageX_mc) existe
Ensuite, on replace le clip à la position x et y
par défaut (correspondant aux variables globales
définies au début du script _global.thisX
et _global.thixY…
*/

goScene_btn.onRelease = function() {
var i = -1;
while (this._parent[« image »+(i+1)+« _mc »] != undefined) {
i++;
this._parent[« image »+i+« _mc »]._x = thisX;
this._parent[« image »+i+« _mc »]._y = thisY;
}
};

// Transitions
import mx.transitions.;
import mx.transitions.easing.
;

//XML instance
var imgs_xml:XML = new XML();
imgs_xml.ignoreWhite = true;
imgs_xml.onLoad = function(success:Boolean) {
try {
/* On fait un tableau. */
if (success) {
var images:Array = this.firstChild.childNodes;
var gallery_array:Array = new Array();
for (var i = 0; i<images.length; i++) {
gallery_array.push({src:images[i].firstChild.nodeValue});
}
/*On envoi sur la scène */
displayGallery(gallery_array);
} else {
throw new Error(« Unable to parse XML »);
}
} catch (e_err:Error) {
trace(e_err.message);
} finally {
delete this;
}
};

// On charge les images.
imgs_xml.load(domaine+element_spip);

// Créer clips
function displayGallery(gallery_array:Array) {
var galleryLength:Number = gallery_array.length;
for (var i = 0; i<galleryLength; i++) {
var thisMC:MovieClip = this.createEmptyMovieClip(« image »+i+« _mc », i);
mcLoader_mcl.loadClip(gallery_array[i].src,thisMC);
thisMC._x = _global.thisX;
thisMC._y = _global.thisY;
}
}

// Chargeurs et cafteurs
var mcLoader_mcl:MovieClipLoader = new MovieClipLoader();
var mclListener:Object = new Object();
mclListener.onLoadStart = function() {
};

// OK, on peut bouger
mclListener.onLoadInit = function(evt:MovieClip) {
evt._parent[evt.getDepth()+« _mc »].removeMovieClip();
evt.onPress = function() {
this.startDrag();
//On garde X
this.origX = this._x;
this.origY = this._y;
// Plan
this.origDepth = this.getDepth();
//Image au premier plan
this.swapDepths(this._parent.getNextHighestDepth());
// Transition

mx.transitions.TransitionManager.start (this,{type:mx.transitions.Photo,
direction:0, duration:1, easing:mx.transitions.easing.Strong.easeOut,
param1:empty, param2:empty});
evt.onRelease = function() {
this.stopDrag ();
this._x = 540;
this._y = 371;
};
};
};
mcLoader_mcl.addListener(mclListener);

La vrai-faux XML
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••*/

#CACHE{3600}
[(#HTTP_HEADER{Content-type: text/xml[; charset=(#CHARSET)]})]

<?php echo '<' ?>?xml version="1.0"[ encoding="(#CHARSET)"]?> [(#URL_SITE_SPIP)]/[(#FICHIER)]

Et la boucle mère
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••*/

<BOUCLE_FLASH_ARTICLE(DOCUMENTS){id_article}{extension=swf}>

You need flash player


liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip.net/fr_article1054.html


Karim Belkacem, Ergonomind
11, rue Neuve Sainte-Catherine, 13007 Marseille
Gsm:(+33)6 818 375 63 - Fixe:(+33)4 915 480 46
http://www.ergonomind.com