Hello,
je suis en train d'apporter une amélioration aux script 16971 qui est une gallerie tout en action script, assez bien foutue d'ailleurs.
Je suis en train d'ajouter des liens previous et next pour pouvoir visualiser autant d'images qu'on veut sans que les vignettes soient trop petites.
J"utilise la fonction prototype.chargement_jpg avec i=0 pour charger les images et i=1 pour les deux images des fleches previous et next. Mon idée est quand on clique sur la fleche : mc.onPress, je relance une fonction qui va vider les images en cours pour charger les suivantes. Mais je n'en suis pas encore là car BUG : ce simple test m'appelle la fonction "affiche" à l'éxécution, comme si au chargement de mes flêches le onpress était exécuté.
Noté que pour les images à visionner il n'y a pas ce problème, on ne passe dans le onpress que quand les images sont cliquées.
QUE PASSA? une idée? je masteurise bien le C++ et le Java mais débute en AS, y a des trucs qui doivent m'échapper...
pour info cette fonction est appelé pour chaque image.
//-------------- chargement d'une image --------------------------------
MovieClip.prototype.chargement_jpg = function(jpg, couleur, larg, haut, i) {
var cible;
var d;
if(i==0)
cible = this.dest;
if(i==1)
cible = this.fleche;
cible._alpha = 0;
cible.loadMovie(jpg);
var id = setInterval(function (mc) {
if(i==0)
d = mc["dest"];
if(i==1)
d = mc["fleche"];
if (d._width > 0) {
clearInterval(id);
d.memw = d._width;
d.memh = d._height;
d.proportion = (d._width / d._height);
d._width = Math.floor(mc._w0 * 2);
d._height = Math.floor(mc._h0 * 2);
d._alpha = 99;
with (d) {
lineStyle(4, 0x444444, 80);
moveTo(this._x + memw + 1, this._y - 1);
lineTo(this._x + memw + 1, this._y + memh + 1);
lineTo(this._x - 1, this._y + memh + 1);
lineStyle(4, 0xaaaaaa, 80);
lineTo(this._x - 1, this._y - 1);
lineTo(this._x + memw + 1, this._y - 1);
}
// --------------------
mc._alpha = 99;
mc._width = mc._w0;
mc._height = mc._h0 * 1.5;
if(i==0)
mc.onPress = cliquer;
if(i==1)
{
mc.onPress = affiche; }
} else {
var pourcent = (d.getBytesLoaded() / d.getBytesTotal());
mc._width = pourcent * mc._w0;
mc._height = pourcent * mc._h0 * 1.6;
}
}, 100, this);
};
MovieClip.prototype.affiche = function()
{
trace("affiche le message");
}