-
banner
Ciao
Voglio creare sul genere delle newsletter ma invece delle new i banner dei siti affilliati con un file esterno txt o xml e con due frecce che vanno avanti e indietro tra i banner
img213.imageshack.us/img213/2952/immagineej2.png
tipo cosi
-
Qualcuno sa darmi una mano per favore.
-
Immagino che i tuoi banneri siano dei file swf. Beh nel tuo filmato principale dovrai ricevere le informazioni dal file xml, inserirle magari in un array e caricare ogni volta l'swf corrente. Le freccie avranno il compito di aggiornare l'indice dell'array. E' un'idea, prova!
-
No sono immagini png tipo XD.
-
Beh stessa cosa, prova quella idea.
-
Ciao mr87, ok per la tecnica, ma forse maxin si aspetta un aiuto più concreto, io non lo so fare, se hai un po di tempo a disposizione e metti giù qualche stringa così imparo anche io.
-
Ecco un piccolo esempio.
In una cartella specifica del nostro computer o del nostro spazio web andiamo ad inserire i banner, che in questo esempio ho chiamato banner1.jpg, banner2.jpg e banner3.jpg.
Creiamo un nuovo file xml, sempre nella stessa cartella, e al suo interno scriviamo il seguente codice:<?xml version="1.0" encoding="utf-8"?> <banners> <banner indirizzo="banner1.jpg" /> <banner indirizzo="banner2.jpg" /> <banner indirizzo="banner3.jpg" /> </banners>
Apriamo un nuovo file Flash (ActionScript 2.0), lo salviamo sempre nella stessa cartella con il nome che più ci piace e sullo stage creiamo un MovieClip, magari con dimensioni pari a quella dei banner, al quale diamo nome istanza banner_mc .
Creiamo anche due bottoni ai quali diamo nome istanza rispettivamente prev_btn e next_btn .
Nel primo fotogramma del livello contenente i nostri oggetti inseriamo il seguente codice:var currPosition = 0; //numero progressivo del banner corrente var ab:Array = new Array(); //creo un array per i miei banner var xml:XML = new XML(); //creo un oggetto XML xml.ignoreWhite = true; //ignoro gli spazi vuoti xml.onLoad = function(ok) //al caricamento del file xml inserisco gli indirizzi dei banner in ab { if(ok){ var nodes:Array = this.firstChild.childNodes; for(var i=0;i<nodes.length;i++) { ab.push(nodes*.attributes.indirizzo); } caricaBanner(); //chiamo la funzione caricaBunner() per mostrare il primo banner } } xml.load("banners.xml"); //carico il file banners.xml function caricaBanner():Void { banner_mc.loadMovie(ab[currPosition]); //carico nel movieclip banner_mc il banner in posizione currPosition } prev_btn.onRelease = function() //quando prev_btn viene rilasciato { if(currPosition==0) currPosition = ab.length-1; //se sono arrivato all'inizio assegno a currPosition l'ultima posizione dell'array else currPosition--; //altrimenti decremento currPosition caricaBanner(); //aggiornata currPosition carico il nuovo bunner con la funzione caricaBunner } next_btn.onRelease = function() //quando next_btn viene rilasciato { if(currPosition==ab.length-1) currPosition = 0; //se sono arrivato alla fine assegno a currPosition la prima posizione dell'array else currPosition++; //altrimenti incremento currPosition caricaBanner(); //aggiornata currPosition carico il nuovo bunner con la funzione caricaBunner }
Tutto pronto. Non ci rimane che pubblicare e testare!
-
Ti ringrazio del aiuto ma non so il perchè.
Ma non mi funziona i banner non vanno avanti e indietro.
-
Controlla che tu abbia assegnato ai bottoni i nomi istanza che ho specificato.
-
I pulsanti o dato il nome del istanza che mi hai detto.
-
Ti da qualche errore in particolare? Qualche comportamento anomalo?
-
Mi dicce che c'è un errore.
function caricaBanner():Void
-
Ti dice anche il tipo di errore? Strano perchè io ho testato il codice e se tu lo hai riprodotto fedelmente non dovrebbero esserci errori.
-
Ma io lo fatto non ho capito il mio errore XD.
Non e ke mi puoi inviare il file fla e vedo qual e la cosa che sbaglio.
-
h ttp://mr87.altervista.org/banner.fla
-
Funziona XD.
-
Grazie mr87, lo scroller funziona bene, maxin prova a rifare tutto seguendo per filo e per segno le istruzioni di mr87 vedrai che funzionera.
-
Ma di nulla Nathan! Maxin perfetto!
-
I miei complimenti!!!
Però ci sono 2 problemini:
uno è che vorrei che i banner partissero soli in sequenza
e con i tasti per andare avanti e indietrodue
io dovrei fare circa una cosa 200*100 dove c'è scritto 'caricamento banner' se lo riduco mi riduce pure i banner che ho messo.
Come devo fare?
XD
-
Per farli partire in sequenza devi usare un intervallo, cioè un timer che ti richiama una funzione, nel nostro caso caricaBanner ogni tot secondi che decidiamo. Un piccolo accorgimento è il fatto che dobbiamo rilevare che non siamo arrivati all'ultima posizione.
Comunque con questo codice credo che tutto ti sia più chiaro.function scorri(){ if(currPosition==ab.length-1) currPosition=-1; caricaBanner(++currPosition); } setInterval(scorri, 5000); //richiamo scorri ogni 5 secondi, espressi in millisceondi ```Prova un pò questa soluzione. Per quanto riguarda l'avviso di caricamento, potresti usare un altro movieclip e mostrarlo/nasconderlo in modo opportuno.