- Home
- Categorie
- Digital Marketing
- Grafica, Visual Design & UX
- [Risolto] Foto gallery - load movie
-
[Risolto] Foto gallery - load movie
Ho una foto gallery con un file xml e vorrei inserirla in un sito in flash tramite un pulsante dove inserisco qst codice:
on (release) {
loadMovie("gallery.swf", "segnetto");
}
nella file relativo alla foto gallery ci sn qst azioni://centro l'immagine
_root.segnetto.onEnterFrame = function() {
if (_root.segnetto.box.getBytesLoaded()>10 && _root.segnetto.box.getBytesLoaded()>=_root.segnetto.box.getBytesTotal()) {
_root.segnetto.box._x = Stage.width/2-(_root.segnetto.box._width/2);
_root.segnetto.box._y = Stage.height/2-(_root.segnetto.box._height/2);
}
};
Stage.showMenu = false;
quality = "BEST";e poi qst all'interno:
// imposta a false se non vuoi la descrizione
descriptions = true;
// box descrizione invisibile
alert._visible = false;
// effetto ease
var ease = 5;
//imposto la scala della foto grande
_root.segnetto.scala_x = 90;
_root.segnetto.scala_y = 110;
//imposto la barra visibile
_root.segnetto.barra_stato = "true";
_root.segnetto.box.useHandCursor = false;
//leggo i dati XML
thumbs = new XML();
thumbs.ignoreWhite = true;
thumbs.load("dati.xml");
// qui inserire il percorso al file .XML
thumbs.onLoad = function() {
root = this.firstChild;
total = root.segnetto.childNodes.length;
displayNum = Number(root.segnetto.childNodes[0].attributes.displayNum);
separation = Number(root.segnetto.childNodes[0].attributes.separation);
//settings
w = 60;
h = 55;
mask._width = displayNum*(w+separation);
mask._height = h+30;
forward._x = mask._width+20;
forward._y = back._y=h/2;
mcs = [];
for (i=0; i<total; i++) {
mcs.push(i);
newThumb = thumbnailer.container.duplicateMovieClip("container"+i, i);
with (newThumb) {
_x = (w+separation)i;
preloader._x = w/2;
preloader._y = h/2;
shape._width = w;
shape._height = h;
}
var image = root.segnetto.childNodes.childNodes[0].firstChild.nodeValue;
var image1 = root.segnetto.childNodes[0].childNodes[0].firstChild.nodeValue;
newThumb.image = root.segnetto.childNodes*.childNodes[0].firstChild.nodeValue;
newThumb.desc = root.segnetto.childNodes*.childNodes[1].firstChild.nodeValue;
newThumb.link = root.segnetto.childNodes*.childNodes[2].firstChild.nodeValue;
loadMovie(image1, _root.segnetto.box.foto_effetto);
_root.segnetto.box._xscale = _root.segnetto.scala_x;
// scalo la larghezza
_root.segnetto.box._yscale = _root.segnetto.scala_y;
// scalo l'altezza
newThumb.onRelease();
newThumb.cont.loadMovie(image);
//carico le thumbs
newThumb.cont2.loadMovie(image);
//carico le thumbs e le scalo
newThumb.cont._xscale = 8.2;
// scalo la larghezza
newThumb.cont._yscale = 12.2;
// scalo l'altezza delle ombre associate alle immagini
newThumb.cont2._xscale = newThumb.cont._xscale;
newThumb.cont2._yscale = newThumb.cont._yscale;
newThumb.onRelease = function() {
loadMovie(this.image, _root.segnetto.box.foto_effetto);
// carico l'immagine nel clip effetto
_root.segnetto.box.play();
// avvio il box
_root.segnetto.box._xscale = _root.segnetto.scala_x;
// scalo la larghezza
_root.segnetto.box._yscale = _root.segnetto.scala_y;
// scalo l'altezza
};
if (descriptions) {
newThumb.onRollOver = function() {
alert.desc = this.desc;
alert._visible = true;
this._xscale = 120;
this._yscale = 120;
this._y = this._y-10;
this._x = this._x-5;
this.swapDepths(9);
};
newThumb.onRollOut = function() {
alert._visible = false;
this._xscale = 100;
this._yscale = 100;
this._y = this._y+10;
this._x = this._x+5;
};
}
}
//
var offset = total-1;
var dest = 0;
var increment = w+separation;
var ending = (total-displayNum)(w+separation);
var lastmc = total-1;
var firstmc = 0;
back.onRelease = function() {
if (dest<0) {
dest += increment;
} else {
first = mcs[0];
for (k=0; k<total; k++) {
mcs[k] = mcs[k+1];
}
mcs[total-1] = first;
thumbnailer["container"+lastmc]._x = -(w+separation);
firstmc = lastmc;
//check whos new lastmc
for (k=0; k<total; k++) {
if (mcs[k] == (total-1)) {
lastmc = k;
}
}
}
};
forward.onRelease = function() {
if (dest>-ending) {
dest -= increment;
} else {
last = mcs[total-1];
for (k=1; k<total; k++) {
mcs[total-k] = mcs[total-k-1];
}
mcs[0] = last;
thumbnailer["container"+firstmc]._x = (displayNum)(w+separation);
lastmc = firstmc;
//check whos new firstmc
for (k=0; k<total; k++) {
if (mcs[k] == 0) {
firstmc = k;
}
}
}
};
//movement
onEnterFrame = function () {
for (j=0; j<total; j++) {
thumbnailer["container"+j]._x += (dest+(mcs[j])*(w+separation)-thumbnailer["container"+j]._x)/ease;
}
alert._x = _xmouse;
alert._y = _ymouse;
};
};Il problema è che qst clicco sul pulsante che dovrebbe richiamare la galleria NN RICCHIAMA NIENTE...NN VISUALIZZA NULLA. e nn capisco
come potrei risolvere?
ps il file xml ha qst codice:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<images>
<thumb displayNum="6" separation="5">
<image>images/foto1.jpg</image>
<description>Paesaggio Futuristico</description>
</thumb>
<thumb>
<image>images/foto2.jpg</image>
<description>Kristin Kreuk</description>
</thumb>
<thumb>
<image>images/foto3.jpg</image>
<description>Paesaggio Fantastico</description>
</thumb>
<thumb>
<image>images/foto4.jpg</image>
<description>Tartaruga</description>
</thumb>
<thumb>
<image>images/foto5.jpg</image>
<description>Bosco</description>
</thumb>
<thumb>
<image>images/foto6.jpg</image>
<description>Spot Cocacola</description>
</thumb>
<thumb>
<image>images/foto7.jpg</image>
<description>Alessandra Ambrosio</description>
</thumb>
</images>Grazie di cuore in anticipo
-
Oddio...a guardare cosi mi mandi gli ochi in tilt.:():
visto che hai iniziato a metterci _root.segnetto continua cosi per tutti i clip tanto per inziare.
Mi dispiace ma a guardare linee di codice cosi, personalmente non ci arrivo a dirti dove è il problema. Non si capisce al volo quale sono variabile, che tipo sono, quale sono i array o clip filmati...:?
-
sinceramente nn so la differenza...io ho solo aggiunto segnetto. dopo _root.
nn ho idea da cosa sbaglio..ma nn mi fa vedere nulla..
se avete una galleria simile...ne sarei molto felice.
Grazie
-
Il problema non sta con la galleri...qualunque userai avrai lo stesso problema.
Una volta che viene caricata in un altro clip filmato via loadMovie, tutti i path cambiano e flash non trovi gli elementi chiamati della galleri.
Di la se hai un _root, diventa _root.segnetto.Se hai il tutorial da dove viene quella galleria o un risultato finale o un fla da scaricare, si potrebbe capire meglio in che consista esatamente.
-
Lo so..è x qst ti ho inviato il tutorial e la mia prova (ke nn va).
Grazie e ciao
-
Ok, quando ho il tempo ci do un occhiatta.
-
T sta facendo impazzire pure a te,vero?
notte
-
Ciao,
no...non mi fa impazzire. Lavoro e solo adesso ho avuto il tempo di guardarlo.;)Soluzione facile, senza complicarti la vita...usa loadMovieNum, invece del loadMovie. Facendo cosi la galleria funziona benissimo senza dovere modificare una riga del suo codice.:)
-
scusa ma in quale? nel tutorial o nella mia prova?
Grazie
-
Ci sono riuscito
Ma ora x fare andare via la galleria?
come potrei procedere?
-
ciao,
non ho piu i file. Provo e butto subito per evitare troppe 'schiffese' inutile sul mio pc.:D
L'azione del pulsante diventa:
on(release){
loadMovieNum("gallery.swf", 1);
}L'ho provato partando del tuo fla 'prova' ma ho riusato la galleria del tutorial per essere sicura che non avevi fatto errore ricopiando il fla orginale e anche perche hai una cartella pieno di foto con thumbs inutile e nomi sbagliati.
Per scaricare il filmato, usa il unloadMovieNum(1);
-
Ciao Maestra ho un problema cn il pulsante CHIUDI nella galleria (xkè lo vorrei fare nella galleria stessa).
Ke codice devo inserire?
ps ti ho inviato il vecchio tutorial
Grazie
-
Gia risposto.;)
Sempre unloadMovieNum(1)...quello è il bello (per modo di dire) di usare il loadMovieNum.
-
Capito!!!
Grazie..6 stata gentilissima
ps a poco a poco ci sto capendo qlc
-
scusate buongiorno, volevo chiedervi una piccola informazione: ho un swf che dopo una piccola animazione arriva alla home, a questo punto si ferma e arrivano 5 pulsanti che dovrebbero caricare 1 swf per uno, quindi 5...
Ogni swf non è nient'altro che una piccola proiezione di 4 fotografie che sfumano una sull'altra in loop....ecco domanda
Chiaramente ogni swf è molto pesante, come faccio a caricarli esternamente senza far pesare troppo il muvi iniziale? ho provato con il componente "loader" ma comunque sono molto pesanti e quando con il pulsante mando a x frame e li il componente carica swf esterno, impiega molto a caricare...mi chiedo non c'è un modo che carica già all'inizio? oppure è forse meglio avere un swf vuoto e che carica tutto il sito esternamente? se volete vi mando il link per farvi capire....grazie dell'attenzione a tutti