• User Attivo

    Funzioni e procedure come ?

    Salve vorrei capire come funzionano in FLASH le funzioni e come le si richiamano in qualsiasi punto del codice ....

    Es.
    Devo verificare che un testo (che conterrà un indirizzo mail) contenga o meno caratteri come "@" e un "."

    quindi:
    1)creare una funzione "VerificaMail" di tipo booleano
    2)che mi torni come valore un TRUE/FALSE
    3)come la si richiama ?

    '------------------------------
    function verifica(stringaVer)
    {
    var I:number
    I=stringaVer.indexOf("@");
    if I==-1
    {
    verifica==true;
    }else{
    verifica==false;
    }
    }
    '--------------------------------

    ci sono errori ?

    thanks
    Gandalf :fumato:

    P.S.
    Ho sentito in giro che si possono creare anke file esterni .AS dato che sono un maniaco dell'ordine 🙂 è possibile piazzare tutte le funzioni in un file.as e poi averle disponibili per tutto lo STAGE del file .fla ?


  • Super User

    Ti faccio un esempio su come controllare se l stringa contiene '@' e '.'

    
    var mail:String='[email protected]';
    var n:Number=0;
    trace(checkString(mail));
    function checkString(s:String):Boolean
    {
        for(var i:Number=0;i<mail.length;i++)
        {
            if(mail.charAt(i)=='@'||mail.charAt(i)=='.')
            {
                n++;
            }
        }
        if(n>=2)
            return(true);
        else
            return(false);
    }
    
    

    PS:
    I files AS servono per costruirsi le proprie classi.
    Per utilizzarli non è semplice.
    Bisogna avere una buona conoscenza della programmazione ad oggetti (OOP) ed in particolar modo:
    -cosa è un oggetto o una classe
    -ereditarietà
    e tante altre cose.

    Ammiro molto e mi piace la tu voglia di imparare Actionscript 2.0 ma è quasi impossibile per me avvicinarti a quello che stai chiedendo, però una cosa si potrebbe fare:
    ti segnalo un libro che è il TOP per actionscript e la OOP:
    http://www.amazon.com/Essential-ActionScript-2-0-Colin-Moock/dp/0596006527/sr=8-1/qid=1161969230/ref=pd_bbs_sr_1/002-2813051-0481660?ie=UTF8&s=books

    Ti garantisco al 100% che vale ogni cent del suo prezzo 🙂
    Nel caso decidessi di acquistarlo ed iniziare a studiarlo a quel punto potrei esserti molto d'aiuto nei passi che non capisci. 🙂


  • User Attivo

    @Flep said:

    Ti faccio un esempio su come controllare se l stringa contiene '@' e '.'

    >
    var mail:String='[email protected]';
    var n:Number=0;
    trace(checkString(mail));
    function checkString(s:String):Boolean
    {
        for(var i:Number=0;i<mail.length;i++)
        {
            if(mail.charAt(i)=='@'||mail.charAt(i)=='.')
            {
                n++;
            }
        }
        if(n>=2)
            return(true);
        else
            return(false);
    }
    
    >``` 
    
     
     
    ehm ma la variabile mail in teoria non la conosco uso la var s:String passata come argomento della funzione .... no ? Almeno la teoria dovrebbe esser quella se poi actionscript non ne vuole sapere è un'altro discrorso ... :bho: 
     
     
    byez
    Gandalf:fumato:

  • Super User

    No scusa Gandalf , stai andando fuori strada.
    La variabile mail è la stringa che passi alla funzione.
    La funzione è abilitata a ricevere un parametro di tipo stringa , se poi io l'ho chiamata s:String l'ho fatto per fartelo capire meglio ma s è sempre mail.Forse è il trace che ti confonde.
    prova a fare così:

    
    if(checkString(mail))
        trace('checkString ha restituito true e la stringa è valida');
    else
        trace('checkString ha restituito false e la stringa non è valida');
    
    

  • Super User

    Pardon ti chiedo scusa 🙂

    Non avevo notato l'errore 😞


  • Super User

    Il codice giusto:

    
    var mail:String='[email protected]';
    var n:Number=0;
    trace(checkString(mail));
    function checkString(s:String):Boolean
    {
        for(var i:Number=0;i<s.length;i++)
        {
            if(mail.charAt(i)=='@'||s.charAt(i)=='.')
            {
                n++;
            }
        }
        if(n>=2)
            return(true);
        else
            return(false);
    }
    
    

  • User Attivo

    @Flep said:

    Il codice giusto:

    >
    var mail:String='[email protected]';
    var n:Number=0;
    trace(checkString(mail));
    function checkString(s:String):Boolean
    {
        for(var i:Number=0;i<s.length;i++)
        {
            if(**mail**.charAt(i)=='@'||s.charAt(i)=='.')
            {
                n++;
            }
        }
        if(n>=2)
            return(true);
        else
            return(false);
    }
    
    >```
     
     
    .... ah ma allora ti piace tanto stà parolina (**mail**) eheheheh :D beh mi fà piacere beccare qualche piccolo neo ogni tanto ... significa che non mi si è ingolfato del tutto l'istinto dello sviluppatore !!!!!!
     
     
    byez
    Gandalf :fumato:
     
     
     
    P.S.
    Complimenti per l'istruzione charAt a me completamente sconosciuta .... ero convinto del forse obsoleto indexOf... grande FLEP !!!

  • Super User

    @Gandalf said:

    .... ah ma allora ti piace tanto stà parolina (mail) eheheheh 😄 beh mi fà piacere beccare qualche piccolo neo ogni tanto ... significa che non mi si è ingolfato del tutto l'istinto dello sviluppatore !!!!!!

    scusami, è che essendo molto impegnato quel codice te l'ho scritto in un minuto e non l'ho ricontrollato 🙂

    non sei ingolfato 🙂 anzi vai alla grande 😄