Flash: scorrimento automatico delle foto

Di: Luca Pitanti | 26/09/2020 18:15:12
Ciao ragazzi...
ho già avuto modo di interagire con voi, e ringrazio.
ho un nuovo problema:
ho uno script che mi attiva una fotogallery esterna... e funziona bene, ora pero' devo renderlo automatico... come faccio? Sopratutto è possibile?
ora lo posto:
////////////////////////////////
/*
i wrote this code, but you can use and abuse it however you like.
the methods are defined in the order which they occur to make it
easier to understand.
*/
// variables ------------------------------------------
// put the path to your pics here, include the slashes (ie. "pics/")
// leave it blank if they're in the same directory
this.pathToPics = "portfolio LOW/";
// fill this array with your pics
this.pArray = ["GS 76.jpg","GS 78.jpg","GS 79.jpg","GS 80.jpg","GS 81.jpg","GS 82.jpg","GS 83.jpg","GS 84.jpg","GS 85.jpg","GS 86.jpg","GS 87.jpg","GS 88.jpg","GS 94.jpg","GS 97.jpg","GS 98.jpg"];
this.fadeSpeed = 80;
this.pIndex = 0;
// MovieClip methods ----------------------------------
// d=direction; should 1 or -1 but can be any number
//loads an image automatically when you run animation
loadMovie(this.pathToPics+this.pArray[0], _root.photo);
MovieClip.prototype.changePhoto = function(d) {
// make sure pIndex falls within pArray.length
this.pIndex = (this.pIndex+d)%this.pArray.length;
if (this.pIndex<0) {
this.pIndex += this.pArray.length;
}
this.onEnterFrame = fadeOut;
};
MovieClip.prototype.fadeOut = function() {
if (this.photo._alpha>this.fadeSpeed) {
this.photo._alpha -= this.fadeSpeed;
} else {
this.loadPhoto();
}
};
MovieClip.prototype.loadPhoto = function() {
// specify the movieclip to load images into
var p = _root.photo;
//------------------------------------------
p._alpha = 0;
p.loadMovie(this.pathToPics+this.pArray[this.pIndex]);
this.onEnterFrame = loadMeter;
};
MovieClip.prototype.loadMeter = function() {
var i, l, t;
l = this.photo.getBytesLoaded();
t = this.photo.getBytesTotal();
if (t>0 && t == l) {
this.onEnterFrame = fadeIn;
} else {
trace(l/t);
}
};
MovieClip.prototype.fadeIn = function() {
if (this.photo._alpha<100-this.fadeSpeed) {
this.photo._alpha += this.fadeSpeed;
} else {
this.photo._alpha = 100;
this.onEnterFrame = null;
}
};
// Actions -----------------------------------------
// these aren't necessary, just an example implementation
this.onKeyUp = function() {
if (Key.getCode() == Key.LEFT) {
this.changePhoto(-1);
} else if (Key.getCode() == Key.RIGHT) {
this.changePhoto(1);
}
};
Key.addListener(this);
///////////////////////////////////////////////
ci sono in piu' duoe pulsanti che fanno +1/-1..e naturalmente me lo carica su un MC vuoto....
tutto qua!!!!
se potete aiutarmi in qlc modo,anche postando un'altro script (AS 2) ve ne sarei grato
ciuz

Risposte



Ciao Liukpit,
è possibile ed è facile rendere automatico lo scorrimento delle fotografie con il tuo script... io per esempio ti propongo una soluzione:
////////////////////////////////
/*
i wrote this code, but you can use and abuse it however you like.
the methods are defined in the order which they occur to make it
easier to understand.
*/
// variables ------------------------------------------
// put the path to your pics here, include the slashes (ie. "pics/")
// leave it blank if they're in the same directory
this.pathToPics = "portfolio LOW/";
// fill this array with your pics
this.pArray = ["GS 78.jpg", "GS 79.jpg", "GS 80.jpg", "GS 81.jpg", "GS 82.jpg", "GS 83.jpg", "GS 84.jpg", "GS 85.jpg"];
this.fadeSpeed = 80;
this.pIndex = 0;
// MovieClip methods ----------------------------------
// d=direction; should 1 or -1 but can be any number
//loads an image automatically when you run animation
loadMovie(this.pathToPics+this.pArray[0], _root.photo);
MovieClip.prototype.changePhoto = function(d) {
trace(d);
// make sure pIndex falls within pArray.length
this.pIndex = (this.pIndex+d)%this.pArray.length;
if (this.pIndex<0) {
this.pIndex += this.pArray.length;
}
this.onEnterFrame = fadeOut;
};
MovieClip.prototype.fadeOut = function() {
if (this.photo._alpha>this.fadeSpeed) {
this.photo._alpha -= this.fadeSpeed;
} else {
this.loadPhoto();
}
};
MovieClip.prototype.loadPhoto = function() {
// specify the movieclip to load images into
var p = _root.photo;
//------------------------------------------
p._alpha = 0;
p.loadMovie(this.pathToPics+this.pArray[this.pIndex]);
this.onEnterFrame = loadMeter;
};
MovieClip.prototype.loadMeter = function() {
var i, l, t;
l = this.photo.getBytesLoaded();
t = this.photo.getBytesTotal();
if (t>0 && t == l) {
this.onEnterFrame = fadeIn;
} else {
trace(l/t);
}
};
MovieClip.prototype.fadeIn = function() {
if (this.photo._alpha<100-this.fadeSpeed) {
this.photo._alpha += this.fadeSpeed;
} else {
this.photo._alpha = 100;
this.tempo = getTimer()
this.onEnterFrame = wait;
}
};
MovieClip.prototype.wait = function() {
secondi = 1;
if ((getTimer()-this.tempo)>(secondi*1000)) {
this.onEnterFrame = null;
this.changePhoto(1);
}
}
this.changePhoto(1);
////------------------------------------------
Ho modificato l'ultima tua funzione (fadeIn) dicendogli di attivare la funzione wait, dopodiché ho scritto la funzione wait che serve ad aspettare un secondo prima di far ripartire il giochino chiamando nuovamente la funzione changePhoto.
Naturalemte puoi cambiare il numero di secondi modificando il valore della variabile secondi.
Ho cercato di utilizzare la stessa struttura delle funzioni con cui era realizzato tutto il resto così da non aggiungere comandi nuovi al tua script ma... per creare un intervallo che richiami continuamente una funzione vai a vedere setInterval sul manuale di Flash.

Di: Professore | 26/09/2020 18:16:12


grazie,sei un grande funziona perfettamente!!!!!!!
daro'un'okkiata a cio che mi hai consigliato...ciao e grazie...a presto

Di: Luca Pitanti | 26/09/2020 18:16:12