spip flash

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)]&amp;article=[(#ID_ARTICLE)]" />
     <!--[if !IE]>-->
    <object type="application/x-shockwave-flash" data="[(#FICHIER)]?domaine=[(#URL_SITE_SPIP)]&amp;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);