Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [AS3] Creazione dinamica di textField

    Salve,

    come faccio a creare dinamicamente un certo numero di textfiled?
    Ossia, come faccio in AS3 a scrivere questo spezzone di pseudo-codice?
    codice:
    for(i=1; i<n; i++){
      crea_text_field (testo-I)
    }
    il risultato deve essere una serie di controlli sullo stage che si chiamano testo1, testo2, testo3,...

    Vi ripeto... è pseudocodice... si fa per capirci!

    Grazie
    Dice il saggio:
    Non ci sono domande difficili, esistono solo risposte che non conosciamo!
    "Se qualcosa può andare male, lo farà" - Murphy

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182

    Re: [AS3] Creazione dinamica di textField

    Originariamente inviato da cleverboy

    Vi ripeto... è pseudocodice... si fa per capirci!
    Se non l'avessi specificato ti avrei detto che dovevi postare la funzione "crea_text_field"
    Allora io ti do la soluzione che preferisco, anche se non è detto che a te possa andare bene.
    Quando devo creare oggetti legati ad un indice, utilizzo un array per stiparli in modo tale che in qualsiasi momento dopo averli creati e in qualsiasi altra parte del filmato, avrò disponibile un puntatore ad ogni oggetto creato, semplicemente richiamando l'array con il suo indice.

    Intanto in AS3 per creare un textfield si usa il costruttore e non più la funzione "createTextField". Detto questo, bisogna ricordarsi che prima si crea il campo e poi lo si deve aggiungere alla visualizzazione con addChild.

    Codice PHP:
    var myTextField:TextField = new TextField();
    addChild(myTextField); 
    In una riga si può creare il campo e aggiungerlo allo stage in questo modo:

    Codice PHP:
    var myTextField:TextField addChild(new TextField()) as TextField
    Per aggiungere ad esempio 10 textfield, ci creiamo il nostro array e poi con un ciclo, aggiungiamo all'array con un push (e automaticamente ci ritroveremo i campi anche sullo stage)

    Codice PHP:
    var tfArray:Array = [];
    for (var 
    i:uint=0i<10i++) {
        
    tfArray.push (addChild(new TextField()) as TextField);
        
    tfArray[i].width 100;
        
    tfArray[i].height 20;
        
    tfArray[i].20*i;
        
    tfArray[i].border true;
        
    tfArray[i].background true;
        
    tfArray[i].text "testo"+i;

    Come puoi notare, basta richiamare l'array con l'indice per assegnare al textfield tutte le proprietà di cui dispone e gestirlo in piena libertà e in autonomia rispetto alla timeline di appartenenza.

  3. #3
    Tra le varie proprietà che posso gestire con quello script c'è anche NAME?
    perché a me fondamentalmente interessa il nome... altrimenti non ci posso lavorare se non so come si chiama (e si deve chiamare come dico io per un problema di compatibilità con il resto degli script che ho elaborato).


    Ad ogni modo grazie. mi sei stato fino ad ora di grande aiuto!
    Dice il saggio:
    Non ci sono domande difficili, esistono solo risposte che non conosciamo!
    "Se qualcosa può andare male, lo farà" - Murphy

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Immagino che la necessità di gestirne il nome derivi dal fatto che devi cercarli in certi punti con "getChildByName". Se così fosse ti sconsiglio questa strada, decisamente meglio gestirli come ti ho suggerito usando un array con gl'indici.
    Comunque per rispondere alla tua domanda, si possono gestire tutte le proprietà dei textfield in quanto tali, quindi anche name.

  5. #5
    La mia necessità, tanto per parlarne, è quella di riempire i vari campi con il contenuto di un file xml... in poche parole devo sapere che <giocatore nome="PINO"> vada a finire nel textfield con nome "giocatore1"... per questo mi servono i nomi.

    La faccenda è un attimo complicata da spiegarsi a parole... magari quando ho finito ti faccio vedere il tutto.

    grazie
    Dice il saggio:
    Non ci sono domande difficili, esistono solo risposte che non conosciamo!
    "Se qualcosa può andare male, lo farà" - Murphy

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Lo capisco, ma se consideri che la nuova classe XML consente di gestire sempre con gli indici i vari nodi dell'xml, l'associazione con i tuoi campi è presto fatta.

    Metti ad esempio questo codice, se lo provi in un file vuoto vedrai cosa intendo per corrispondenza di indici.
    Codice PHP:
    var xml:XML 
        <
    giocatori>
            <
    giocatore nome="PINO"></giocatore>
            <
    giocatore nome="NINO"></giocatore>
            <
    giocatore nome="TINO"></giocatore>
            <
    giocatore nome="GINO"></giocatore>
            <
    giocatore nome="RINO"></giocatore>
            <
    giocatore nome="BINO"></giocatore>
            <
    giocatore nome="DINO"></giocatore>
        </
    giocatori>
        
    var 
    tfArray:Array = [];
    for (var 
    i:uint=0i<xml.giocatore.length(); i++) {
        
    tfArray.push (addChild(new TextField()) as TextField);
        
    tfArray[i].width 100;
        
    tfArray[i].height 20;
        
    tfArray[i].20*i;
        
    tfArray[i].border true;
        
    tfArray[i].background true;
        
    tfArray[i].name xml.giocatore[i].@nome;
        
    tfArray[i].text tfArray[i].name;


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.