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

    [AS 2.0] Assegnare ad un textfield un testo preso da un array

    Buongiorno, mi sto facendo un classe in as 2.0 (che ho iniziato a studicchiare da poco) per la creazione di una combobox, ma sono incappato subito in un problema.
    Ho fatto una funzione che in teoria dovrebbe leggere i dati da un array e che in base alla lunghezza dell'array dovrebbe creare tot campi di testo contenente ognuno i valori presi sempre dall'array.
    la funzione è questa
    codice:
    public function CreateTextField(){
    		var TextF:TextFormat;
    		TextF = GetTextFormat();	
    		var ciao:String = new String("ciao2")
    		for(var i:Number = new Number(0);i<fields.length;i++){	
    			var myY:Number;
    			myY =TextDistance*i;
    			who.createTextField("mytesto"+i,i,0,myY,300,TextDistance);		
    			with(who["mytesto"+i]){
    				wordWrap = true;
    				border = false;
    				text = fields[i];
    				variable = fields[i];
    			}	
    			trace(fields[i]);
    			who["mytesto"+i].setTextFormat(TextF);
    		}
    	}
    il trace va bene, infatti mi mostra
    ciao
    pippo
    prova

    mentre nel campo testo mi mette undefined.
    Ho provato a mettere la variabile tra virgolette, ma niente... Avete qualche suggerimento?

  2. #2

  3. #3

  4. #4
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    E' un problema di scope, di raggiungimento delle variabili. L'array fields è una proprietà dell'istanza della Classe, non dei testi tantomeno di "who". Fai così:

    codice:
    text = _parent._parent.fields[i];
    variable = _parent._parent.fields[i];

  5. #5
    Non va
    In pratica fields lo setto con il costruttore, e non faccio altro che passargli un array con x campi

  6. #6
    Usando il trucchetto
    var path:TuaClasse = this;

    che mi hai consigliato nell'altro thread funziona tutto alla perfezione, grazie mille negatyve!!

  7. #7
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Metti tutto il codice, allora, così vedo..

  8. #8
    Il codice è questo
    codice:
    	public function CreateTextField(){		
    		//creo la variabile con le impostazioni del font
    		var TextF:TextFormat;		
    		TextF = GetTextFormat();	
    		//Imposto come primo campo selezionato di default il primo valore dell'array
    		CampoSelezionato(fields[0]);
    		var ciao:String = new String("ciao2")
    		who.createEmptyMovieClip("TheCombo",999);		
    		for(var i:Number = new Number(0);i<fields.length;i++){	
    			var mybutton:MovieClip;
    			var myY:Number;
    			myY =TextDistance*i;
    			//creo un campo di testo vuoto
    			var path:CBox = this;
    			who.TheCombo.createTextField("mytesto"+i,(i+1),0,myY,300,TextDistance);		
    			with(who.TheCombo["mytesto"+i]){
    				wordWrap = true;
    				border = false;				
    				text = path.fields[i];
    				variable = path.fields[i];	
    				embedFonts = true;
    			}				
    			//Creo il pulsante sopra il testo
    			mybutton = CreateButton(i,i,TextDistance);
    			mybutton._x = 0;
    			mybutton._y = TextDistance*i;
    			//Imposto lo stile per il testo
    			who.TheCombo["mytesto"+i].setTextFormat(TextF);
    		}//endfor		
    	}
    Cmq ho risolto

  9. #9
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Ottimo! Spiega come, per i posteri.. :)

  10. #10
    Originariamente inviato da negatyve
    Ottimo! Spiega come, per i posteri..
    Ehm, l'ho scritto sopra nega, mi sa che non l'hai letto

    Usando il trucchetto
    var path:TuaClasse = this;

    che mi hai consigliato nell'altro thread funziona tutto alla perfezione, grazie mille negatyve!!

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.