Salve,
Sto letteralmente impazzendo con una cosa che secondo me ha dell'incredibile, per le mie (limitate) conoscenze di Flash:
Ho quest'ActionScript
Come si vede, viene caricato un certo file contenente le variabili da mostrare.codice:if (!file) { file = "progress.txt"; } if (!interval) { interval = 500; } percentage = "0%"; progress = "Sending E-mail"; tries = 0; updater = setInterval(update, interval); function update() { lvData = new LoadVars(); if (file == "progress.txt") { lvData.load(file); } else { lvData.load(file+"?"+Math.random()); } lvData.onLoad = function(success) { if (success) { progress = "Sending E-mail " + lvData.current + " of " + lvData.total; balk._xscale = (lvData.current / lvData.total) * 100; balk._y = 62; balk2._xscale = _root.balk._xscale; balk2._y = _root.balk._y; if (lvData.current > 0 && lvData.total > 0) { _root.percentage = Math.round((lvData.current / lvData.total) * 100) + "%"; } if (lvData.current == lvData.total) { clearInterval(updater); progress = "Ready!"; } tries = 0; } else { if (tries > 6) { progress = "Can't load progress information"; } tries++; } } }
Per farla un po'più complicata del normale, il nome del file viene passato tramite un JavaScript:
Il nome del file è "456" (al momento è un nome che ho messo io, poi corrisponderà alla Sessione del server)codice:function getFile() { var newVar=""; var str = document.location.href; var theleft = str.indexOf("?"); if (theleft != -1) { newVar = str.substring(theleft+1) } return(newVar); } function generateFlash() { var tag = '' + '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="300" height="100">'+ ' <param name="movie" value="blue_mailprogress.swf" />'+ ' <param name="wmode" value="transparent" />'+ ' <param name="menu" value="false" />'+ ' <param name="scale" value="exactfit" />'+ ' <param name="salign" value="L" />'+ ' <param name="quality" value="high" />'+ ' <param name="bgcolor" value="#000000" />'+ ' <param name="FlashVars" value="file=public/456&interval=1000" />'+ ' <embed src="blue_mailprogresss.swf" FlashVars="file=' + getFile() + '&interval=1000" wmode="transparent" menu="false" quality="high" scale="exactfit" salign="L" bgcolor="#000000" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="300" height="100" />'+ '</object>'; document.write(tag); }
Ora, perchè se io metto:
funziona perfettamentre, mentre se mettocodice:value="file=456&interval=1000"
non funziona neanche a morire?codice:value="file=../../public/456&interval=1000"
Nel primo caso metto il file "456" nella stessa cartella del Flash, nel secondo caso lo metto nella cartella public che si trova due livelli sopra (insomma, i percorsi sono corretti, controllati e ricontrollati decine di volte)
In più, vi segnalo una anomalia inquietante: nel file Flash ho messo un campo di testo dinamico che mi restituisce, a mo' di debug, il valore della variabile "file"...
ebbene, riferendomi a prima, nel primo caso mi restituisce giustamente "456", nel secondo mi restituisce "progress.txt", cioè viene "attivata" la porzione di codiceche equivale a dire che... non gli viene passato nessun parametro!codice:if (!file) { file = "progress.txt"; }
Boh! E' un problema di slash nel percorso? Non ci credo...
è il nome della variabile "file" che gli dà fastidio? C'è qualcosa che mi sfugge?
Grazie in anticipo per le risposte e la pazienza...
PS: se volete posso fornirvi i sorgenti per fare dei test...


Rispondi quotando