Pagina 1 di 7 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 63
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    299

    Tasti Avanti e Indietro dinamici

    Sto cercando di creare una galleria di foto.
    Le foto vengono uploadate sul server e lette poi tramite php dalla pagina flash.
    Fin qui tutto bene, riesco a visualizzarle.
    Vorrei però avere due tasti Avanti e Indietro, per visualizzare le foto.
    Il tutto dovrebbe essere dinamico.
    Cioè, ogni pagina che vorrei visualizzare è di 8 foto, suddivise in due righe di 4 foto l'una.
    Quindi se ho nella mia cartella del server 20 foto, il tasto Avanti mi dovrebbe visualizzare in tutto 3 pagine, formate in questo modo:
    pag 1 - 8 foto (dalla 1 alla 8)
    pag 2 - 8 foto (dalla 9 alla 16)
    pag 3 - 4 foto (dalla 16 alla 20)
    Arrivati alla 3 pagina, il tasto Avanti o dovrebbe scomparire o cmq non farmi andare + avanti, o ancora fami tornare alla prima pagina.

    Spero di essere stao + o - chiaro...

    Ciao,
    LARRY

  2. #2
    io ti faccio un esempio veloce con 18 clip uno vicino all'altro ed uno spostamento di 8 in 8, poi tu giocherai con i for

    prima cosa

    file di testo esterno
    elenco_img.txt deve contenere il numero massimo di foto da caricare e l'elenco delle foto.
    codice:
    &num_pic=18&nomepic1=foto1.jpg&nomepic2=foto2.jpg&nomepic3=foto3.jpg
    
    e così via
    seconda cosa

    crea un clip vuoto, posizionalo sullo stage (0,100) ed istanzialo box

    ad esso associa
    codice:
    onClipEvent(load){
            //carico il file di testo
    	this.loadVariables("elenco_img.txt")
            // setto la visibilità dei pulsanti
            _root.indietro._visible=0
            _root.avanti._visible=1
    
    	
    }
    onClipEvent(data){
    	// setto una mia variabile MAXFOTO 
    	maxfoto=num_pic
    	// controllo che ci siano foto 
    	if(maxfoto<1){trace("non esistono foto")}
    	// calcolo il numero di scroll 
    	_root.pagine=Math.ceil(maxfoto/8)
    	_root.startpic=1
    	// creo i box che conterranno le foto 
    	for (i=1; i<=maxfoto; i++){
    	     nomeclip="pic"+i
    	     this.createEmptyMovieClip(nomeclip,i)
                 // setto la posizione del Clip 
    		this[nomeclip]._x=100*i-100
    		this[nomeclip]._y=0
    	}
    	// carico le foto 
    	for (i=1; i<=maxfoto; i++){
    	    immagine="nomepic"+i 
        	    nomeclip="pic"+i
    	    this[nomeclip].loadMovie(eval(immagine))
    	}
    }

    adesso crea e posiziona 2 pulsanti sullo stage
    istanziali

    avanti
    codice:
    on(press){
    	if(_root.startpic<_root.pagine){
    	   _root.box._x-=100*8
    	   _root.startpic++
    	}else{
    		_root.indietro._visible=1;
    		_root.avanti._visible=0;
    	
    	}
    }
    indietro
    codice:
     
    on(press){
    	if(_root.startpic>1){
    	   _root.box._x+=100*8
    	   _root.startpic--
    	}else{
    		_root.indietro._visible=0
    		_root.avanti._visible=1;
    	
    	}
    }


    e sei a posto.

    Guarda ci sarà qualcuno che lo farà in 3 righe di codice ma ti assicuro che funziona.

    Se non ci riesci scarica il tuo zip
    http://www.rempox.it/forum/extra/loa...scroll_x_8.zip


  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    299
    Grazie per l'esempio, però io carico le immagini da db, e sono 8 foto alla volta suddivise su 2 righe.

    Puoi vedere l'esempio online qui: www.mowree.com/st/gallery.html

    Ciao,
    LARRY

  4. #4
    Indipendentemente da come li carichi e come li disponi l'esempio rimane valido

    Calcola la lunghezza massima delle 4 foto in orizzontale

    supponiamo 4 * 100

    Metti tutte le tue foto in un Clip "BOX"

    e sposta a destra a sinistra e a destra il Clip BOX di 400 pxl ala volta

    Ovviamente sopra al Clip BOX dovrai settare una maschera (ClipMASK)

    ed al clip BOX associare setMask(_parent.ClipMask)

    Spero di essermi spiegato.


  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    299
    Ok, farò delle prove.
    Quello che non mi è chiaro è l'uso della maschera.

    Ho provato ad inserire il box sotto ad una maschera, ma non funge.
    Ora tu dici:
    Ovviamente sopra al Clip BOX dovrai settare una maschera (ClipMASK)
    ClipMask è il nome che dovrei dare alla maschera?

    Ciao,
    LARRY

  6. #6
    yes ma se non ricordo male anche il livello dove c'è la maskera deve essere impostato come MASK.

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    299
    Ciao Rempox, non ho ancora provato il tuo script, spero di farlo domani.
    In questi giorni sono un pò incasinato!

    Volevo chiederti un'altra cosa..
    E' possibile inserire un loading delle immagini, acnhe se vengono caricate dinamicamente?

    Ciao,
    LARRY

  8. #8
    Originariamente inviato da larrygiu
    E' possibile inserire un loading delle immagini, acnhe se vengono caricate dinamicamente?
    leggi questo 3d

    http://forum.html.it/forum/showthrea...5&pagenumber=1
    "...non è detto che sia tardi se non guardi che ora è..."

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    299
    Interessante, non l'avevo letto.
    Però dovresti spiegarmi alcune cose:
    codice:
    onClipEvent(enterFrame){
    if(this.getBytesLoaded() < this.getBytesTotal() && this.getBytesLoaded() > 1024){
    _root.createTextField("pre",10,200,100,200,40); questi numeri cosa sono, le coordinate del preload?
    _root.createEmptyMovieClip("clip",100); il 100 cos'é?
    _root["clip"].moveTo(100+Math.round((this.getBytesLoaded()/this.getBytesTotal()) * 100),110);
    _root["clip"].lineStyle(4,0xFF0000,100);
    _root["clip"].lineTo(100,110);
    formato = new TextFormat();
    formato.font = "verdana";
    formato.color = 0x000000;
    formato.border = true;
    _root["pre"].text = "| "+ Math.round((this.getBytesLoaded()/this.getBytesTotal()) * 100) +" %";
    _root["pre"].setTextFormat(formato);
    }
    }
    onClipEvent(data){
    _x = (500 - _width)/2 500 è la larghezza dello stage?
    _root["pre"].removeTextField();
    _root["clip"].clear();
    }
    Se hai letto bene il mio post, le immagini le carico dinamicamente da db, e le clip vengono duplicate in base al numero di immagini presenti nel database.
    Questo preload può essere valido per tutte le clip duplicate?

    Ciao,
    LARRY

  10. #10
    1) i numeri sono coordinate e misure del textfield del preload
    2)il 100 è il livello su cui viene creato il preload (nel tuo caso deve essere diverso per ogni immagine)
    3)si è la larghezza dello stage (ovviamente è tutto riferito a quella discussione) serviva per centrare sempre l'immagine
    "...non è detto che sia tardi se non guardi che ora è..."

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.