Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    112

    dassare un valore tra due components

    Mio livello: principiante.
    release Flash: 8 ita
    Ciao,
    ho creato un component list con i seguenti elementi:
    var arr = [];
    //List Items
    var items = ["prod1", "prod2", "prod3", "prod4", "prod5","prod6"];
    for (var i=0 ; i<items.length ; i++){
    liProd.addItem(items[i]);
    }

    poi ho creatoun datagrid :
    myGrid.addColumn ("Products");
    myGrid.addColumn ("color");
    myGrid.addColumn ("qty");
    myGrid.addColumn ("price");
    ho anche aggiunt e settato le colonne...

    Poi ho "allineato" i valori del list component:

    liProd.changeHandler= function() {
    var index = liProd.selectedIndex+1;
    }



    Poi ho realizzto una funzione per l'azione release che dovrebbe passare il dato selezionato nel comp. List in quello del datagrid:
    btn1.onRelease = function() {
    var itemz = (["items"+index]);
    trace(myGrid.addItem(itemz));
    }

    ovviamente non funzia .

    Mi aiutate?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    l'azione che dai al pulsante come fa a funzicare???
    index che variabile è, dove la prende??
    probabilmente ti devi ridefinire l'azione onChange() nel componente List, cioè clicchi su un elemento e quello ti si aggiunge al dataGrid...
    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    112
    Originariamente inviato da byaur
    l'azione che dai al pulsante come fa a funzicare???
    index che variabile è, dove la prende??
    probabilmente ti devi ridefinire l'azione onChange() nel componente List, cioè clicchi su un elemento e quello ti si aggiunge al dataGrid...
    come "xome fa a funzionare il pulsante" se c'è "tanto " di funzione dedicata al btn1.
    index e chiarissima: var index riallinea il valore della selezione.Devo aggiungere 1 l valore del primo item che OVVIAMENTE restituisce zero...mah...
    Siccome devo, oltre a questo valore, passare altri valori derivanti da altri components. mi è sembrato opportuno passare i dati tramite pulsante invece che direttamente al cambiare della selezione.
    In pratica il valore dell'item listato nella component list (liProd) dovrebbe passare nel primo campo del dtagrid..

  4. #4
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    questo tono non mi piace molto... so leggere il codice e soprattutto lo so scrivere un pochettino(ci studio!)...
    se noti bene tu la tua bellissima variabile index la definisci all'interno del changeHandler relativo al componente List, quindi lo scope della variabile è all'interno della funzione stessa è impossibile che all'interno della funzione onRelease del pulsante veda il valore di index, che è corretto nel changeHandler ma non nel pulsante.. infatti facendo un semplice trace dentro onRelease da undefined...

    a volte si pongono domande proprio perchè nella domande c'è anche la risposta.. a volte le risposte non sono precise ma servono cmq a capire che c'è qualcosa che non va...

    cmq tutto a posto.

    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    112
    a ok. quindi il problema è questo? devo definire lo scope fuori dalla funzione? E' che la tua risposta mi sembrava strana e forse non l'ho capita.Infatti non sapevo che la var in una funzione non viene "capita" fuori dalla stessa. Spero di non averti fatto incavolare

    Ora provo.
    Grazie

  6. #6
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    si il problema era quello, a prima vista, nel senso che appena visto c'èra la dichiarazione all'interno della funzione richiamata da fuori -> errore di programmazione

    basta che metti
    var variabile;
    nella timeline

    poi la puoi richiamare con _root.variabile da qualsiasi parte...

    oppure usi variabile globale...

    vedi tu...

    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    112
    Non me ne volere..
    Dunque, io da testone ho fatto un'acrobazia (non mi dà nessun errore e mi restituisce item 4 al selexionere di un item appunto e premendo il pulsante. Ho provato ad annidare la funzione in un'altra non so se è corretta la sintassi ma non mi restituisce errore ma traccia l'item correttamente:


    liProd.changeHandler= function() {
    var index = liProd.selectedIndex+1;
    btn1.onRelease = function() {
    var itemz = (["items"+index]);
    trace(itemz);

    }

    }

    se seleziono "prod4" nella list comp m i traccia item4- Quindi presumo corretto
    Ora, come faccio a farmi restituire il contenuto di item4 e cioè prod4 e depositarlo nel campo Products di datagrid?

    Grazie

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    112
    in pratica dovrei agganciare l'array [i]...

  9. #9
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    cosi te la vede perchè hai messo l'azione del pulsante al'interno dell'handler dove dichiari e valorizzi la variabile...

    prima non andava!!!

    ora devo andare... se non risolvi quando ritorno a lavoro lunedi fatti sentire.
    ciao
    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    112
    Ciao,
    quando hai tempo ti ricordi di me?
    Grazie

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.