Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822

    [Flash 8 o MX] Combobox dipendenti

    è possibile creare in flash una combobox dipendente una dall'altra ?
    ho fatto una ricerca nel forum ma non ho trovato nulla... (o cerco con un termine sbagliato?)...
    cmq, avrei bisogno di inserire in un form due menu a tendina, inizialmente il secondo è disabilitato ed il primo è su un valore nullo (tipo seleziona area...)
    in base alla selezione della prima tendina (area) devono apparire le sedi corrispondenti. esempio di cominazioni possibli:

    AREA 1 - SEDE A
    AREA 1 - SEDE C

    AREA 2 - SEDE A
    AREA 2 - SEDE B

    AREA 3 - SEDE A
    AREA 3 - SEDE B
    AREA 3 - SEDE F

    in poche parole: tendina dipendente una dall'altra.
    sapresete aiutarmi ? grazie.

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Crea un nuovo filmato, trascina sullo stage un combobox, poi cancellalo. Nel primo frame, incolla questo script:

    codice:
    // importo la classe ComboBox
    import mx.controls.ComboBox;
    // creo i due combobox
    var combo1:ComboBox = createClassObject(ComboBox, "_c1", 1, {_x:10});
    var combo2:ComboBox = createClassObject(ComboBox, "_c2", 2, {_x:combo1._x + combo1.width + 10});
    // disabilito il secondo
    combo2.enabled = false;
    // setto il contenuto del primo
    combo1.dataProvider = [
    					   {label:"- seleziona -", data:null},
    					   {label:"AREA 1", data:["SEDE A", "SEDE C"]},
    					   {label:"AREA 2", data:["SEDE A", "SEDE B"]},
    					   {label:"AREA 3", data:["SEDE A", "SEDE B", "SEDE F"]}
    					   ];
    // creo un oggetto per gestire gli eventi dei combobox
    var listener:Object = new Object();
    listener.change = function(evt:Object):Void
    {
    	// in base al combobox selezionato
    	switch(evt.target)
    	{
    		case combo1:
    			// recupero l'oggetto data associato all'elemento selezionato
    			var data = evt.target.selectedItem.data;
    			// se l'oggetto è nullo (il primo è nullo apposta)
    			if(data == null){
    				// svuoto il secondo combobox
    				combo2.dataProvider = [];
    				// lo disabilito
    				combo2.enabled = false;
    			} else {
    				// abilito il combobox
    				combo2.enabled = true;
    				// associo i dati come dataProvider
    				combo2.dataProvider = data;
    			}
    			break;
    		case combo2:
    			// traccio l'oggetto selezionato
    			trace(evt.target.selectedItem);
    			break;
    	}
    };
    // metto l'oggetto in ascolto degli eventi dei combobox
    combo1.addEventListener("change", listener);
    combo2.addEventListener("change", listener);

  3. #3
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    grazie negative... il salvatore...
    volevo chiederti una cosa prima di adottare il tuo script nel mio filmato.
    devo trascinare una combobox e poi cancellarla da quello che hai scritto.
    essendo il form in un swf figlio caricato su un swf madre, devo fare questa operazione sullo stage del swf madre o sullo stage dell'swf che contiene il form?

  4. #4
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Sullo stage del figlio, ma mi pare che ci sia un bug per cui sei costretto a farlo anche in quello principale. Prova prima con l'esterno.

  5. #5
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    tutto funzia alla perfezione.. ma..
    scusa la domanda (forse stupida)
    ma come sposto i due combobox in un punto specifico del filmato?
    ora mi appaiono in alto a sx..

  6. #6
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    codice:
    combo1.move(x, y);
    combo2.move(x, y);

  7. #7
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    thanks

  8. #8
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    un'altra domanda:

    come faccio a ricavare il valore della combo2 quando non viene selezionato nulla (cioè quando mi va bene la prima voce) ?

    nell'esempio tracci il valore della combo2 solo quando seleziono una voce:

    codice:
    ...
    case combo2:
    			// traccio l'oggetto selezionato
    			trace(evt.target.selectedItem);
    ...
    se seleziono una voce nella combo1 e mi va bene la prima voce della combo2 evt.target.selectedItem non ha valore.

    devo inviare tutti i dati con un SendAndLoad ed ho bisogno del valore di combo2.

    2 domanda.
    come resetto le combo? cioè come posso farle tornare allo stato iniziale?

    Grazie.

  9. #9
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Quando setti il dataProvider del secondo combo, forzi la selezione:
    codice:
    		// abilito il combobox
    		combo2.enabled = true;
    		// associo i dati come dataProvider
    		combo2.dataProvider = data;
    		// forzo il change sul primo elemento
    		this.change({target:combo2});

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.