![]() |
![]() |
|
| Condividi questo contenuto nei Social Network: |
|
Tweet |
|
|
|
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito. |
||||
|
|||||||||
Hey Amico Visitatore, Condividi con noi le tue idee e la tua conoscenza Aprendo una nuova discussione nella sezione Flash & ActionScript |
|
|
LinkBack | Strumenti di discussione |
|
|
#1 (permalink) |
|
User Newbie
Data di registrazione: Jul 2009
Messaggi: 6
|
Creare listener su bottoni con ciclo for
Ho il seguente codice di prova:
Codice:
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);
}
}
}
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? |
|
|
|
|
|
|
|
#2 (permalink) |
|
Moderatore
Data di registrazione: May 2008
Messaggi: 2,551
|
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
Codice:
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[i].addEventListener(MouseEvent.MOUSE_DOWN,onClick)
}
function onClick(evento:MouseEvent):void {
trace (evento.target.name)
}
|
|
|
|
|
|
#3 (permalink) |
|
User Newbie
Data di registrazione: Jul 2009
Messaggi: 6
|
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.
|
|
|
|
|
|
#4 (permalink) |
|
Moderatore
Data di registrazione: May 2008
Messaggi: 2,551
|
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.
|
|
|
|