-
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.
-
rapidshare.de/files/41319059/banne.rar.html
Io ce l'ho fatta ma volevo applicare alcune modifiche
del tipo se uno clicca sul banner si apre il sito del bannerpoi il movimento dei banner come avviene su
maxss.it/Se ce la fai. XD
-
Puoi inserire nel file xml gli url dei siti, inserirli magari in un altro array e al click del mouse andare all'indirizzo corrispondente, in posizione currPosition per intenderci.
L'animazione si può ricreare con la classe Tween.
-
Per la classe sono riuscito a trovare questo codice:
import mx.transitions.Tween;
import mx.transitions.easing.*;
this.createEmptyMovieClip("banner_mc", 1);
with (banner_mc) {
beginFill(0xFF0000, 100);
moveTo(0, 0);
lineTo(100, 0);
lineTo(100, 100);
lineTo(0, 100);
lineTo(0, 0);
endFill();
}
var controllo:Object = new Object();
controllo = new Tween(banner_mc, "_x", Elastic.easeOut, 200, 50, 10, true);
controllo.onMotionFinished = function() {
controllo.yoyo();
};Però si blocca e cambia al centro il banner non so come fare in modo che continui dritto e poi ne venga un altro e faccia lo stesso effetto.
E cosi con gli altri.XD
-
Ciao Maxin.
I Moderatori hanno già editato una dozzina di tuoi post lasciando nota.
E' importante che:- Inizi i tuoi messaggi con una maiuscola e termini con un punto.
- Scrivi in italiano corretto.
Innanzitutto queste sono forme di rispetto per chi legge.
Poi, se non correggi i tuoi post e li lasci carichi di errori di battitura, diviene difficile comprenderli e quindi aiutarti.
-
XD
Qualcuno sa darmi una mano.