Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Ui button

  1. #1
    Utente di HTML.it L'avatar di pipu
    Registrato dal
    Jan 2004
    Messaggi
    92

    Ui button

    Ciao ragazzi, sto provando a imparare gli UI components, ho provato questo script e l'ho modificato per renderlo piu' ordinato.. scritto cosi' pero' non funziona.. qualcuno mi sa aiutare a capire il perche'?


    SCRIPT ORIGINALE
    codice:
    bottoneListener = new Object();
               bottoneListener.click = function ()
               {
               campo.text = "hai clikkato il bottone";
               } 
               bottone.addEventListener("click", bottoneListener);
    SCRIPT MODIFICATO

    codice:
    // funzioni //////////////////////////////////////////////
    function scrivi()
    {
    	campo.text = "hai clikkato il bottone";
    }
    
    // bottone scrivi///////////////////////////////////////
    
    bottoneListener = new Object();
    bottoneListener.click = scrivi()
    bottone.addEventListener("click" , bottoneListener);
    Coder Club..Programmi per sapere chi sei!

  2. #2
    // funzioni //////////////////////////////////////////////
    function scrivi()
    {
    campo.text = "hai clikkato il bottone";
    }

    // bottone scrivi///////////////////////////////////////

    bottoneListener = new Object();
    bottoneListener.click = scrivi // senza parentesi
    bottone.addEventListener("click" , bottoneListener);

  3. #3
    Utente di HTML.it L'avatar di pipu
    Registrato dal
    Jan 2004
    Messaggi
    92
    scusami, ma una funzione non si richiama così?
    codice:
    funzione();
    cosi funziona, ma nn capisco perché nn ci vadano le parentesi.
    grazie
    Coder Club..Programmi per sapere chi sei!

  4. #4
    Sì, una funzione si richiama con nomefunzione(), ma in quel caso tu non richiami una funzione, la "associ" ad un evento che poi si occupa per conto suo di richiamarla.

    Anche perchè se invece ci metti le parentesi, tu associ a

    bottonelistener.click

    il valore ritornato dalla funzione (che viene chiamata subito ad inizio filmato), quindi la funzione viene eseguita ad inizio filmato e poi mai più, perchè bottonelistener.click ha "cambiato valore".

    // funzioni //////////////////////////////////////////////
    function scrivi()
    {
    trace("K")
    }

    // bottone scrivi///////////////////////////////////////

    bottoneListener = new Object();
    bottoneListener.click = scrivi() // senza parentesi
    bottone.addEventListener("click" , bottoneListener);

    Viene tracciato "k" subito ad inizio filmato e dopo il click non viene più "recepito"
    Se nella funzione aggiungi

    return "qualchecosa"

    vedai che bottoneListener.click prenderà come valore "qualchecosa", tant'è vero che se fai

    function scrivi()
    {
    trace("K")
    return scrivi
    }

    (e quindi associ al click la funzione scrivi), ai successivi click verrà eseguita la funzione.

    Insomma, usando le parentesi richiameresti subito la funzione e assoceresti a click il valore da essa ritornato.

  5. #5
    Utente di HTML.it L'avatar di pipu
    Registrato dal
    Jan 2004
    Messaggi
    92
    VVoVe: 6 un ottimo insegnanteee! Tantissime grazieee!
    Coder Club..Programmi per sapere chi sei!

  6. #6
    Felice d'averti aiutato, alla prossima

  7. #7
    Utente di HTML.it L'avatar di pipu
    Registrato dal
    Jan 2004
    Messaggi
    92

    bottone.onrelase

    senti, ma se invece di usare un listener utilizzo bottone.onrelase e' la stessa cosa?
    Coder Club..Programmi per sapere chi sei!

  8. #8
    Beh non è proprio "la stessa cosa", però sì, diciamo che alla fine l'azione puoi farla eseguire sia con un listener che con un onRelease, ma il listener può andare su più bottoni (questo anche l'OnRelease, però in modo diverso ), su anche altri elementi,...

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.