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>