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

    [as3]ciclo per elementi in stage

    Ciao a tutti...
    Vediamo chi riesce a darmi una mano.
    Sono passato da un po a as3 e ho il seguente problema(in as2 mi funzionava tranquillamente).
    Praticamente ho un ciclo, riesco a gestirmi gli array, ma non riesco ad inserire il testo in 6 campi di testo dinamici posizionati sullo stage temp1 temp2 temp3 temp4 ecc.


    Codice PHP:
    for(var i=0i<=arrayT.lengthi++){
          
    //trace(arrayT[i]);
          
    temp0.text arrayT[0]; 
          
    //this[temp+"i"].text = arrayT[i]; AS2
      

    Come posso fare?
    grazie in anticipo
    Alb
    Vacanze al mare in hotel in camping a Lignano Sabbiadoro

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,774
    Ciao..

    Questo mi suona malissimo:
    codice:
    //this[temp+"i"].text = arrayT[i]; AS2
    Dovresti mettere le virgolette su "temp" non su i.
    Non vedo nemmeno come possa funzionare su AS2..

    Seconda cosa: l'indice di un array è a base 0 mentre la proprietà length è a base 1 quindi la condizione del ciclo non è corretta (i<=arrayT.length) perchè in quel modo avresti un'ultima iterazione che richiama un elemento indefinito dell'array.

    Alla fine dei conti ci sono due errori in due righe di script che hai scritto.. Posso solo consigliarti di cercare di essere meno pasticcione.

    Correggendo gli errori dovresti avere una cosa del genere:
    codice:
    var arrayT=["pippo","pluto","topolino"];
    
    for (var i=0; i < arrayT.length; i++) {
    	this["temp"+i].text=arrayT[i];
    }
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Si grazie, avevo sbagliato di scrivere... che stupid
    Worm, come mai non è giusto: (i<=arrayT.length)?
    comunque il primo "arrayT[0]" me lo prende ugualmente se provo col trace
    tu intendevi per i segni minore "uguale"?

    non capisco una cosa...

    Funzia tutto perfettamente, pero non capisco perchè mi da:
    Codice PHP:
    13 C
    15 C
    14 C
    15 C
    13 C
    11 C
    TypeError
    Error #1010: Un termine risulta undefined e non ha proprietà.
        
    at weather_fla::MainTimeline/PrevParseBooks()
        
    at weather_fla::MainTimeline/onprevComplete()
        
    at flash.events::EventDispatcher/dispatchEventFunction()
        
    at flash.events::EventDispatcher/dispatchEvent()
        
    at flash.net::URLLoader/onComplete() 
    questo è il mio codice...
    Codice PHP:
    for(var i=0i<=arrayT.lengthi++){
          
    arrayT[i] = PrevBookInput.lettura.temperatura[i].text();
          
    trace(arrayT[i]);
          
    //temp0.text = arrayT[0];
           
    this["temp"+i].text arrayT[i];
           } 
    praticamente prendo da 6 campi tag dall' xml e li metto su campo di testo...
    i campi di testo sono gia posizionati sullo stage e istanziati e non li creo dinamicamente.
    Grassie
    Vacanze al mare in hotel in camping a Lignano Sabbiadoro

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Se posso contribuire... ti consiglio di utilizzare la nuova funzione forEach per lo scorrimento degli array, in cui si associa una funzione che viene eseguita per ogni elemento dello stesso, in questa modalità:

    Codice PHP:
    arrayT.forEach(callbackFoo);
    function 
    callBackFoo (e:*, i:uinta:Array):void {
    // "e" rappresenta l'elemento di ogni indice dell'array, "i" l'indice assunto ad ogni attivazione della funzione e "a" rappresenta l'array che ha richiamato il forEach
    PrevBookInput.lettura.temperatura[i].text();
    this["temp"+uint(i+1)].text e;

    Non sono sicuro che il this all'interno della funzione si riferisca alla timeline in cui viene scritto il codice, ma dovrebbe andare. Con questa funzione eviti di usare il ciclo for e di sbagliare a gestire l'indice.

  5. #5
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,774
    Worm, come mai non è giusto: (i<=arrayT.length)?
    comunque il primo "arrayT[0]" me lo prende ugualmente se provo col trace
    tu intendevi per i segni minore "uguale"?
    Si esatto. Basterebbe utilizzare il solo segno di minore "<" senza l'uguale, in quanto l'ultimo valore (che corrisponde a length, cioè al totale degli elementi nell'array) non è disponibile per l'array che iniziando dall'indice 0 arriverà ad un indice pari a (length-1).

    Ad ogni modo and80 ha suggerito una valida alternativa.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  6. #6
    Grazie 1000 verme e ciao Andrea... ho provato la funzione forEach(),ma non mi gira.
    ho provato a mettere il forEach prima e dopo la funzione ma non cambia ugualmente.
    comunque questa classe dovrebbe effettuare una funzione per ogni array, ma se l'array non e popolata prima come farebbe a girare? dove sarebbe il problema?
    mi son letto la spiagazione sulla guida, ma come sempre non si capisce una pipp...
    Vacanze al mare in hotel in camping a Lignano Sabbiadoro

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.