Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Problema con fscommand

  1. #1
    Utente di HTML.it L'avatar di Kneos
    Registrato dal
    Aug 2002
    Messaggi
    128

    Problema con fscommand

    Salve a tutto il forum, premetto che sono poco esperto di actionscript e quindi probabilmente il mio problema è legato a questo.

    Ho un file swf di 4 frame al quale viene passata una variabile dall'esterno in get cioe pippo.swf?scelta=pluto

    I ciascun frame sono presenti 3 bottoni che se premuti eseguono il seguente codice:

    on (release) {
    fscommand(command, "paperino");
    gotoAndStop(2);}
    (3) o (4) a seconda di quale bottone si preme, cioe primo bottone nel frame1 va a (2) secondo a (3) e terzo bottone a (4). Quando viene premuto un bottone viene esportato in un campo imput text html il valore corrispondente tramite fscommand e il clip salta al frame corretto.

    Nel frame1 a presente il seguente codice:

    if (_root.scelta != "") {
    fscommand(command, _root.scelta);
    gotoAndStop(_root.scelta);
    }
    stop();

    cioe letta la variabile scelta passata in get alla partenza il clip dovrebbe esportare il valore nel campo input text della pagina html e saltare al frame corretto ovviamente opportunamente etichettato con il nome della variabile in ingresso.

    IL problema è che si posiziona sul frame corretto ma non esporta la variabile nel campo input text esterno che risulta vuoto, mentre premendo i bottoni tutto funziona corettamente.

    Ringrazio in anticipo tutti coloro che mi daranno una risposta

    Saluti a tutti

    Andrea

  2. #2
    Non vorrei sbagliarmi, ma credo ci sia un errore, tu hai questo codice:
    if (_root.scelta != "") {
    fscommand(command, _root.scelta);
    gotoAndStop(_root.scelta);
    }
    stop();

    secondo me devi scrivere così:

    if (_root.scelta != "") {
    fscommand(command, scelta);
    gotoAndStop(scelta); //non mi sembra abbia senso il _root
    }
    stop();

    Prova, non sono molto sicuro...
    Lo scoppato
    andrea@progettipercomunicare.it
    www.progettipercomunicare.it

  3. #3
    Utente di HTML.it L'avatar di Kneos
    Registrato dal
    Aug 2002
    Messaggi
    128
    Ho provato a mettere solo scelta al posto di _root.scelta ma come immaginavo non cambia nulla, stesso problema quindi deduco che scrivere scelta oppure _root.scelta dato che si riverisce ad una variabile del clip principale non cambi nulla.....

    Nel frattempo ho anche provato a metter tutto il codice if (_root.scelta!=......) {....} dentro un istruzione onEnterFrame = function() { if(........) } e sembra funzionare cioe mi esporta il valore correttamente nel html esterno ma poi non funzionano piu i bottoni nel senso che qualunque bottone io prema il clip torna al valore e al frame impostato da dalla variabile esterna, da cio deduco che onEnterFrame sia l'istruzione sbagliata perche effettua il codice in esso contenuto ad ogni frame del clip e non solo sul primo come vorrei che facesse.

    Grazie cmq per l'aiuto

  4. #4
    Allora potrebbe essere un problema di visibilità della variabile.
    Prova a dichiarare una variabile globale:

    _global.tuaVar = scelta;

    questo lo fai sul primo frame del filmato, in pratica passi a una variabile globale il valore di "scelta" che proviene dall'esterno.
    A questo punto devi lavorare con la variabile _global.tuaVar e non con _root.scelta, questo dovrebbe permetterti di accedere alla variabile da ogni frame del filmato.
    Lo scoppato
    andrea@progettipercomunicare.it
    www.progettipercomunicare.it

  5. #5
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    Originariamente inviato da scoppato
    Non vorrei sbagliarmi, ma credo ci sia un errore, tu hai questo codice:
    ...
    secondo me devi scrivere così:

    if (_root.scelta != "") {
    fscommand(command, scelta);
    gotoAndStop(scelta); //non mi sembra abbia senso il _root
    }
    stop();

    Prova, non sono molto sicuro...
    il _root. può avere un senso. bisogna solo vedere come è stata dichiarata la variabile... diciamo che si rifà ai percorsi per trovare i mc sulla timeline.

    se tu dichiari

    var ciccio = 5;

    nella timeline principale

    potrai accedervi da qualsiasi parte, e da qualsiasi mc con _root.ciccio.
    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  6. #6
    Utente di HTML.it L'avatar di Kneos
    Registrato dal
    Aug 2002
    Messaggi
    128
    Non credo si tratti di un problema di visibilita della variabile perche in primo luogo se non vedesse la variabile il test if fallirebbe invece lo esegue correttamente, poi se non vedesse la variabile non salterebbe al frame corretto pur non eseguendo il corretto fscommand. Inoltre il codice che da problemi viene eseguito solo nel primo frame ed e solo li che mi interessa che venga vista la mia variabile esterna in quanto una volta eseguito quel codice presente solo nel frame1, E SOLO LI, deve esportare il valore della variabile che e una stringa,saltare al frame che ha come etichetta il nome variabile e stopparsi li (vedi gotoAndStop (frame con etichetta _root.scelta).

    Ho provato anche a sostituire _root.scelta con un valore di etichetta "paperino" come semplice stringa, continua a saltare correttamente al frame etichettato come "paperino" ma non esporta "paperino" nel html esterno.


  7. #7
    Utente di HTML.it L'avatar di Kneos
    Registrato dal
    Aug 2002
    Messaggi
    128
    Originariamente inviato da byaur
    bisogna solo vedere come è stata dichiarata la variabile... diciamo che si rifà ai percorsi per trovare i mc sulla timeline.
    Grazie per la tua risposta, come postato da me all'inizio la variabile scelta viene passata all'swf in fase di chiamata cioe pippo.swf?scelta=......

    diciamo che nel primo giro cioe la prima volta che viene chaimato l'swf scelta è vuota, questo giustifica il test if nel primo frame (test fallisce al primo giro e il clip si ferma al frame1 senza effettuare selezioni) ma nel caso di chiamate successive scelta assume un valore che corrisponde ad una delle etichette dei frame 2 3 o 4 all'interno dell' swf.

  8. #8
    Utente di HTML.it L'avatar di Kneos
    Registrato dal
    Aug 2002
    Messaggi
    128
    Vedo che la discussione si è arenata

    Forse vi serve qualche informazione in piu per riuscire a darmi una soluzione, quindi se vi servono ulteriori dettagli sono a disposizione.....

    ....il discorso di fondo è che lo scopo del gioco è che una variabile deve entrare nell swf e lo stesso valore di quella variabile deve uscire tramite fscommand, detta in poche parole il problema è tutto li, la variabile entra ma non esce....

    ....dato che pensavo di aver risolto con onEnterFrame ma in realta ho scoperto che cio che e contenuto nella funzione chiamata da onEnterFrame viene richiamata ad ogni frame esiste un'istruzione simile ma che esegua quel contenuto solo nel primo frame?

    Plz Help!!!!!!

  9. #9
    Utente di HTML.it L'avatar di Kneos
    Registrato dal
    Aug 2002
    Messaggi
    128
    Risolto!!!

    Usando onEnterFrame ma mettendo su ogni bottone prima del salto al frame corretto:

    delete this.onEnterFrame;

    In questo modo annulla il codice di onEnterFrame e si ferma sul frame corretto....

    Grazie cmq dell'aiuto

    Ho però un altro piccolo problema:

    la variabile _root.scelta che entra nell'swf e una stringa che puo contenere spazi, cioe ad esempio puo contenere "Ciao a tutti". Nei casi in cui contenga spazi il tutto non funziona in quanto cerca di saltare ad un frame con etichetta soltanto "Ciao" e non a quello corretto che sia chiama "Ciao a tutti" e inoltre passa in fscommand il valore "Ciao" e basta.

    Esiste il modo per far ovviare a questo inconveniente o sarò costretto a elimiare gli spazi nella stringa?

    Come sempre grazie in anticipo

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.