Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    AS3: passaggio di valori bloccato sull'ultimo valore

    Ciao a tutti,
    ho un problema più o meno serio.

    Ho il seguente codice:

    Codice PHP:

    var imgIndex:Number 0;

    //a() gestisce un listener sull'evento TIMER.COMPLETE
    function a():void{
        
    callMe();
        
    imgIndex++;
    }


    function 
    callMe():void {
       
    imageLoader.addEventListener(MouseEvent.CLICK, function click(evt:Event):void{
                                             function 
    b(evt,imgIndex)
                                         });

    Il problema è che al passaggio di valore nella funzione che gestisce l'evento, imgIndex mi viene dato sempre con l'ultimo valore dell'indice.
    Se invece faccio una stampa all'inizio di callMe() di imgIndex, me li carica normalmente, ovvero vedo lo scorrere degli indici.

    Dov'è il problema?

    Grazie!

  2. #2
    Il bello è che se faccio delle stampe di imgIndex all'interno di callMe(), questo cambia (come dev'essere), ma l'ascolto del listener è come se alla fien si bloccasse all'ultimo indice.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    imgIndex deve essere prima di callMe.
    Secondo l'ordine che gli hai dato tu esegue prima la funzione e poi l'index.


  4. #4
    E' priam perché imgIndex deve partire da 0, altrimenti mi salterebbe il primo elemento.

    N.B. imgIndex è globale; mi ero dimenticato di specificarlo

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Non mi hai capito. Devi fare così:

    function_a():void{
    imgIndex++;
    callMe();
    }

  6. #6
    Si, ho capito cosa mi vuoi dire, ma così facendo, imgIndex partirà da 1 e non da 0.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Ah, e allora o metti un if o lo fai partire da -1

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

    In questo esempio, ogni secondo viene chiamata la funzione "a" che incrementa di 1 il valore di "imgIndex".

    Codice PHP:
    var timer:Timer
    var imgIndex:Number 0;
    creaTimer();

    function 
    creaTimer():void
    {
        
    timer = new Timer(1000,1);
        
    timer.start();
        
    timer.addEventListener(TimerEvent.TIMER_COMPLETE,a);
    }
    function 
    a(evento:TimerEvent):void
    {
        
    trace(imgIndex);
        
    imgIndex++;
        
    creaTimer();

    ciao

  9. #9
    Ti rignrazioe, ma non è quello il problema

    Il problema è che:

    Codice PHP:
    imageLoader.addEventListener(MouseEvent.CLICK, function click(evt:Event):void{
                                             function 
    b(evt,imgIndex)
                                         }); 
    Non mi aggiunge il corretto indice ad ogni iterazione.
    imageLoader è un'immagine presa da un file XML e io devo passare l'indice imgIndex relativo ad ogni immagine.
    Il vero problema è che imgIndex scorre correttamente (ho controllato con dei trace), ma l'imgIndex che viene passato è solo l'ultimo, mentre io voglio che ad ognuno venga assegnato il proprio (0, 1, 2, 3, 4...).

  10. #10
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465
    Scusa ma nel tuo primo post parli di una funziona "a" chiamata da un Timer che incrementa la variabile "imgIndex" ed è esattamente quello che fa il codice che ti ho proposto.

    Il listener e la funzione che hai evidenziato ora sinceramente non la capisco e comunque non mi risulta essere formattazione AS3 corretta.
    Riportando tale funzione in Flash anche avendo un oggetto di nome "imageLoader" si ottiene un errore del tipo: "la funzione non ha corpo".

    Forse se spieghi meglio come è strutturato il tuo codice e cosa vuoi ottenere hai più probabilità di risolvere il problema.

    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.