rogel a écrit :
ou a défaut d’autres contributions que les précédentes ?
Voilà ma petite cuisine pour charger des images, que je pense extensible à d'autres objets/éléments SPIP.
<!-- La boucle SPIP Flash •••••••••••••••••••••••••••••••••• -->
<BOUCLE_FLASH_ARTICLE(DOCUMENTS){id_article}{extension=swf}>
<div class="Flash_vitrine">
<object id="Flash" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="[(#LARGEUR)]" height="[(#HAUTEUR)]">
<param name="wmode" value="transparent" />
<param name="quality" value="high" />
<param name="movie" value="[(#FICHIER)]?domaine=[(#URL_SITE_SPIP)]&article=[(#ID_ARTICLE)]" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="[(#FICHIER)]?domaine=[(#URL_SITE_SPIP)]&article=[(#ID_ARTICLE)]"
width="[(#LARGEUR)]" height="[(#HAUTEUR)]">
<param name="wmode" value="transparent" />
<param name="quality" value="high" />
</object>
<!--<![endif]-->
</object>
</div>
</BOUCLE_FLASH_ARTICLE>
<!-- Le XML ( imagesflash.html )•••••••••••••••••••••••••••••••••• -->
#CACHE{0}
[(#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=png}>
[<img>(#URL_SITE_SPIP)]/[(#FICHIER)</img>]
</BOUCLE_IMGSPIP_PARAM>
</gallery>
<!-- Le Script Flash ( imagesflash.html )•••••••••••••••••••••••••••••••••• -->
/*•••••••••••••••••••••••••••••••••••••••••••••••••••••••••
Globalement : On passe au swf des variables, on l'envoi
lire un XML ( imgs_xml.load(domaine+element_spip); )
avec ces variables et SPIP lui donne la réponse; à savoir,
les urls des png a télécharger, en fonction de sa page d'appel.
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••*/
stop();
//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);
/*
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.enabled = true;
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 TournePages:MovieClipLoader = shadowpageright;
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();
// Tourner la page over
evt.onRollOver = function() {
shadowpageright.swapDepths(shadowpageright._parent.getNextHighestDepth());
shadowpageright.gotoAndPlay(2);
};
// Tourner la page out
evt.onRollOut = function() {
shadowpageright.gotoAndPlay(6);
};
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:5,
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);