Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Contatore numerico

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    332

    Contatore numerico

    Salve ragazzi

    ho la necessità di realizzare un semplice contatore numerico ma con una esigenza particolare.

    Per esempio: il contatore dovrebbe visualizzare una semplice progressione numerica da 0 a 100
    che deve essere compiuta in 50 frames.
    Il problema è che i numeri (0,1,2....50,51,...99,100) dovrebbero essere visualizzati tutti anche se velocemente e quasi in maniera illegibile.

    Qualcuno ha dei consigli da darmi?

    Grazie a tutti.
    "Studiare è questo.
    Improvvisamente si comprende qualcosa
    che si era capita da tutta la vita,
    ma da un nuovo punto di vista".

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Flash Mx 2004 o successivo -> classe Tween:

    Codice PHP:
    import mx.transitions.*;
    import mx.transitions.easing.*;
    var 
    num:Number 0;
    var 
    t:Object = new Tween(this"num"None.easeNone010050false);
    t.onMotionChanged = function(){
        
    trace(num);
        
    // fai di num quello che vuoi durante la transizione (ad esempio lo assegni ad un campo di testo dinamico)

    riferimenti per la classe:

    - http://livedocs.macromedia.com/flash.../00004141.html
    - http://www.v2online.it/articoli/easing-functions.html
    - http://forum.html.it/forum/showthrea...ighlight=tween

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    332
    Originariamente inviato da and80
    Flash Mx 2004 o successivo -> classe Tween:

    Codice PHP:
    import mx.transitions.*;
    import mx.transitions.easing.*;
    var 
    num:Number 0;
    var 
    t:Object = new Tween(this"num"None.easeNone010050false);
    t.onMotionChanged = function(){
        
    trace(num);
        
    // fai di num quello che vuoi durante la transizione (ad esempio lo assegni ad un campo di testo dinamico)

    riferimenti per la classe:

    - http://livedocs.macromedia.com/flash.../00004141.html
    - http://www.v2online.it/articoli/easing-functions.html
    - http://forum.html.it/forum/showthrea...ighlight=tween

    Grazie and80 ma facendo il trace ottengo questo:

    2
    4
    6
    8
    10
    12
    14
    16
    18
    20
    22
    24
    26
    28
    30
    32
    34
    36
    38
    40
    42
    44
    46
    48
    50
    52
    54
    56
    58
    60
    62
    64
    66
    68
    70
    72
    74
    76
    78
    80
    82
    84
    86
    88
    90
    92
    94
    96
    98
    100

    a me servirebbe avere
    1
    2
    3
    4
    .
    98
    99
    100
    "Studiare è questo.
    Improvvisamente si comprende qualcosa
    che si era capita da tutta la vita,
    ma da un nuovo punto di vista".

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    ok... per recuperare il frame di scarto, in pratica taglia il 50% dei numeri... a 'sto punto utilizziamo setInterval invece della classe Tween...

    io ora devo andare... vediamo più tardi come possiamo agire

  5. #5
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    come dice and80 con un setInterval si dovrebbe risolvere... prova questo, non so se funzica perchè non lo posso testare...

    Codice PHP:
    var intID;
    var 
    count:Number 0;

    intID setInterval(this,"increase",500);

    function 
    increase():Void{
        if(
    count <= 100){
            
    trace("VALORE: "+count);
            
    count++;
        }else
        
    clearInterval(intID);

    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    332
    ...ma usando il setInterval non posso controllare il numero di frame.

    io vorrei fare la progressione in base ad un numero di frame.

    la prima soluzione, utilizzando la classe Tween, va bene. Il problema è che non vedo tutti i numeri ma nel caso sopra (2,4,6...)
    "Studiare è questo.
    Improvvisamente si comprende qualcosa
    che si era capita da tutta la vita,
    ma da un nuovo punto di vista".

  7. #7
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    in che senso in base al numero di frame?
    se hai 50 frame ad esempio come si deve comportare?
    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    il problema è che non esiste una proprietà che restituisca l'fps del filmato corrente... quindi bisogna assegnarlo manualmente

    Codice PHP:
    var framerate:Number 60// va cambiato in base al tuo fps
    var shift:Number 1000/framerate;
    var 
    num:Number 0;
    var 
    interval:Number setInterval(function () {
        
    num++;
        
    trace(num);
        
    // altre azioni legate a "num"
        
    if (num>=100) {
            
    clearInterval(interval);
        }
    }, 
    shift); 

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    332
    Originariamente inviato da byaur
    in che senso in base al numero di frame?
    se hai 50 frame ad esempio come si deve comportare?

    In 50 frame la progressione deve andare da 0 a 100 ma mostrando tutti e 100 i numeri (anche se la velocità è tale da rendere illegibile la progressione).
    "Studiare è questo.
    Improvvisamente si comprende qualcosa
    che si era capita da tutta la vita,
    ma da un nuovo punto di vista".

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    332
    Ho trovato questa soluzione che mi sembra vada bene

    var _MAX_NUMBER:Number = 200;
    var _F_DURATION:Number = 50;

    var counter:Number = 0

    this.onEnterFrame = function()
    {
    counter += 1;
    number_txt.text = Math.floor((_MAX_NUMBER/_F_DURATION)*counter);
    if(counter == _F_DURATION)
    {
    delete this.onEnterFrame;
    }
    }
    "Studiare è questo.
    Improvvisamente si comprende qualcosa
    che si era capita da tutta la vita,
    ma da un nuovo punto di vista".

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.