Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    154

    Serie di foto a scorrimento....

    Salve ragazzi...
    Ho due problemi e vorrei un vostro aiuto.

    Il primo problema ce l'ho con una "finestra" creata in flash all'interno della quale devono scorrere verso l'alto delle foto e vorrei che ogni foto stesse ferma per 3 secondi e che poi scorresse verso l'alto facendo entrare la nuova foto e così via. Le foto le ho racchiuse in un unica jpg... ho fatto una sorta di nastro con tutte le foto una sotto l'altra.

    Il secondo problema è che non conosco una parola di action script


    Il file che ho adesso l'ho ricavato smanettando un po' sull'aspetto ed il codice (non conosco action script ma un filo di programmazione si) di un altro elemento simile a quello che sto creando e che feci con l'aiuto di un amico. Questo elemento aveva pressapoco le stesse caratteristiche solo che le immagini (sempre costituite da un unico "nastro" in jpg) scorrevano orizzontalmente e poi, alla fineo, tornava indietro dall'ultima alla prima.... questo ciclicamente. Ora sono riuscito a ricreare lo stesso movimento verticalmente verso l'alto però l'effetto che finale non mi piace molto e vorrei, appunto, che le foto scorressero SOLO verso l'alto e che ad ogni foto (cioè ad ogni 200pixel percorsi) si fermasse per 3 o 4 secondi per poi percorrere altri 200pixel, altra foto, e rifermarsi fino ad arrivare all'ultima foto. Le foto sono tutte di pari dimensioni (200px di altezza, appunto).

    Il codice attuale è questo:
    stop()
    Stage.scaleMode="noScale"
    // per velocizzare l'andamento aumenta il valore di INC
    // per rallentare il movimento diminuisci il valore di INC
    inc=2
    // da qui non toccare nulla
    mc.setMask(msk)
    mc.torna=true
    mc.onEnterFrame=function(){
    if(this.torna){
    if(this._y > - 2600){
    this._y-=inc
    }else{
    this.torna=false
    }
    }
    if(!this.torna){
    if(this._y < 13){
    this._y+=inc
    }else{
    this.torna=true
    }
    }
    }

    L'immagine che scorre è una jpg di 530px di larghezza e 2800 di altezza (sono 14 foto da 200px) quindi, calcolando che la prima foto è già in posizione, quel -2600 è la restante parte dell'immagine che deve scorrere.

    Spero che qualcuno possa aiutarmi! GRAZIE A TUTTI!!

  2. #2
    non ti voglio scoraggiare ma visto che lo devi fare ... fermati un momento
    e pensa ad una soluzione alternativa .... + flessibile


    N foto caricate in seguenza dall'esterno che si muovono

    verticali orizzontali, automaticamente manualmente non ha importanza

    ma trova una soluzione alternativa ad una foto contenente 14 foto da 500x 2800

    ho è lentissimo il caricamento o ne vai a compromettere la qualità

    vedi questo tutorial di Julius e cerca li dentro mi sembra che avesse relaizzato un newsTickers a tempo in verticale. invece delle notizie tu ci puoi mettere le foto

    http://www.juliusdesign.net/dynamic-...re-scorrevoli/

    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    154
    Bel sito quello di Julius... Purtroppo però non ho trovato nulla che faceva al mio caso. Ho provato a prendere quello delle news che dicevi tu ed un altro che anche poteva andar bene ma... non sono riuscito ad aprirli. Aprivo il .fla e mi diceva "formato file non riconosciuto". Mah.

    Cmq... C'è qualcuno che può darmi una mano?? Devo dire a questo che ogni 200pixel si deve fermare 3 secondi ma non conosco actionscript....

  4. #4
    Non so se funziona perchè l'ho scritto direttamente qui ma provalo

    il clip che contiene la stripfoto l'ho chiamato "mc"


    codice:
    import mx.transitions.*;
    import mx.transitions.easing.*;
    
    mc._y=0 // posiziono in zero
    mc.Hfoto = 200  // passo di avanzamento
    mc.endY = 2600-Hfoto // massimo valore da raggiungere
    mc.sali=true // stato sali scendi
    
    /* ---------------------------------------------*/
    function muovi(){
    
    mc.onEnterFrame=function(){
        // se deve salire
        if(this.sali){
            if(this._y < this.endY){ // verifico di non aver raggiunto la fine
                 start = this._y
                 end = this._y - 200
                 var mcSali:Tween = new Tween(this, "_y", Strong.easeOut, start, end , 0.5, true)
                 // al termine della salita di 200 px   
                 mcSali.onMotionFinished=function(){
                              IDconta =setInterval(conta, 3000)
                              delete this.onEnterFrame
                 }               
            }else{
                this.sali=false
            }
       }  
       // stesso dicasi per la discesa.
        if(!this.sali){
            if(this._y > 0){
                 start = this._y
                 end = this._y + 200
                 var mcSali:Tween = new Tween(this, "_y", Strong.easeOut, start, end , 0.5, true)
                 // al termine della discesa di 200 px   
                 mcSali.onMotionFinished=function(){
                             IDconta =setInterval(conta, 3000)
                             delete this.onEnterFrame 
                 }               
            }else{
                this.sali=false
            }
       }   
    }
    
    }
    /* ---------------------------------------------*/
    
    n = 0;
    function conta() {
       n++;
    	trace("sono passati:"+(3*n)+" secondi");
    	if (n >=1) {
                   	n=0
    		clearInterval(ID_conta);
                              muovi()
    	}
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    154
    Ti ringrazio per l'immensa pazienza e per l'incredibile aiuto che mi stai dando!

    Cmq quando faccio ctrl+Invio per provare il filmato mi dice:

    **Errore** Scena=Scena 1, livello=codice, fotogramma=1:Linea 20: Nessuna proprietà denominata 'onMotionFinished'.
    mcSali.onMotionFinished=function(){

    **Errore** Scena=Scena 1, livello=codice, fotogramma=1:Linea 35: Nessuna proprietà denominata 'onMotionFinished'.
    mcSali.onMotionFinished=function(){

    Totale errori ActionScript: 2 Errori segnalati: 2


    Può essere che la mia versione di Flash (mx 2004) non abbia questa funzione?? (ammesso che sia una funzione che dovrebbe avere già il flash... ) :master:



  6. #6
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    154
    OK! Risolto!

    A modo mio ma... ho risolto!


    Grazie 1000 cmq per l'aiuto!

  7. #7
    io cmq l'ho corretto, se hai la voglia verificalo

    vedi qui il test http://www.rempox.it/forum/actionscript/filmstreep.html

    codice:
    import mx.transitions.*;
    import mx.transitions.easing.*;
    
    mc._y=0 // posiziono in zero
    mc.Hfoto = 200  // passo di avanzamento
    mc.endY = -1*(600-mc.Hfoto) // massimo valore da raggiungere
    mc.sali=true // stato sali scendi
    mc.step=true
    /* ---------------------------------------------*/
    function muovi(){
    
    mc.onEnterFrame=function(){
        // se deve salire
        if(this.sali){
          
            if(this._y > this.endY && this.step){ // verifico di non aver raggiunto la fine
    		     this.step = false
                 MYstart = this._y
                 MYend = MYstart - this.Hfoto
    			 delete this.onEnterFrame
    
                 var mcSali:Tween = new Tween(this, "_y", Strong.easeOut, MYstart, MYend, 3, true)
                 // al termine della salita di 200 px   
                 mcSali.onMotionFinished=function(){
    				 mc.IDconta =setInterval(conta, 3000)
                 }               
            }else{
    			delete this.onEnterFrame
                this.sali=false
    			mc.IDconta =setInterval(conta, 3000)
            }
       }  
       // stesso dicasi per la discesa.
        if(!this.sali){
            if(this._y < 0 && this.step){
    			this.step = false
                 MYstart = this._y
                 MYend = MYstart + this.Hfoto
    			 delete this.onEnterFrame 
                 var mcSali:Tween = new Tween(this, "_y", Strong.easeOut, MYstart, MYend, 3, true)
                 // al termine della discesa di 200 px   
                 mcSali.onMotionFinished=function(){
    				
                     mc.IDconta =setInterval(conta, 3000)
                             
                 }               
            }else{
    			delete this.onEnterFrame
                this.sali=true
    			mc.IDconta =setInterval(conta, 3000)
            }
       }   
    }
    
    }
    /* ---------------------------------------------*/
    
    n = 0;
    function conta() {
       n++;
    	trace("sono passati:"+(3*n)+" secondi");
    	if (n >=1) {
            n=0
    		clearInterval(mc.ID_conta);
    		mc.step=true
            muovi()
    	}
    }
    setInterval(conta, 3000)

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.