- Home
- Categorie
- Digital Marketing
- Grafica, Visual Design & UX
- Creare listener su bottoni con ciclo for
-
Creare listener su bottoni con ciclo for
Ho il seguente codice di prova:
package { import flash.display.Sprite; import flash.events.MouseEvent; public class prova_2 extends Sprite { function prova_2():void { pls_1.addEventListener(MouseEvent.CLICK,function(evento:MouseEvent){scrivi(1);}); pls_2.addEventListener(MouseEvent.CLICK,function(evento:MouseEvent){scrivi(2);}); pls_3.addEventListener(MouseEvent.CLICK,function(evento:MouseEvent){scrivi(3);}); pls_4.addEventListener(MouseEvent.CLICK,function(evento:MouseEvent){scrivi(4);}); pls_5.addEventListener(MouseEvent.CLICK,function(evento:MouseEvent){scrivi(5);}); } function scrivi(numero:uint):void { trace (numero); } } } ```pls_1, pls_2 ecc. sono pulsanti inseriti nel filmato. Il codice funziona, ma se io avessi più di cento pulsanti sarebbe molto comodo usare un ciclo. Ed ecco che ho due problemi: il primo è che anche se i nomi delle istanze dei pulsanti contengono un riferimento numerico non so come richiamarli durante il ciclo. L'unico modo che ho trovato è creare un Array contente i riferimenti ai vari pulsanti, ma se avessi mille pulsanti dovrei scrivermi a mano un Array lunghissimo. Il secondo problema è che quand'anche utilizzassi l'Array per richiamare i pulsanti, non riesco ad assegnare parametri diversificati alla funzione scrivi(). Qualcuno mi può mostrare come scrivere un ciclo for ed avere lo stesso risultato del codice sopra?
-
Ciao giancarlo75, non sono molto bravo con as3 e actionscript in generale ma credo, almeno da quello che ho studiato, che non si possa fare a meno degli Array
var My_menu:Array = new Array (pls_1,pls_2,pls_3,pls_4,pls_5) for(var i:int=0;i<My_menu.length;i++) { My_menu*.addEventListener(MouseEvent.MOUSE_DOWN,onClick) } function onClick(evento:MouseEvent):void { trace (evento.target.name) }
-
E' quello che temo anch'io, vorrei che non fosse così ma mi sa che non c'è alterntiva. L'unica è allora lavorare su database ed xml per creare automaticamente degli array, altrimenti a mano sarebbe un lavoro lunghissimo. A quel punto non occorre nemmeno che gli elementi abbiano tutti un nome uguale numerato.
-
Però non posso credere che devi fare un sito in flash con 1000 pulsanti, anche se sono 10 , 20 o 50 non è che sia un lavoro così immane, poi a patto che svolgano tutti la stessa azione, che so link a pagine o caricare swf esterni anche la funzione basta scriverla una volta sola, creando un altro Array che includa i link o gli swf da caricare e mettendo dentro il ciclo for un indice.
-
No non devo fare un sito, è solo una prova per capire quello che posso e quello che non posso fare con actionscript, una cosa a livello di studio.
-
Ahh! Ok.