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

Discussione: LoadVars e TextField

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    33

    LoadVars e TextField

    Ho fatto questo script con l’obbiettivo di creare una casella di testo dinamicamente e caricarci dentro del testo preso da un file di testo:

    //creo l’istanza del pulsante
    createEmptyMovieClip("pulsante", 1);
    with (pulsante) {
    beginFill(0xFF0000, 50);
    lineStyle(2, 0x000000, 100);
    moveTo(380, 380);
    lineTo(400, 380);
    lineTo(400, 400);
    lineTo(380, 400);
    lineTo(380, 380);
    endFill();
    }
    //definisco gli attributi del testo
    formatotesto = new TextFormat();
    with (formatotesto) {
    color = 0x777777;
    bold = false;
    font = "Ringbearer";
    leftMargin = 5;
    size = 12;
    }
    //Gestione pulsante
    pulsante.onPress = function() {
    // alla presione del pulsante avvia il caricamento del testo dal file esterno e quando ha finito…
    variabili = new LoadVars();
    variabili.onLoad = function() {
    //assegno il testo caricato ad una variabile e creo la casella di testo per visualizzarlo
    testo = variabili.testo;
    createTextField("casella", 0, 0, 0, 400, 400);
    with (casella) {
    wordWrap = true;
    border = true;
    variable = "testo";

    }
    // formatto il testo secondo il formato definito prima
    casella.setTextFormat(formatotesto);
    };
    variabili.load("pippo.txt");
    };


    Le mie domande sono:
    1. E’ possibile incorporare un font in modo che una volta depositato il movie su internet questo venga visualizzato correttamente (anche cambiando il file di testo!)? Se si come si fa? Io ho provato ad utilizzare embedFonts = true; però il risultato che ottengo è la casella di testo vuota.
    2. Siccome è la prima volta che mi cimento con LoadVars e Textfield ho commesso qualche errore o avete dei suggerimenti per ottimizzare lo script?
    3. Per avere più pulsanti che caricano file di testo diversi in un’unica casella creata dinamicamente è corretto duplicare il codice per ogni istanza di pulsante (in pratica ricreare tutto da capo) senza rimuovere la casella di testo eventualmente già presente o può comportare dei problemi.
    Aleoli

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    33
    Non c'è nessuno che mi può dare una risposta almeno per quanto riguarda la prima domanda? Mi sarebbe davvero molto utile.

    Grazie
    Aleoli

  3. #3
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    1. si:

    - apri la libreria
    - clicca sul pulsante in alto a destra, e scegli "New Font"
    - seleziona la font da incorporare, e dagli un nome
    - una volta cliccato su ok, clicca con il tasto destro nella libreria sul simbolo della font
    - dal menu contestuale, scegli linkage
    - come "Identifier", dagli "Ringbearer"

    2. lo script va bene

    3. devi creare la casella prima, o solo la prima volta, e poi duplicare solo la parte relativa al caricamento:

    codice:
    var files = ["pippo.txt", "minnie.txt", "pluto.txt"];
    //creo l’istanza del pulsante
    for(var i = 0; i < 3; i++){
    	var mc = this.createEmptyMovieClip("pulsante" + i, i);
    	with (mc) {
    		beginFill(0xFF0000, 50);
    		lineStyle(2, 0x000000, 100);
    		moveTo(380, 380);
    		lineTo(400, 380);
    		lineTo(400, 400);
    		lineTo(380, 400);
    		lineTo(380, 380);
    		endFill();
    	}
    	mc._x = 50 * i;
    	mc.targetText = files[i];
    	mc.onPress = function()
    	{
    		// alla presione del pulsante avvia il caricamento del testo dal file esterno e quando ha finito…
    		var variabili = new LoadVars();
    		variabili.onLoad = function() {
    			//assegno il testo caricato ad una variabile e creo la casella di testo per visualizzarlo
    			testo = variabili.testo;
    			if(!casella){
    				createTextField("casella", 0, 0, 0, 400, 400);
    				with (casella) {
    					wordWrap = true;
    					border = true;
    					variable = "testo";
    				}
    				// formatto il testo secondo il formato definito prima
    				casella.setTextFormat(formatotesto);
    			}
    		};
    		variabili.load(this.targetText);
    	};
    }
    //definisco gli attributi del testo
    formatotesto = new TextFormat();
    with (formatotesto) {
    	color = 0x777777;
    	bold = false;
    	font = "Ringbearer";
    	leftMargin = 5;
    	size = 12;
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    33
    Grazie mille per le informazioni.

    Già che ci sono ne approfitto.
    Come faccio a controllare se il testo oltrepassa i limiti della casella? Mi serve per nascondere l'istanza della scrollbar quando non serve.

    ciao
    e grazie ancora
    Aleoli

  5. #5
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Che versione della ScrollBar usi? Quella del flash mx o del flash mx 2004?

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    33
    Ho usato la UIScrollBar si Flash MX 2004, però, siccome non ho dimestichezza con i componenti e avrei bisogno di adattarne l'aspetto ad altri elementi grafici, sto ancora valutando se non sia il caso di crearne una da zero.
    Aleoli

  7. #7
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Setta i testi tramite questa funzione:

    codice:
    function setTextfieldContent(txt)
    {
    	tuo_testo.text = txt;
    	tua_scrollbar._visible = tuo_testo.maxscroll > 1;
    }

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    33
    Grazie ancora Negatyve, proverò a mettere tutto insieme. Resto solo un problema legato alla UIScrollBar se la associo all'istanza "casella" creata dinamicamente con lo script di cui sopra sembra fregarsene bellamente e rimane in disparte in un angolo, cosa che non accade che creo una casella di testo dinamico con l'aposito strumento. E' perchè creo la casella solo quando ho caricato tutto il testo?
    Aleoli

  9. #9
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Non ho capito, scrivi qui il codice che stai usando per creare dinamicamente il testo e associare la scrollbar..

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    33
    Non è la barra che creo dinamicamente (è già presente sullo stage) ma solo la casella di testo, comunque il codice è questo:

    createEmptyMovieClip("pulsante", 1);
    with (pulsante) {
    beginFill(0xFF0000, 50);
    lineStyle(2, 0x000000, 100);
    moveTo(380, 380);
    lineTo(400, 380);
    lineTo(400, 400);
    lineTo(380, 400);
    lineTo(380, 380);
    endFill();
    }
    //definizione formato testo
    formatotesto = new TextFormat();
    with (formatotesto) {
    color = 0x557755;
    bold = false;
    font = "bock";
    leftMargin = 5;
    size = 12;
    }
    //Gestione pulsante
    barra._visible = false
    pulsante.onPress = function() {
    // carica il testo e attende la fine
    variabili = new LoadVars();
    variabili.onLoad = function() {
    //quando ha caricato il testo lo assegna alla variabile per utilizzarlo e crea la casella di testo
    testo = variabili.testo;
    createTextField("casella", 0, 0, 0, 400, 400);
    setTextfieldContent (testo);
    with (casella) {
    wordWrap = true;
    border = true;
    // variable = "testo";
    embedFonts = true;
    }
    casella.setTextFormat(formatotesto);
    };
    variabili.load("pippo.txt");
    };
    function setTextfieldContent(txt) {
    trace (casella.maxscroll>1);
    casella.text = txt;
    pino = barra._visible = casella.maxscroll>1;
    }


    Ho dato all'istanza del componente UIScrollbar il nome barra (ovviamente!) e gli ho associato:

    on (load) {
    this._visible = false;
    }


    poi nella casella dei parametri del componente alla voce _targetIstanceName ho semplicemente indicato casella
    Aleoli

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.