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

    Problema con testo dinamico e operazioni (+-*/)

    Salve a tutti, mi scuso in anticipo per la superficialità del problema, ma sono anni che non smanetto su flash e credo di aver riallocato la mia memoria con altri dati piu recenti..
    Ho fatto una ricerca veloce nel forum, ma non sono riuscito a trovare niente di significativo.
    Ho cercato anche nelle guide qui su html.it, trovando questa

    http://flash.html.it/guide/lezione/2...ili-settaggio/
    e devo dire che sembrerebbe proprio quello che serve a me. Vi spiego la situazione:

    in sostanza devo fare un pannello per calcolare dei valori a fronte di altri dati inseriti in campi di testo input ma mi sono reso conto che non funge. allora ho provato a semplificare tutto ricreando un nuovo progetto con una semplice addizione.
    risultato, NaN. (not a number)
    Seguendo la guida e modificando un po il codice perchè il debug mi dava errori vari di sintassi,
    ho creato due campi di testo classico input definendo il nome variabile in num1 e num2
    poi ho fatto un nuovo testo dinamico definendo la variabile totale.
    in un fotogramma su un altro livello ho inserito nel pannallo actions la seguente stringa
    -----------
    var num1:Number;
    var num2:Number;
    -----------

    ho creato poi sullo stesso livello dei campi di testo, un pulsante, istanza pulsante1

    nel key frame quindi ho messo la seguente riga:
    -----------
    this.pulsante1.onRelease= function (){
    _root.totale = _root.num1 + _root.num2;
    }
    -----------

    ctrl invio;

    inserisco nel campo num1 il valore 1 e nel campo num2 ancora 1
    cliccando sul pulsante mi aspetto che nel terzo campo totale mi compaia due, invece mi compare 11
    come se non riconoscesse che son numeri e quindi li deve sommare.


    ps, sto usando flash cs5 ma ho impostato action script 1 e nel dubbio anche actionscript2.

    please help

    NB: provando con l'operatore * invece il risultato è corretto.
    Nei campi di input ho inserito dei valori, ho provato anche rimuovendoli ma niente.

    Vi ringrazio per la consulenza.
    Cortesi Saluti.

  2. #2
    Devi convertire i dati che leggi dalla casella in numeri, non mi ricordo se c'è la funziona Number(stringa), oppure semplicemente moltiplica per uno.


    dato1*1+dato2*1

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    codice:
    btn.onPress = function()
    {totale=Number(num1)+Number(num2)}
    se non si specifica che num1 e num2 sono numeriche flash le trasforma in stringa.

  4. #4
    ringrazio per gli interventi, quando vado a casa provo con il primo suggerimento, mentre per il secondo, come ho scritto, facendo riferimento alla guida, ho inserito anche il link, non funziona, mi da NaN. nemmeno la moltiplicazione per esempio. Mentre togliendo Number funziona.
    Come indicato in un key frame ho inserito
    var num1:Number;
    var num2:Number;
    non bastano queste per identificare come numeri ?

    Grazie saluti.

  5. #5
    stan, grazie con la moltiplicazione funziona!

  6. #6
    replicando la cosa sul file piu complesso però non funge. boh non capisco.. qualche idea?
    allego .fla



    .fla


    avevo fatto una cosa simile in passato ma con solo due variabili...

    e ho messo il pulsante perchè non so farlo cambiare dinamicamente in base ai dati inseriti.
    se si riesce a fare senza pulsante accetto consigli

  7. #7
    Ciao Logangr,

    se esporti per Flash Player 7 funzionerà, nelle versioni successive la gestione delle caselle di testo è differente e dove tu vedi scritto soltanto "30" in realtà c'è molta più roba:

    <p align="right"><font face="Verdana" size="10" color="#000000" letterSpacing="0.000000" kerning="1">30</font></p>

    Ti consiglio di abbandonare subito le vecchie versioni di ActionScript e di passare ad AS3, molte delle cose che sei abituato a fare non sono più supportate dalle nuove versioni del Player.

  8. #8
    Gentilissimo IlProfessore, pubblicando in flash7 effettivamente funziona! piccolo problema il primo cambo mi da ancora NaN, ho verificato che nei vari campi di testo le variabili siano corrette, mentre per la formula non mi pare ci siano errori. Ti chiedo un'ultima consulenza aproffittando delle tue skill
    inoltre nel secondo terzo e quarto campo, nello specifico
    inneschiResoult , palleResoult, bossoliResoult i valori dovrebbero essere decimanli, per esempio a fronte di
    inneschiValue = 23 InneschiResoult =0.023, poichè il valore è diviso per 1000. se io copio il valore risultante e lo incollo su txt vedo che il valore è 0.023 mentre nel campo del swf si vede 0023. c'è qualcos'altro che mi sfugge ?

    Per quanto riguarda il vostro consiglio di passare ad actionscript3 mi piacerebbe, e mi metterò a studiarlo, purtroppo oramai non ho piu vent'anni e non vado a scuola da un poco, pertanto il tempo è davvero esiguo avendo una famiglia. Ma davvero è in progetto, guardando in giro ha molte piu potenzialità e sembrerebbe avvicinarsi un po di piu ai linguaggi di programmazione classici. Avresti qualche bel sito da rastrellare per cominciare ? a parte ovviamente questo che ho gia spulciato avidamente

    ringrazio per la consulenza, un cortese saluto.

  9. #9
    ad integrazione, verificando il valore PolvereResoult è un valore molto piccolo, nello specifico con idati inseriti, e che di norma saranno questi con qualche piccola variazione,
    io so la dose per munizione da DoseValue, in questo caso 3.8 grani.
    il prezzo però è riverito a 1000 grammi. quindi devo trasformare da grani a grammi, facile, moltiplico il valore di DoseValue*0.064, in quesot caso ottenendo il valore 0.2432.
    Ora che so quanti grammi servono per un colpo, devo vedere quanti colpi posso fare con 1000 g.
    quindi mi basta dividere 1000 per (DoseValue*0.064) quindi
    1000/0.064*Dosevalue che posso semplificare in 15625*DoseValue. a questo punto mi basta dividere il prezzo per 1000 grammi per il risultato per ottenere il costo in euro di polvere.

    riallego il fla modificato perchè avevo commesso un errore con un valore costante.

    .Fla

    Actionscript: 1
    Flashplayer.: 7
    codice:
    var PolvereValue:Number;
    var InneschiValue:Number;
    var PalleValue:Number;
    var BossoliValue:Number;
    var DoseValue:Number;
    var ColpiSettimanaValue:Number;
    
    
    this.pulsante1.onRelease = function(){
            _root.PolvereResoult        = (_root.PolvereValue)/(15625*_root.DoseValue);
    	_root.InneschiResoult       = _root.InneschiValue/1000;
    	_root.PalleResoult          = _root.PalleValue/1000;
    	_root.BossoliResoult        = _root.BossoliValue/1000;
    	_root.CostoMunizioneResoult = _root.PolvereResoult + _root.InneschiResoult + _root.PalleResoult + _root.BossoliResoult;
    	
    	}
    
    this.pulsante2.onRelease= function (){
      _root.ColpiSettimanaResoult = _root.CostoMunizioneResoult*1000;
    	
    }

  10. #10
    spezzando l'equazione
    codice:
    _root.PolvereResoult        = (_root.PolvereValue)/(15625*_root.DoseValue);
    in

    codice:
    _root.PolvereResoult        = _root.PolvereValue*1;
    codice:
    _root.PolvereResoult        = _root.DoseValue*1;
    mi sono reso conto subito che nella prima ottengo il valore corretto, in questo caso 30 mentre nella seconda ottengo NaN. quindi il problema dovrebbe essere nela variabile DoseValue.
    di default prende i numeri solo interi ? devo specificarlo ? perchè salta subito all'occhio che l'unica differenza è il numero con la virgola, mettendo un numero intero non ottengo Nan ma il numero esatto.
    penso che il problema sia questo ma non so come risolverlo.
    Un cordiale saluto

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.