Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: pulsanti dinamici?

  1. #1

    pulsanti dinamici?

    Salve a tutti.

    Domandina... :master:

    E' possibile creare dei pulsanti dinamicamente?

    Ossia fare in modo che dal filmato principale sia possibile richiamare un MENU totalmente dinamico, ossia NON già contenuto (=disegnato) in una scena, ma creato dinamicamente in base a certi parametri?

    Esempio: se mi chiamo marco il menu mi apparirà con certe opzioni, e sarà creato e formattato per marco, se invece mi chiamo carlo il menu sarà a misura di carlo?

    Mi interesserebbe sapere se è possibile creare un menu del genere ESCLUSIVAMENTE attraverso AS, ossia senza disegnare preventivamente alcun simbolo nella libreria...

    Se è possibile dargli tutte le proprietà, la flessibilità e l'interattività di un menu progettato a parte e richiamato nel modo tradizionale...

    Thanx

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Si, si può fare...

  3. #3
    In teoria si puo fare tutto o quasi, in pratica devi conoscere il linguaggio a menadito, almeno per creare quello che desideri dal post che hai fatto.
    Smanettando s'impara, ma programmatori di codice beh è un po piu tosta.

  4. #4
    Eheheh...

    il "si, si può" è meraviglioso nella sua sinteticità, ma anche nella sua tragicità. Perchè il problema, naturalmente, è come...

    Io ad esempio trovo una grave difficoltà nella creazione dinamica di un pulsante con una scritta dentro.

    Ossia: il pulsante si crea facilmente, e si crea facilmente anche un campo testo con una scritta, ma poi se piazzo la scritta sopra il pulsante questo in pratica perde le sue caratteristiche di pulsante, e così ho solo sprecato tempo.

    Come fare il tutto dinamicamente, in modo tale però che tutto funzioni?

    thanx

  5. #5
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    ok, partiamo dalle piccole cose, creazione di pulsante con scritta:

    codice:
    function createButton(name, where, depth, x, y, width, height, text, color)
    {
    	var mc = where.createEmptyMovieClip(prova, depth);
    	mc._x = x;
    	mc._y = y;
    	mc.moveTo(0, 0);
    	mc.lineStyle(1, 0x000000, 100);
    	mc.beginFill(color, 100);
    	mc.lineTo(width, 0);
    	mc.lineTo(width, height);
    	mc.lineTo(0, height);
    	mc.lineTo(0, 0);
    	mc.endFill();
    	mc.createTextField("txt", 1, 0, 0, 1, 1);
    	mc.txt.autoSize = "left";
    	mc.txt.text = text;
    	mc.txt._x = Math.round((width / 2) - (mc.txt._width / 2));
    	mc.txt._y = Math.round((height/ 2) - (mc.txt._height/ 2));
    	return mc;
    }
    var but = createButton("prova", this, 1, 50, 50, 130, 25, "prova pulsante", 0xFFCC00);
    but.onRelease = function()
    {
    	trace("CIAO");	
    }

  6. #6

    lacrime...

    Cavolo, mi viene quasi da piangere... FUNZIONA!

    Sto cercando di confrontarlo con ciò che facevo io, ma le lacrime mi offuscano la vista, e non distinguo bene...

    Io NON creavo una funzione, ma due cose separate (mc+label) che poi tentavo goffamente di unire...

    1) Non capisco bene il RETURN MC... qual è la sua funzione?

    2) Se non ho capito male, VAR BUT crea il bottone nel modo specificato prima da FUNCTION con l'aggiunta del testo PROVA PULSANTE e con il colore del testo: dico bene?

    3) Se volessi aggiungere altri bottoni dinamicamente potrei modificare il nome VAR BUT con qualcosa tipo VAR "BUT"+n (n=1; n++), tanto per intenderci?

    Thanx

  7. #7
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    >Non capisco bene il RETURN MC... qual è la sua funzione?

    La funzione "createButton" crea il bottone, e ne restituisce un riferimento, in modo che tu possa, con questo riferimento salvato nella variabile "but", assegnare al bottone l'evento onRelease.

    >e con il colore del testo: dico bene?

    no, è il colore di fondo del pulsante

    >Se volessi aggiungere altri bottoni dinamicamente potrei
    >modificare il nome VAR BUT con qualcosa tipo VAR "BUT"+n
    >(n=1; n++), tanto per intenderci?

    Quasi. but è solo un riferimento, non è il nome del pulsante, che invece è indicato dal primo parametro della funzione. Quindi, ad esempio:

    codice:
    function createButton(name, where, depth, x, y, width, height, text, color)
    {
    	var mc = where.createEmptyMovieClip(prova, depth);
    	mc._x = x;
    	mc._y = y;
    	mc.moveTo(0, 0);
    	mc.lineStyle(1, 0x000000, 100);
    	mc.beginFill(color, 100);
    	mc.lineTo(width, 0);
    	mc.lineTo(width, height);
    	mc.lineTo(0, height);
    	mc.lineTo(0, 0);
    	mc.endFill();
    	mc.createTextField("txt", 1, 0, 0, 1, 1);
    	mc.txt.autoSize = "left";
    	mc.txt.text = text;
    	mc.txt._x = Math.round((width / 2) - (mc.txt._width / 2));
    	mc.txt._y = Math.round((height/ 2) - (mc.txt._height/ 2));
    	return mc;
    }
    function init()
    {
    	var testi = ["primo pulsante", "secondo pulsante", "terzo pulsante"];
    	var colori = [0xFFCC00, 0x00CC99, 0xFF00FF];
    	for(var i = 0; i < testi.length; i++){
    		var profondita = i; // aumenti la profondità
    		var nome = "pulsante" + i; // pulsante1, pulsante2 ecc
    		var posizione = 140 * i; // sposti i pulsanti gradualmente verso destra
    		var but = createButton(nome, this, profondita, posizione, 50, 130, 25, testi[i], colori[i]);
    		// usando il riferimento restituito dal richiamo alla funzione, crei la variabile
    		// testo nel pulsante
    		but.testo = testi[i];
    		// allo stesso modo assegni l'evento
    		but.onRelease = function()
    		{
    			trace(this.testo)
    		};
    	}
    }
    init();

  8. #8

    meraviglia...

    Semplicemente fantastico...

    non solo perchè funziona, ma sopratutto perchè per me diventa materiale da studiare, da capire a fondo.

    Ad esempio mi pare di cogliere uno dei miei errori fondamentali: confondere il nome di un oggetto con quello dell'istanza dell'oggetto stesso...

    Mi pare di riuscire a capire QUASI tutto, anche se naturalmente devo assimilare la logica sottostante...

    Se non vedo male sfrutti piccoli array per caricare testo e colore...

    1) io normalmente non uso mai la sintassi VAR... è obbligatoria?

    2) come mai chiudi la FUNCTION INIT con INIT()? la FUNCTION CREATE BUTTON l'avevi chiusa con RETURN MC...

    3) se in un momento successivo volessi riferirmi ad uno dei bottoni creati dovrei farlo come "PULSANTE"+i, giusto?

    Thanx++

  9. #9
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    >io normalmente non uso mai la sintassi VAR... è obbligatoria?

    No, ma è buona norma sopratutto quando la variabile creata, una volta completata la funzione, non serve più: ad esempio, una volta creati i bottoni, gli array color e testi possono essere eliminati dalla memoria.

    >2) come mai chiudi la FUNCTION INIT con INIT()? la FUNCTION
    >CREATE BUTTON l'avevi chiusa con RETURN MC...

    Non ho chiuso la funzione, con quel secondo init() la chiamo:

    codice:
    //definisco la prima funzione
    function nomeFunzione1()
    {
    	// codice
    }
    //definisco la seconda funzione
    function nomeFunzione2()
    {
    	// codice
    }
    // chiamo la seconda funzione
    nomeFunzione2();
    >3) se in un momento successivo volessi riferirmi ad uno dei
    >bottoni creati dovrei farlo come "PULSANTE"+i, giusto?

    "pulsante" + i è una stringa formata da "pulsante" più il valore di i, che è un numero. Quando una stringa e un numero vengono sommati, il numero viene convertito in stringa e si ottiene una nuova stringa data dal concatenamento delle due.
    Quindi, per richiamare poi i pulsanti, non serve far riferimento a i. Puoi chiamare il primo pulsante, ad esempio:

    pulsante0

  10. #10

    1000 thanx

    Ok, 1000 grazie per le lezioni...

    Ho ampio materiale di studio.

    Ora tocca a me... voglio provare a divertirmi ad applicare, modificare e stravolgere tutto...

    Fino a quando non avrò davvero assimilato i concetti.

    Davvero grazie ancora.

    Alla proxima

    byebye

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.