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

    [AS2] Convertire stringa in oggetto

    Salve

    E da molto tempo che non scrivo su questo forum.

    Avrei la necessita, ti convertire una stringa in un oggetto in Action Script 2.

    Ora spiego. ho questa funzione che crea un effetto a comparsa su un clip contenente un testo:
    codice:
    var count = 0;
    var time;
    
    setProperty("vt_text", _alpha, 0);
    time = setInterval(effect("vt_text"), 30);
    
    function effect(target) 
    {
       if (count == 50) {
          clearInterval(time);
          count = 0;
       }
       setProperty(target, _alpha, 0);
    }
    Ora, giustamente questa funzione non va, credo perché il primo parametro della funzione setProperty() deve essere un oggetto ed io li passo una stringa.

    Avendo la necessita di utilizzare questa funzione più volte posso far riconoscere la stringa, passata come paramentro alla funzione, da setProperty come se fosse un oggetto?

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Non è un problema di setProperty, anche se forse è il caso che impari la sintassi del punto se vuoi usare per lo meno un player 7/8. Il problema sta nel richiamo del setInterval, la funzione non va richiamata, è un parametro. Per passare dei parametri a quella funzione devi metterla come terzo parametro:

    Codice PHP:
    var count 0;
    var 
    time;

    vt_text._alpha 0;
    time setInterval(effect30vt_text);

    function 
    effect(target
    {
       if (
    count == 50) {
          
    clearInterval(time);
          
    count 0;
       }
       
    vt_text._alpha 0;

    Vabbè poi nel codice ci sono un'altra serie di cose che non vanno, tipo la condizione che non verrà mai soddisfatta dato che "count" non viene incrementato da nessuna parte e poi imposti la proprietà "_alpha" già a 0 prima della funzione, che senso ha farlo anche dentro?!

  3. #3
    Scusa, infatti, avendo rescritto il codice alla svelta mi sono dimenticato di incrementare la variabile count e di impostare la proprietà _alpha con il valore di count, cmq nel codice che ho io questi errori non ci sono.

    Cmq, il codice mi funziona perfettamente se commento la funzione setProperty() e la funzione mi prende perfettamente il parametro che gli passo, quale sarà allora il problema?

    Cmq provando il tuo codice, aggiungendo l'incremento della variabile count, il codice non funziona lo stesso?

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Se non posti il codice giusto sarà parecchio difficile risponderti.
    Ma poi, per caso stai usando quel codice per incrementare l'opacità di un campo di testo dinamico?

  5. #5
    Il codice originare e questo:
    codice:
    var count = 0;
    var time;
    
    setProperty("vt_text", _alpha, 0);
    time = setInterval(effect("vt_text"), 30);
    
    function effect(target) 
    {
       count++;
       if (count == 50) {
          clearInterval(time);
          count = 0;
       }
       setProperty(target, _alpha, count);
    }
    vt_text è un testo statico convertito in un move clip

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Il codice corretto per funzionare con AS2 dovrebbe essere questo
    codice:
    var count = 0;
    var time;
    
    vt_text._alpha = 0;
    time = setInterval(effect, 30, vt_text);
    
    function effect(target) 
    {
       count++;
       if (count == 50) {
          clearInterval(time);
          count = 0;
       }
       target._alpha = count;
    }
    Anche se ci sono dei modi decisamente più produttivi per ottenere quello che vuoi fare.
    Ti spiego, esistono delle librerie per le transizioni che sono molto più precise e ti evitano di scrivere tutto quel codice, sul quale tra l'altro continuo ad avere dei dubbi, in 0.03 secondi una transizione neanche la vedi. Una delle librerie più utilizzate è la "caurina Tweener", in pratica una volta scaricata devi mettere la cartella "caurina" nella stessa posizione del file .fla del tuo progetto e poi la utilizzi nel tuo filmato con questo codice:

    Codice PHP:
    caurina.transitions.Tweener.addTween(vt_text, {_alpha:50time:1transition:"linear"}); 

  7. #7
    Ora funziona sia con il codice tuo che con il setProperty, cmq sto utilizzando la sintassi proposta da te, l'unica cosa è: come mail il codice, postato in precedenza da te prima non funzionava e ora si?

    Ti dispiace se mi fai un esempio su come utilizzare la libreria, e in particolare quali sono le sue funzioni?

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da dragon88
    Ora funziona sia con il codice tuo che con il setProperty, cmq sto utilizzando la sintassi proposta da te, l'unica cosa è: come mail il codice, postato in precedenza da te prima non funzionava e ora si?
    Non saprei, a parte il fatto che non poteva funzionare visto che il "count" non veniva incrementato.

    Originariamente inviato da dragon88
    Ti dispiace se mi fai un esempio su come utilizzare la libreria, e in particolare quali sono le sue funzioni?
    L'esempio è quello che già ti ho scritto, in pratica devi usare la funzione addTween che ha due parametri, il primo è l'elemento a cui viene applicata la transizione, il secondo è un oggetto con una serie di proprietà che vengono riconosciute dalla Tweener e che la fanno funzionare, due sono obbligatorie, la proprietà da modificare nel tempo (nel nostro caso _alpha) e il tempo di transizione espresso in secondi (time), più un terzo parametro che rappresenta l'andamento dell'animazione (lineare, elastico, con rimbalzo, rallentato ecc...), io l'ho messo lineare perché nell'_alpha non è apprezzabile un andamento diverso, mentre lo è per gli spostamenti ad esempio.

    L'argomento delle transizioni con le librerie è molto vasto, per ora mi limito a queste informazioni, ma puoi farti un'idea dell'utilizzo di "caurina" leggendone la documentazione (in inglese), ti vedrai aprire un mondo nella programmazione actionscript che non immaginavi

  9. #9
    Ok, credo di aver capito, cmq grazie per l'aiuto

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.