• User Attivo

    [Risolto] modificare il file swf a seconda della pagina in cui è caricato

    Ciao a tutti,
    ho la necessità di modificare il mio file swf a seconda della pagina in cui si trova. Mi spiego meglio, nel mio sito il menù è sempre lo stesso ma nell'home esegue un'animazione, io vorrei che questo accada solo nella home mentre nelle altre pagine no, in questo modo caricherei una sola volta il menù e renderei più leggera la navigazione, vorrei inoltre che a seconda della pagina in cui si trovi si visualizzi un pallino vicino al tasto corrispondente.
    A questo però ci penso io, vorrei solo sapere come recuperare l'url in cui si trova il file di volta in volta.
    Grazie.


  • Super User

    Ciao Adriano,

    quello non e proprio un problema con flash.
    Per evitare che l'header si ricarica a ogni pagina dovrebbe usare iFrames o javascript o anche php (possibile che su puo fare con altri linguagi).
    Non è una cosa che ho mai fatto ma ci saranno sicuramente soluzione in giro.:bho:


  • User Attivo

    recuperare l'url lo so già fare con php ma non so come trasmettere il dato al file swf appena la pagina viene caricata.


  • User Attivo

    credo che non posso usare gli iFrames perché io non voglio cambiare il file swf con uno senza animazione, voglio solo che questo parta direttamente da un fotogramma tot anziché dal primo quando viene caricato su una pagina diversa dalla home. Certo avrei potuto realizzare l'animazione a parte e poi caricare il menù successivamente ma dovevo pensarci prima, ora dovrei fare un bel lavoraccio per modificare il file swf, ed in ogni caso non potrei personalizzarlo a seconda della pagina caricata, a meno che ne carico uno nuovo volta per volta, cosa che vorrei evitare.
    Esiste qualche codice ActionScript o php o altro che mi aiuti a far questo?


  • Super User

    Il punto di usare il iFrame sarebbe che quella parte che contiene il tuo swf non viene ricaricata con il resto della pagina (e che l'animazione non riparte da l'inizio).:bho:


  • User Attivo

    a ok, quindi in parte dovrei risolvere, la iFrames deve quindi essere presente su tutte le pagine, scusami ma non sapevo vi fosse questa possibilità, unico problema è che in ogni caso non potrei personalizzare il file swf a seconda della pagina, comunque proverò subito ad usare la iFrames. Un'altra domanda, ma una iFrames può darmi problemi con i motori di ricerca o viene sempre inclusa con la pagina html? Mi spiego meglio, se la ricerca richiama un dato presente solo nella iFrames, non può aprirmi la iFrames senza il resto della pagina che la contiene vero?
    Comunque grazie mille.


  • Super User

    Credo che mi sono spiegata male.:D
    L'header Flash va messo nella pagina html, il resto del contenuto (quello che cambia) nel iFrames dove venira caricate le differente sezione.
    Questo articolo mi sembra abbastanza chiaro.
    http://www.cs.tut.fi/~jkorpela/html/iframe.html

    Riguardo la tua domanda sulle il risultato per motori di ricerca e altro del genere, non ne ho idea come funziona. Sarebbe da chiedere nella sezione seo (o una del genere).

    Un altra cosa (non so se t'interessa) puoi passare variabile dal html a flash cosi:
    <param name=movie value="movie.swf?variabile=valore">

    Comunque, il tuo problema m'interessa. Ci devro provare, mai fatto prima.:?


  • Super User

    Ciao Adriano,

    ho fatto una prova inserando nel html:

    
    <param name="movie" value="header.swf?selezionato=info" />
    e
    <embed src="header.swf?selezionato=info" quality="high"....
    
    

    Poi nel primo fotogramma del filmato:

    
    var selezionato:String;
    if (selezionato == "info") {
     gotoAndStop(35);
    }
    
    

    Il valore passa bene dal html al flash e il playhead si sposta diretamente al fotogramma 35 (come esempio) come voluto quando si carica la pagina.
    Mi sembra una soluzione giusta e facile da implementare e potrebbe riusare il valore di quella variabile per avere il pulsante del menu nel stato selezionato in base alla pagina scelta.:)


  • User Attivo

    perfetto, credo sia esattamente quello che cercavo, devo solo far una prova, fammi capire bene una cosa di questo codice, se ho capito bene devo solo mettere al posto di header il nome del mio file swf e al posto di info il nome della pagina, per esempio home, contatti o altro. Non ho capito bene cosa sia il termine ?selezionato, è una variabile che imposto direttamente dal codice html e dal codice ActionScript che richiama il file swf?
    Grazie ancora


  • Super User

    Giusto.:)

     
    "nomeFilmato.swf?nomeVariabile=valoreVariabile"
    
    

  • User Attivo

    ok, avevo capito il codice ma io per richiamare il file swf uso questo codice per richiamare un file swf, questo per evitare il blocco dei contenuti attivi.

    
    <script language="JavaScript" type="text/javascript">
    <!-- 
    var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
    if(hasRightVersion) {  // se &egrave; stata rilevata una versione accettabile
        if (AC_FL_RunContent == 0) {
            alert("Questa pagina richiede AC_RunActiveContent.js. In Flash, selezionare \"Applica Aggiornamento per contenuto attivo\" nel menu Comandi per copiare AC_RunActiveContent.js nella cartella di output HTML.");
        } else {
            // incorpora il filmato Flash
            AC_FL_RunContent(
                'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
                'width', '245',
                'height', '600',
                'src', 'Flash/Menu_SX',
                'quality', 'high',
                'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
                'align', 'middle',
                'play', 'true',
                'loop', 'true',
                'scale', 'showall',
                'wmode', 'window',
                'devicefont', 'false',
                'id', 'Flash/Menu_SX',
                'bgcolor', '#ffffff',
                'name', 'Flash/Menu_SX',
                'menu', 'false',
                'allowScriptAccess','sameDomain',
                'movie', 'Flash/Menu_SX',
                'salign', ''
                ); //end AC code
        }
      } else {  // la versione di Flash &egrave; troppo vecchia o non &egrave; possibile rilevare il plug-in
        var alternateContent = 'Il contenuto HTML alternativo deve essere posizionato qui.'
          + 'Questo contenuto richiede Macromedia Flash Player.'
           + '<a href=http://www.macromedia.com/go/getflash/>Ottieni Flash</a>';
        document.write(alternateContent);  // Inserisci contenuto non Flash
      }
    // -->
        </script>
    
    

    devo modificare la linea scr?
    se ho capito bene devo fare così,

    da
    'src', 'Flash/Menu_SX',

    a
    'src', 'Flash/Menu_SX?nomevariabile',

    è corretto?


  • Super User

    'Flash/Menu_SX?nomevariabile=valore'

    Sinceramente non ne sono sicura. Sara da provare.:bho:

    Uso il swfObject per quale c'è il parametro 'addVariable'.


  • User Attivo

    proverò, comunque ti ringrazio molto.