Pagina 2 di 4 primaprima 1 2 3 4 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 31

Discussione: Formule Statistiche

  1. #11
    Scusa And80 ma non penso di averci capito molto di quello che mi hai detto...prometto che ti chiedo l'ultima cosa approfittando della tua pazienza .
    Allora, ho risolto il mio problema solo in parte, ovvero assegnando ad un pulsante questo codice:
    on (release) {
    if (Number(c14) > 5.9) {
    f14 = "257";
    } else {
    f14 = h38;
    }
    }

    Quello che però vorrei è non avere il pulsante. cioè far funzionare automaticamente il tool man mano che ci inserisco i numeri nella casella di imput c14....purtroppo non ho idea di che as mettere sul frame.
    Grazie ancora e ti chiedo perdono per la mia ignoranza nel campo

  2. #12
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    se lo devi far funzionare come excel devi impostare il controllo sull'Enter della tastiera

    lo puoi fare sfruttando un listener per la classe Key

    var o = {}
    o.onKeyDown = function(){
    if(Key.isDown(Key.ENTER)){
    // azioni legate all'inserimento dei valori nei campi
    }
    }
    Key.addListener(o);

  3. #13
    Ragazzi, vi rompo ancora una volta sperando di essere ad un passo dal risolvere il problema (grazie a voi).
    Vi allego anche il file su http://spirtu.altervista.org/tool2.fla
    I campi di input sono f14 f18 f22 f25
    Il codice che ho messo sul primo frame è questo:

    f14 = 1
    f18 = 10
    f22 = 31.5
    f25 = 43
    j14 = k36+k37
    m14 = 242*f14
    o14 = 46*f22
    j18 = j14+m14+o14
    m18 = -35*f18
    o18 = -21*f25
    q18 = j14+m14+o14+q14+m18+o18;
    k37 = 3220+1080
    k36 = 11965
    if (Number(f14) > 2) {
    k36 = 2313.8*LNf14+6215.8;
    } else {
    k36 = 9000;
    }

    I problemi che non riesco a risolvere sono questi:
    - perchè j14, j18 e q 18 mi danno come risultato NaN?
    - non riesco a scrivere correttamente quest'espressione con logaritmo LN (k36 = 2313.8*LNf14+6215.8
    - come faccio a fare in modo che ogni volta che inserisco nei campi di input f14 f18 f22 f25 dei valori diversi mi cambi automaticamente anche i valori in tutti i campi dinamici?
    And80 mi ha consigliato questo codice ma, data la mia ignoranza in materia, non riesco proprio a capire come inserirlo:

    var o:Object = new Object();
    o.onChanged = function(t:TextField){
    trace(t.text);
    }
    t.addListener(o); // t è l'istanza del testo a cui associo il listener che contiene l'evento onChanged

    grazie mille a tutti per la pazienza!

  4. #14
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    1. partiamo da un presupposto
    in flash i campi di testo presentano il proprio testo libero da formattazioni ecc, solo utilizzando la proprietà text, tale proprietà è però di tipo stringa, perciò se provi a moltiplicare un numero per una stringa ottieni NaN (Not a Number)

    perciò ad esempio j14, j18 e j18 dovranno essere scritti così

    j14.text=Number(k36.text)+Number(k37.text);
    j18.text=Number(j14.text)+Number(m14.text)+Number( o14.text)
    q18.text=Number(j14.text)+Number(m14.text)+Number( o14.text)+Number(q14.text)+Number(m18.text)+Number (o18.text);

    2. quello del logaritmo è scritto così? mi pare che manchi qualche parentesi...

    3. quel codice va associato ai campi di tipo input, che determinano, attraverso la loro modifica, la modifica di tutti gli altri textfield che hanno formule che dipendono da questi, quindi nel tuo caso devi associare il codice ai campi f14, f18, f22 ed f25

    Codice PHP:
    var o:Object = new Object();
    o.onChanged = function(t:TextField){
    // azioni di modifica dei campi dinamici
    }
    f14.addListener(o);
    f18.addListener(o);
    f22.addListener(o);
    f25.addListener(o); 

  5. #15
    Grazie mille ma ho ancora qualche problema: i campi j14, j18 e j18 ora risultano vuoti, cambiando i valori a f14 f18 f22 f25 non succede niente .
    Io ho fatto così

    f14 = 1
    f18 = 10
    f22 = 31.5
    f25 = 43
    m14 = 242*f14
    o14 = 46*f22
    m18 = -35*f18
    o18 = -21*f25
    j14.text=Number(k36.text)+Number(k37.text);
    j18.text=Number(j14.text)+Number(m14.text)+Number( o14.text)
    q18.text=Number(j14.text)+Number(m14.text)+Number( o14.text)+Number(q14.text)+Number(m18.text)+Number (o18.text);
    k37 = 3220+1080
    k36 = 11965
    if (Number(f14) > 2) {
    k36 = 2313.8*LNf14+6215.8;
    } else {
    k36 = 9000;
    }
    var o:Object = new Object();
    o.onChanged = function(t:TextField){
    // azioni di modifica dei campi dinamici
    }
    f14.addListener(o);
    f18.addListener(o);
    f22.addListener(o);
    f25.addListener(o);

    La proprietà TESTO la devo dare a tutti i campi?
    Ultima cosa: il logaritmo in excel è questo (2313,8*LN($F$14) + 6215,8)

    Lo so che mi stai odiando....io però ti ringrazio tanto

  6. #16
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    il problema sussiste, devi assegnare i dati alla variabile text di ogni textfield, non lo puoi fare solo ai campi che ti ho segnato io

    f14.text = 1
    f18.text = 10
    f22.text = 31.5
    f25.text = 43
    m14.text = 242*Number(f14.text)
    o14.text = 46*Number(f22.text)
    m18.text = -35*Number(f18.text)
    o18.text = -21*Number(f25.text)
    //ecc...

  7. #17
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    ah, le azioni che hai scritto sopra, per funzionare con l'input dell'utente,devono stare dove io ho inserito il commento //azioni di modifica dei campi dinamici
    altrimenti non verranno attivate, come è logico che sia

    >> Lo so che mi stai odiando....io però ti ringrazio tanto

    no figurati, ma voglio che cerchi di capire quello che stai facendo, non che scrivi quello che ti scrivo io, senza comprenderne la logica... altrimenti tanto varrebbe chiedere a qualcun altro di farlo al posto tuo

  8. #18
    Ok, ci sono quasi...grazie a te.
    il codice che ho usato è questo
    k37.text = 3220+1080
    if (Number(f14.text) > 2) {
    k36.text = 11965;
    } else {
    k36.text = 9000;
    }
    f14.text = 12
    f18.text = 10
    f22.text = 31.5
    f25.text = 43
    j14.text=Number(k36.text)+Number(k37.text);
    m14.text = 242*Number(f14.text)
    o14.text = 46*Number(f22.text)
    j18.text=Number(j14.text)+Number(m14.text)+Number( o14.text)
    m18.text = -35*Number(f18.text)
    o18.text = -21*Number(f25.text)
    q18.text=Number(j14.text)+Number(m14.text)+Number( o14.text)+Number(q14.text)+Number(m18.text)+Number (o18.text);
    var o:Object = new Object();
    o.onChanged = function(t:TextField){
    // azioni di modifica dei campi dinamici
    }
    f14.addListener(o);
    f18.addListener(o);
    f22.addListener(o);
    f25.addListener(o);

    ora funziona tutto tranne Q18 che mi riporta sempre NaN ed il fatto dei campi di input che nonostante cambi valore non mi cambia i campi dinamici correlati automaticamente

  9. #19
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    ah, la formula con il logaritmo in flash diventa (2313.8*(Math.log(Number(f14.text))))+6215.8

  10. #20
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da spirtu
    ora funziona tutto tranne Q18 che mi riporta sempre NaN
    nella somma c'è Number(q14.text) ma nella lista delle operazioni precedenti non c'è da nessuna parte... penso che sia quello il problema del NaN

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 © 2026 vBulletin Solutions, Inc. All rights reserved.