Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    165

    Help!!! Scope delle funzioni!

    Salve, penso di non aver compreso una cosa fondamentale del Flash.
    Quando definisco una funzione, collegata ad un click del mouse, in un singolo frame. Questa funzione è visibile solo all'interno di quel frame??? O anche altrove?

    A me capita una cosa particolare:
    ho tre frame singoli consecutivi (tre rettangolini col pallino pieno) e per ogni uno dei frame ho due bottoni con nome d'istanza "avanti" e "indietro". Ho fatto cio:

    - Ho messo nome d'istanza "avanti" e "indietro" ai bottoni per ognuno dei tre frame
    - Ho creato due funzioni con nomi diversi (altrimenti ho "Duplicate function definition") per ognuno dei tre frame. Queste funzioni regolano la navigazione tra i tre frame. Quindi sono richiamate tramite avanti.addEventListener... e indietro.addEventListener...

    Quando clicco dal terzo frame su "indietro" esso invece di tornare di una sola pagina indietro, mi torna di due pagine inditro perchè si attiva anche il listener che sono posizionati negli altri 2 frame precedenti!! Mentre se cambio il nome d'istanza dei due bottoni ad ogni frame questo non accade (funziona come dovrebbe). La cosa speculare accade col tasto "avanti".

    Perchè??? Dove sbaglio?
    Nell'applicazione che sto eseguendo ho tanti frame che devono essere per forza singoli ma che hanno qualche elemento in comune (come i tasti di navigazione) e volevo risparmiarmi la scritttura di codice, ma non ho capito bene come ragiona il Flash!

    Potreste illuminarmi??
    Grazie!!!

  2. #2
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465

    Re: Help!!! Scope delle funzioni!

    Originariamente inviato da WalterP
    Nell'applicazione che sto eseguendo ho tanti frame che devono essere per forza singoli ma che hanno qualche elemento in comune (come i tasti di navigazione) e volevo risparmiarmi la scritttura di codice, ma non ho capito bene come ragiona il Flash!
    Ciao

    Una funzione è sempre associata a un oggetto o al contenitore dell'oggetto stesso per cui, un metodo o una proprietà assegnata all'oggetto è visibile in tutta la timeline dove l'oggetto è presente.

    Per una questione di ordine è consigliato mettere il codice su un livello separato così come gli elementi che devono essere visibili in tutti i fotogrammi.
    Quindi invece di duplicare funzione e pulsanti assegnandogli nomi diversi potresti organizzare la timeline in questo modo:


    Nota che nel livello "Pulsanti" sono stati aggiunti 2 fotogrammi normali in modo che i pulsanti siano presenti in ogni fotogramma in cui servono.
    Ho aggiunto fotogrammi normali anche per il livello "Azioni" ma non è necessario perchè il codice contenuto nel primo fotogramma è associato ai pulsanti non al fotogramma che lo contiene e viene eseguito su tutta la timeline dove sono presenti i pulsanti.

    Quindi, per navigare da un fotogramma all'altro tramite i pulsanti "avanti" e "indietro "nel livello "azioni" inserisci il codice:
    Codice PHP:
    stop();

    avanti.addEventListener(MouseEvent.CLICK,prossimoFrame);
    indietro.addEventListener(MouseEvent.CLICK,precedenteFrame);

    function 
    prossimoFrame(evento:MouseEvent):void{
        
    nextFrame();
    }
    function 
    precedenteFrame(evento:MouseEvent):void{
        
    prevFrame();

    Spero di aver interpretato bene il tuo problema e quindi di aver chiarito i tuoi dubbi.

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    165
    grazie Sleter! sei stato molto chiaro!
    Io però avrei un'esigenza leggermente diversa:
    i tasti sono uguali (stessa istanza) per tutti i frame che prendiamo in considerazione per questo esempio,
    ma le funzioni legate ai tasti sono leggermente diverse, quindi scrivo in ogni frame le funzioni per i tasti.
    Ora accade che (in alcuni casi) al click del tasto vengano eseguite ANCHE le funzioni (legate a quel tasto) dei frame precedenti!
    In questo caso devo per forza usare nomi d'istanza diversi???

    Ancora grazie!

  4. #4
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465
    ah ecco ! infatti mi era venuto il dubbio se avevo interpretato in modo corretto o meno il tuo problema.

    In questo caso devo per forza usare nomi d'istanza diversi???
    Direi di si WalterP !

    Se la funzione è leggermente diversa devi riportare i pulsanti in fotogrammi chiave cambiando i nomi dei pulsanti stessi e delle funzioni associate nel rispettivo fotogramma in cui sono inseriti (o su un livello superiore corrispondente).

    ciao

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.