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

    [JS/FLASH] Cambiare flashvars a runtime

    hola,

    sto realizzando un software che, tra le varie cose, deve "aggiornare" dei contatori in un oggetto flash.

    L'swf mi è stato fornito dal committente e funziona perfettamente, il suo attuale software lo usa senza alcun problema, anche se non so nel dettaglio come (ma ci sono pochi modi ^^)

    Sto tentando di impostare alcune variabili inizialmente passate con flashvars ma non riesco in alcun modo!

    Di seguito i sistemi che ho provato:
    - getElementById sull'object e setVariabile
    - getElementById sull'object interno e setVariabile
    - getElementById sull'embed interno e setVariable
    - uso di swfliveconnect + precedenti
    - getElementById su tag param name flashvars e setAttribute per cambiare il value
    - getElementByName e come il precedente
    - riscrittura di tutto il blocco dell'html (che ovviamente funziona ma si nota lo sfarfallio e l'animazione salta)

    L'html che sto usando l'ho variato una marea di volte ma diciamo che ho testato un OBJECT singolo, un OBJECT dentro un OBJECT ed infine un EMBED dentro un OBJECT.

    Non riesco in alcun modo a settare le variabili.

    Per completare la situazione, il codice non mi interessa funzioni su internet explorer, safari e/o opera ma solo su Chrominium (google chrome) e Firefox, il primo perché il mio applicativo embedda internamente chrominium e lo usa la UI mentre il secondo mi serve per testare la UI quando ho problemi.

    Qui il codice javascript attualmente in uso, ovvero l'ultima variazione: non è mio, l'ho trovato su un sito web dove dicevano funzionasse e, nella disperazione, l'ho buttato dentro ma assolutamente niente da fare :\
    codice:
                function setFlashVars(variable)
                {
                    elements = document.getElementsByName("flashvars");
                    if (elements[0] != null && elements[0].getAttribute("value") != null)
                    {
                        elements[0].setAttribute("value", variable);
                    }
                }
                
                var number = 0;
                function update()
                {
                    number++;
                    setFlashVars("counter=1&open=1&number=" + number);
                }
    Solo per riferimento posto 2 righe di codice actionscript che sta dentro la main movie
    codice:
    if (counter == 1)
        {
            if (open == 0)
    .
            if (_xxx != number)
    .
            _xyz.zyx.text = number;
    questo è il codice html
    codice:
                <object
                    type="application/x-shockwave-flash"
                    data="aaa.swf">
                    <param name="swfliveconnect" value="true" />
                    <param name="movie" value="aaa.swf" />
                    <param name="flashvars" value="counter=1&number=0&open=1" />
                </object>

  2. #2
    il primo che ho trovato
    http://www.actionscript.org/forums/s....php3?t=165544




    si che non ti serve cross browser ma darei anche un occhio
    http://code.google.com/p/swfobject/


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  3. #3
    avevo già provato quella soluzione: quel codice lì non funziona, anche impostando il nuovo attributo nun va

    comunque ho scoperto il problema

    il codice con setVariable che avevo scritto funzionava perfettamente ma a causa del livello di protezione del flash non potevo richiamarlo tramite javascript e mi dava errore

    sistemato ... ora devo solo capire perché non mi fa vedere quello che imposto (se metto un trace lo vedo su flash il nuovo valore ma l'etichetta che viene impostata con .text rimane vuota se passo un numero ... se passo una lettera funziona perfetto :lol: ... comunque non è più un problema javascript direi ^^)

    danke comunque!

  4. #4
    sistemato ... ora devo solo capire perché non mi fa vedere quello che imposto (se metto un trace lo vedo su flash il nuovo valore ma l'etichetta che viene impostata con .text rimane vuota se passo un numero ... se passo una lettera funziona perfetto :lol: ... comunque non è più un problema javascript direi ^^)

    non è che hanno dimenticato di importare i numeri ?

    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  5. #5
    ehm si ... ma non è colpa loro perché mi sono fatto dare i sorgenti dell'fla e me la sono ricompilata mettendo una marea di trace ... ma non avevo idea ci fossero da importare i numeri del carattere per farli vedere

    quello loro invece, una volta sistemato il problema che avevo prima, funziona perfetto (si fa per dire, il codice è orrido, ma c'è di peggio ^^)

    ma, in pratica, alla fine ho aperto il thread qui ... ma di javascript problemi non c'è ne stavano

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