Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    AS3 problemi strani con Evento Click del Mouse

    Altro giorno altro problema.

    Ho un clip in libreria, l'ho chiamato Voce e lo esporto come classe Voce() da Sprite
    Dentro Voce c'è solo una casella di testo chiamata txtTesto.

    Ne creo diverse instanze e le metto in un array

    Con questo codice inserisco un controllo sul mouse

    codice:
    var creato:Function = function (e:Event){
    	var voci:Array= mioMenu.getVoci()
    	for (var i=0;i<voci.length;i++){
    		var vc:Voce= voci[i]
                    trace(vc) // [object Voce]
    		vc.buttonMode = true;
    		vc.addEventListener(MouseEvent.CLICK, clicca)
    	}
    }
    
    var clicca:Function = function (e:MouseEvent){
    	trace(e.target) // [object TextField]
    }
    Perché è TextField il target dell'evento e non Voce?
    Credo sia per lo stesso motivo che vc non mi prende la manina è come se il listener fosse su txtTesto e non su Voce...

    se provo a fare vc.parent.addEventListener(MouseEvent.CLICK, clicca) è la stessa cosa
    ma se faccio

    trace(e.target.parent) ripunto a Voce...

    Ho provato anche a piazzare direttamente il Voce sullo stage, e chiamarla pippo e fare
    pippo.addEventListener(MouseEvent.CLICK, clicca). Stessa cosa.

    Mi sfugge qualcosa?

  2. #2
    Prova aggiungendo questa riga prima del buttonMode:

    vc.mouseChildren=false;

  3. #3
    ...

    funziona...

    grazie, stavo aggirando il problema ma ne avevo trovati altri...

    Sono abbastanza senza parole

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    In AS3, di default, gli eventi si propagano di padre in figlio, a meno che non sia specificato che i figli non debbano ricevere tali eventi (da qui il perchè funzioni aggiungendo mouseChildren=false), anche se dovrebbe essere comunque salvo il fatto di poter risalire all'oggetto che ha effettivamente generato l'evento usando la proprietà currentTarget al posto di target.

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.