Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    problema svuotamento anticipato campo di testo dinamico.

    Ciao a tutti ragazzi, ho un piccolo problema come da oggetto, su un campo di testo che contiene una descrizione di alcune fotografie,

    vi spiego,

    io ho una funzione che mi costruisce un elenco di nomi, cliccabile, con effetto rollover, ed activestate, che al OnPress carica del testo contenuto in un array dentro un campo di testo dinamico. Il tutto funziona a dovere, l'unico problema è che non riesco a far attendere al onpress il tempo necessario affinché il MC che contiene il campo di testo dinamico faccia il fade out, per poi caricare il nuovo testo contenuto nell'array.

    la parte che mi interessa è questa:
    Codice PHP:
    for (var i=1i<10i++) {
                    if ((
    _root.page1["persone"+i] != this)) {
                        
    tws.push(TweenLite.to(_root.page1["persone"+i], 0.3, {tint:0x000000}));
                        
    _root.page1["persone"+i].activeItem=0;
                        
    _root.page1["persone"+i].useHandCursor=true;
                    }else{
                        
    TweenLite.from(_root.page1.pol1.fdesc0.4, {_alpha:0});
                        
    this.desc = ["desc_nome1""desc_nome2""desc_nome3""desc_nome4""desc_nome5""desc_nome6""desc_nome7""desc_nome8""desc_nome9"];
                        
    _root.page1.pol1.fdesc.txt=this.desc[i-1];        
                        
    TweenLite.to(_root.page1.pol1.fdesc0.4, {_alpha:100delay:0.4});
                        
    this.useHandCursor=false;
                    }
                } 
    se inserisco un "delay" nel caricamento ottendo un bel "unidentified" anzicché il testo contenuto alla posizione prestabilita dell'array "desc", se lasco così com'è ora, ottengo il fade in, ma il testo viene sostituito prima che il fade out si concluda e quindi ho un'eliminazione istantanea del contenuto del campo di testo anzicché un fadeout dello stesso ed un fade in di quello nuovo.
    Fuck Your Mind Dance your Brain!

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Non ho compreso la questione del delay, mentre per quanto riguarda la seconda questione, dipende dal fatto che i glifi non sono incorporati nel filmato.
    Ti spiego, in pratica per far sì che flash supporti l'alpha nei campi di testo dinamici è necessario che il font utilizzato nel campo sia incorporato nel filmato, anche se questo è presente nel pc di chi guarda il sito (pensa ad esempio all'Arial, è necessario incorporarlo ugualmente per gestire l'alpha).

  3. #3
    ciao and80,

    allora, il carattere è incorporato.

    io l'alpha non lo do al campo di testo dinamico ma besì al mc che lo contiene.



    il problema del delay è questo:

    allora io nella stessa funzione faccio un fade out dell'alpha del mc che contiene il campo di testo dinamico, cambio il contenuto del campo di testo dinamico faccio un fade in dell'alpha del mc che contiene il campo di testo dinamico con il nuovo testo.

    cosa succede praticamente:

    fade out --->> non riesce a concludersi, non perché i font non sono incorporati ma semplicemente perché il campo di testo si svuota prima di 0.2 secondi e quindi inizia il fade out e nel mentre il campo i testo s svuota.

    sostituzione del testo--->>> questa funziona in maniera corretta.

    fade in--->>> questo anche funziona in maniera corretta.

    riposto la parte della funzione commentata:


    Codice PHP:
    for (var i=1i<10i++) {
                    if ((
    _root.page1["persone"+i] != this)) { //se il mc persone è differente da quello su cui si trova il mouse adesso allora esegue il codice
                        
    tws.push(TweenLite.to(_root.page1["persone"+i], 0.3, {tint:0x000000})); //inserisce la tween in un array di nome tws
                        
    _root.page1["persone"+i].activeItem=0//un indice di controllo per verificare che sia effettivamente disattivato qualunque altro item
                        
    _root.page1["persone"+i].useHandCursor=true//riattiva la manina sull'item
                    
    }else{
                        
    TweenLite.from(_root.page1.pol1.fdesc0.4, {_alpha:0}); //fade out dell'alpha del mc che contiene il campo di testo dinamico
                        
    this.desc = ["desc_nome1""desc_nome2""desc_nome3""desc_nome4""desc_nome5""desc_nome6""desc_nome7""desc_nome8""desc_nome9"]; //sostituzione del testo dal vecchio al nuovo
                        
    _root.page1.pol1.fdesc.txt=this.desc[i-1];        
                        
    TweenLite.to(_root.page1.pol1.fdesc0.4, {_alpha:100delay:0.4});//fade in del campo di testo dinamico con il nuovo testo
                        
    this.useHandCursor=false//disabilita la manina sull'item ora attivo
                    
    }

    spero di aver spiegato bene il mio problema,

    il campo di testo viene svuotato prima che il fade out dell'alpha sia concluso

    se ritardo il caricamento del nuovo testo succede questo:

    siccome la prima volta il campo di testo è vuoto, nel campo di testo non c'è nulla quando avviene il fade out, e mi esce unidentified (onestamente non so bene perché, a rigor di logica dovrebbe com caricarmi il testo, ma invece non lo fa [i misteri dell'informatica])

    Fuck Your Mind Dance your Brain!

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Perdonami ma non avevo capito con esattezza, dal primo messaggio pareva che il problema fosse che il testo spariva in maniera secca senza eseguire il fade-out dell'alpha.
    Ora, se ho capito per risolvere ti dovrebbe bastare la gestione dell'evento onComplete (perdonami ma non conosco bene TweenLite, utilizzo Tweener che ha il metodo onComplete).
    Cioè prima esegui la transizione e poi all'interno della funzione legata all'evento, inserisci il nuovo testo.

    Ecco, in pratica queste due righe dovrebbero andare nella funzione eseguita da onComplete:
    Codice PHP:
    _root.page1.pol1.fdesc.txt=this.desc[i-1];        
    TweenLite.to(_root.page1.pol1.fdesc0.4, {_alpha:100delay:0.4}); 

  5. #5
    Ciao and, è esattamente questo, il testo scompare in maniera secca, ma non perché non sia incorporato, ma semplicemente perché il fade out dell'alpha lo fa ma non si vede, non ha il tempo di vedersi.

    cmq ho modificato la funzione in questa maniera (grazie al tuo suggerimento) ma non va uguale purtroppo, niente da fare, non funziona.

    così il testo non mi viene proprio caricato purtroppo.

    secondo me il problema è che io carico il testo nel campo di testo dinamico nella stessa funzione in cui poi faccio il fade out ed in dell'alpha, quindi se attendo del tempo non me lo carica più...



    non ci capisco nulla, uff...

    ps. cmq anche TweenLite ha onComplete:nome funzione

    grazie in aticipo, cmq.

    Codice PHP:
    if(this.activeItem!=1){
                            
    this.desc = ["desc1""desc2""desc3""desc4""desc5""desc6""desc7""desc8""desc9"]; //creo l'array che conterra le descrizioni
                            
    this.foto _root.pol1.attachMovie(["foto"+i], _root.pol1["foto"+i], _root.pol1.getNextHighestDepth()); //allego la foto relativa alla descrizione
                            
    this.foto._alpha=0//do l'alpha 0 alla foto
                            
    this.foto._x=-59;
                            
    this.foto._y=35.8;
                            
    TweenLite.to(this.foto0.5, {_alpha:100delay:0.4});
                            function 
    refade(){
                                
    _root.pol1.fdesc.txt=this.desc[i-1];        
                                
    TweenLite.to(_root.pol1.fdesc0.4, {_alpha:100});
                            }
    //qui creo la funzione refade
                            
    TweenLite.from(_root.pol1.fdesc0.4, {_alpha:0onComplete:refade});//qui dico che dopo aver concluso il fade out deve eseguire il refade
                            
    this.useHandCursor=false;
                            
    this.activeItem=1;
                        } 
    Fuck Your Mind Dance your Brain!

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Sì in effetti non capisco perchè ricrei l'array ogni volta che effettui l'azione, inoltre bisognerebbe vedere se all'interno della funzione "refade" il this viene visto in maniera corretta.
    Poi questo: _root.pol1.fdesc.txt
    Se txt è il campo di testo, allora l'assegnazione dovrebbe essere: _root.pol1.fdesc.txt.text

    Non so, la cosa è un po' confusa, bisognerebbe entrare nel dettaglio, molto di più.

  7. #7
    allora l'array posso anche cacciarlo via dalla funzione e crearlo solo una volta, l'ho messo la per comodità, tanto non appesantisco molto il calcolatore con un array..

    perché mi dici che l'assegnazione dovrebbe essere questa:

    _root.pol1.fdesc.txt.text

    io assegno con _root.pol1.fdesc.txt ed il campo di testo mi viene riempito

    txt oltre che come nome instanza del campo di testo lo metto anche nella variabile, sarà per questo che mi viene riempito?


    grazie cmq


    Fuck Your Mind Dance your Brain!

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Non conviene usarlo per entrambe le cose, meglio che lo usi solo come nome istanza e tieni il campo var vuoto, è uno strascico di flash delle vecchie versioni che da quando TextField è diventata una classe è perfettamente inutile.

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.