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>