Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    583

    [AS3] ridefinire funzione

    Ciao a tutti,
    ho il seguente problema.

    in un certo frame della timeline principale definisco la seguente funzione (semplificata):

    Codice PHP:
    var cicleActions:Function = function(e:Event)
    {
     
    trace ("a");
    }
    stage.addEventListener(Event.ENTER_FRAME,cicleActions); 
    in un frame successivo cerco di ridefinirla nel seguente modo:

    Codice PHP:
    cicleActions = function(e:Event)
    {
     
    trace ("b");
    }
    stage.addEventListener(Event.ENTER_FRAME,cicleActions); 
    Il risultato è però è che il trace("b"); invece di sostituire il trace("a"); si somma ad esso.
    In pratica vengono eseguiti entrambi.

    Dove sbaglio?

    Grazie

  2. #2
    Secondo me assegni due funzioni al listener.

    Non so cosa succede se la seconda volta NON metti il listener, ma in teoria il listener su quella funzione già esiste, dovresti solo cambiare la funzione. Non so neanche se lo scope delle funzioni è lo stesso, ma visto che non ti da errore di dichiarazione, stai effettivamente modificando la funzione già creata con var, almeno credo.

    Comunque prova a cambiare la funzione senza aggiungere il listener, al limite rimuovilo prima di cambiare la funzione.

    codice:
    stage.removeListener(Event.ENTER_FRAME,cicleActions);
    
    cicleActions = function(e:Event)
    {
    trace ("b");
    }
    stage.addEventListener(Event.ENTER_FRAME,cicleActions);

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    583
    Sì, rimuovendo il listener prima di ridefinire la funzione funziona tutto perfettamente.

    Grazie mille.

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.