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

    Applicazione codice JS in Flash

    Vorrei applicare il seguente codice Javascript ad un form di flash... Qualcuno mi può dire come fare?

    Ecco il codice:

    function IndiceCalore(form) {

    if (isNaN(form.temperatura.value) || isNaN(form.umrel.value)) {
    window.alert("Bisogna inserire numeri e non lettere."); }
    else if (form.temperatura.value == "" || form.umrel.value == "") {
    window.alert("Bisogna inserire un numero (es. 3.5) per la Temperatura e per l'Umidità"); }


    // legge le variabili dal modulo
    var tC = parseFloat(form.temperatura.value);
    var u = parseFloat(form.umrel.value);


    // controlla l'applicabilità della formula
    if (tC<25 || u<30) {
    window.alert("Attenzione! Per i valori inseriti il contributo dell'umidità potrebbe non essere significativo. I calcoli vengono comunque eseguiti.")};

    // Heat Index - Apparent Temperature

    tF = tC*(9/5) + 32 ;
    t2=tF*tF;
    u2=u*u;
    HI= -42.379 + 2.04901523*tF + 10.14333127*u - 0.22475541*tF*u - 6.83783e-3*t2 - 5.481717e-2*u2 + 1.22874e-3*t2*u + 8.5282e-4*tF*u2 - 1.99e-6*t2*u2 ;
    HI = 5/9*(HI - 32);
    HI = Math.round(HI*10)/10;

    // Summer Simmer Index

    SSI = 1.98*(tF - (0.55 - 0.0055*u)*(tF-58)) - 56.83;
    SSI = 5/9*(SSI - 32);
    SSI = Math.round(SSI*10)/10;

    // Humidex

    tK=tC + 273;
    eTs=Math.pow(10,((-2937.4 /tK)-4.9283* Math.log(tK)/Math.LN10 +23.5471));
    eTd=eTs * u/100;
    HX=tC + ((eTd-10)*5/9);
    HX = Math.round(HX*10)/10;

    // restituisce il valore per la visualizzazione nel modulo

    form.indiceHI.value = parseFloat(HI);
    form.indiceSSI.value = parseFloat(SSI);
    form.indiceHX.value = parseFloat(HX);

    }

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    hai già ricreato il form in flash? se sì... gli hai dato gli stessi nomi di istanza degli ID che hai nel form html?

  3. #3
    Sì, gli ho provato ad attribuire il medesimo nome delle variabili ai campi di testo, ma ho problemi sul codice.
    Cmq le variabili (per evitare qualsiasi problema) sono le seguenti:
    temperatura (campo di input);
    umrel (campo di input);
    indiceHI (campo di risposta).
    Più un pulsante creato statico e quindi convertito in pulsante al quale andrà attribuito il codice.
    Giusto fin quì credo!!!
    Grazie x la tua attenzione...

    PS: Io il codice l'ho preso dall'altro sito in html appunto, ma lo vorrei applicare a quello in flash! Scusa se non te l'ho detto.

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da Franto86

    PS: Io il codice l'ho preso dall'altro sito in html appunto, ma lo vorrei applicare a quello in flash! Scusa se non te l'ho detto.
    non era difficile da capire

    comunque preferisco non attribuire i nomi nel campo var, ai vari input-text, meglio utilizzare il nome di istanza, si gestisce in maniera più semplice (imho)

    diciamo che l'hai fatto ed il tuo form si trova nella _root (la timeline principale del filmato), il codice si dovrebbe trasformare in questo

    codice:
    function IndiceCalore() {
    	if (isNaN(Number(temperatura.text)) || isNaN(Number(umrel.text))) {
    		trace("Bisogna inserire numeri e non lettere."); 
    	} else if (temperatura.text == "" || umrel.text == "") {
    		trace("Bisogna inserire un numero (es. 3.5) per la Temperatura e per l'Umidità"); 
    	}
    	// legge le variabili dal modulo
    	var tC = parseFloat(form.temperatura.value);
    	var u = parseFloat(form.umrel.value);
    	// controlla l'applicabilità della formula
    	if (tC<25 || u<30) {
    		trace("Attenzione! Per i valori inseriti il contributo dell'umidità potrebbe non essere significativo. I calcoli vengono comunque eseguiti.")
    	};
    	// Heat Index - Apparent Temperature
    	tF = tC*(9/5) + 32 ;
    	t2=tF*tF;
    	u2=u*u;
    	HI= -42.379 + 2.04901523*tF + 10.14333127*u - 0.22475541*tF*u - 6.83783e-3*t2 - 5.481717e-2*u2 + 1.22874e-3*t2*u + 8.5282e-4*tF*u2 - 1.99e-6*t2*u2 ;
    	HI = 5/9*(HI - 32);
    	HI = Math.round(HI*10)/10;
    	// Summer Simmer Index
    	SSI = 1.98*(tF - (0.55 - 0.0055*u)*(tF-58)) - 56.83;
    	SSI = 5/9*(SSI - 32);
    	SSI = Math.round(SSI*10)/10;
    	// Humidex
    	tK=tC + 273;
    	eTs=Math.pow(10,((-2937.4 /tK)-4.9283* Math.log(tK)/Math.LN10 +23.5471));
    	eTd=eTs * u/100;
    	HX=tC + ((eTd-10)*5/9);
    	HX = Math.round(HX*10)/10;
    	indiceHI.text = parseFloat(HI);
    	indiceSSI.text = parseFloat(SSI);
    	indiceHX.text = parseFloat(HX);
    }

  5. #5
    Ho fatto come hai detto, ma mi restituisce NaN nel campo indiceHI...
    Praticam ho tolto il nome alle var dei campi e gli ho attribuito i rispettivi nomi istanza. Ho inserito il tuo codice nella root. Al release del pulsante gli ho fatto richiamare la funzione. Il test delle lettere funziona (quindi gira correttamente l verifica e l'eventuale risposta di errore), ma non restituisce in nessun caso valori, ma solo NaN!
    Perdonami per il disturbo!!!
    Ti ringrazio per la cortesia di ascoltarmi

    PS: Tutti i campi di testo sono di tipo input, giusto?

  6. #6
    Ci sono riuscito!!!
    GRAZIE!!!
    Ecco il codice funzionante:
    function IndiceCalore() {
    if (isNaN(Number(temperatura.text)) || isNaN(Number(umrel.text))) {
    trace("Bisogna inserire numeri e non lettere.");
    } else if (temperatura.text == "" || umrel.text == "") {
    trace("Bisogna inserire un numero (es. 3.5) per la Temperatura e per l'Umidità");
    }
    // legge le variabili dal modulo
    var tC = parseFloat(temperatura.text);
    var u = parseFloat(umrel.text);
    // controlla l'applicabilità della formula
    if (tC<25 || u<30) {
    trace("Attenzione! Per i valori inseriti il contributo dell'umidità potrebbe non essere significativo. I calcoli vengono comunque eseguiti.")
    };
    // Heat Index - Apparent Temperature
    tF = tC*(9/5) + 32 ;
    t2=tF*tF;
    u2=u*u;
    HI= -42.379 + 2.04901523*tF + 10.14333127*u - 0.22475541*tF*u - 6.83783e-3*t2 - 5.481717e-2*u2 + 1.22874e-3*t2*u + 8.5282e-4*tF*u2 - 1.99e-6*t2*u2 ;
    HI = 5/9*(HI - 32);
    HI = Math.round(HI*10)/10;
    // Summer Simmer Index
    SSI = 1.98*(tF - (0.55 - 0.0055*u)*(tF-58)) - 56.83;
    SSI = 5/9*(SSI - 32);
    SSI = Math.round(SSI*10)/10;
    // Humidex
    tK=tC + 273;
    eTs=Math.pow(10,((-2937.4 /tK)-4.9283* Math.log(tK)/Math.LN10 +23.5471));
    eTd=eTs * u/100;
    HX=tC + ((eTd-10)*5/9);
    HX = Math.round(HX*10)/10;
    indiceHI.text = parseFloat(HI);
    indiceSSI.text = parseFloat(SSI);
    indiceHX.text = parseFloat(HX);
    }

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    vero, non l'avevo ricontrollato tutto... bisognava sostituire i due value con text altrimenti era ovvio che non funzionasse

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.