Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: [AS 3.0] flashvars

  1. #1

    [AS 3.0] flashvars

    ciao a tutti,
    sto perdendo la serata a cercare di capire come funziona il passaggio di variabili all'swf in as3 e dopo 2 ore che cerco su google ho ceduto a chiedere a voi...
    non sono affatto pratico di flash (anche se con as2 sti problemi mica li avevo U_U) comunque quello che ho è questo:
    HTML:
    codice:
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="550" height="400" id="FlashID" title="prova">
      <param name="movie" value="Untitled-1.swf" />
      <param name="quality" value="high" />
      <param name="wmode" value="opaque" />
      <param name="swfversion" value="6.0.65.0" />
      
      <param name="expressinstall" value="Scripts/expressInstall.swf" />
      <param name="PLAY" value="false" />
      
      
      <object type="application/x-shockwave-flash" data="Untitled-1.swf" width="550" height="400">
        
        <param name="quality" value="high" />
        <param name="wmode" value="opaque" />
        <param name=FlashVars value="variabile1=valore1&amp;variabile2=valore2">
        <param name="swfversion" value="6.0.65.0" />
        <param name="expressinstall" value="Scripts/expressInstall.swf" />
        <param name="PLAY" value="false" />
        
        <div>
          <h4>Content on this page requires a newer version of Adobe Flash Player.</h4>
          
    
    </p>
        </div>
        
      </object>
      
    </object>
    fla (codice scopiazzato da uno dei mille siti googlati stasera e che agli altri funzionano -.-):
    codice:
    var keyStr:String;
    var valueStr:String;
    var paramObj:Object = root.loaderInfo.parameters;
    for (keyStr in paramObj) {
    	valueStr = String(paramObj[keyStr]);
    	testo.appendText("\t" + keyStr + ":\t" + valueStr + "\n"); // testo è un textfield
    }
    peccato che non sono ancora riuscito a recuperare la variabile e non so come fare per fare funzionare il tutto... cavolo in as2 bastava fare _root.variabile1 ed eravamo a posto... si può incasinare tutto così? vabbè...

    qualcuno mi potrebbe aiutare per favore?

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Mi pare davvero vecchio vecchio quel codice html, da tempo si è passati all'inserimento degli swf nelle pagine html tramite script js, per aggirare alcuni problemi con i browser.
    Il metodo più utilizzato nel web è l'uso di SWFObject attraverso il quale è semplice anche aggiungere le flashvars da far recuperare allo swf.
    Partirei da questa FAQ e completerei leggendo la parte riguardante swfobject da questo articolo.

    PS. Il codice AS a colpo d'occhio è ok!

  3. #3
    cavolo non riesco a venirne a capo...
    ho scaricato la libreria js e usato questa guida per impostare la pagina html (l'actionscript è rimasto quello che era prima)

    ecco come è diventata la pagina html:
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    	<head>
    		<title>Untitled-1</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    		<script type="text/javascript" src="src/swfobject.js"></script>
    		<script type="text/javascript">
    			swfobject.embedSWF("Untitled-1.swf","flashContent","550", "400", "9.0.0", "expressInstall.swf", {"var1":"variabile1","var2":"ciao","var3":"belli"});
    
    		</script>
    	</head>
    	<body>
    		<div id="flashContent">
    			
    
    Cotenuto alternativo</p>
    		</div>
    	</body>
    </html>
    viene caricato il filmato swf ma le variabili non vengono lette dall'actionscript postato sopra... secondo te dove sto sbagliando?

  4. #4
    il nome delle variabili non vanno tra virgolette

  5. #5
    Originariamente inviato da Stan
    il nome delle variabili non vanno tra virgolette
    nel commento la riga sotto ho scritto che ho provato anche senza le virgolette

  6. #6
    ma come le leggi su flash? in AS3 sono in un oggetto particolare che non ricordo, non sono nella root.

  7. #7
    c'è scritto tutto sopra

    AS (codice nel primo frame):
    codice:
    var keyStr:String;
    var valueStr:String;
    var paramObj:Object = root.loaderInfo.parameters;
    for (keyStr in paramObj) {
    	valueStr = String(paramObj[keyStr]);
    	testo.appendText("\t" + keyStr + ":\t" + valueStr + "\n"); // testo è un textfield
    }

  8. #8
    hai provato a fare direttamente
    root.loaderInfo.parameters.NomeVariabile

    Non saprei che altro consigliarti?

  9. #9
    si ho provato quello e anche loaderInfo.parameters['variabile'] perchè avevo trovato anche questo su google....
    ma a te questi codici funzionano?
    il problema per me è in html... cavolo odio AS3....

  10. #10
    allora... più leggo articoli su google (tutti uguali peraltro) e meno ci capisco di questo problema... i codici html, javascript e actionscript mi sembrano impeccabili e li ho provati in ogni possibile variante... eppure quello che evidentemente a tutti funziona a me non funziona e non riesco a capire perché!

    facciamo un piccolo sommario!

    File .html:
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    	<head>
    		<title>Untitled-1</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    		<script type="text/javascript" src="src/swfobject.js"></script>
    		<script type="text/javascript">
    			swfobject.embedSWF("Untitled-1.swf","flashContent","550", "400", "9.0.0", "expressInstall.swf", {var1:"variabile1",var2:"ciao",var3:"belli"});
    		</script>
    	</head>
    	<body>
    		<div id="flashContent">
    			
    
    Cotenuto alternativo</p>
    		</div>
    	</body>
    </html>
    Pagina HTML "compilata" da browser:
    codice:
    <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
    		<title>Untitled-1</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    		<script type="text/javascript" src="src/swfobject.js"></script>
    		<script type="text/javascript">
    			swfobject.embedSWF("Untitled-1.swf","flashContent","550", "400", "9.0.0", "expressInstall.swf", {var1:"variabile1",var2:"ciao",var3:"belli"});
    		</script><style type="text/css" media="screen">#flashContent {visibility:hidden}</style>
    	</head>
    	<body>
    		<object type="application/x-shockwave-flash" data="Untitled-1.swf" width="550" height="400" id="flashContent" style="visibility: visible; "><param name="flashvars" value="var1=variabile1&var2=ciao&var3=belli"></object>
    	
    
    </body></html>
    Codice actionscript (posizionato alla prima riga di script del primo fotogramma dell'unico livello dell'unica scena del progetto .fla):
    codice:
    try{
    	var keyStr:String;
    	var valueStr:String;
    	var paramObj:Object = this.root.loaderInfo.parameters;
    	testo.text = "params:\n";
    	for (keyStr in paramObj){
    		valueStr = String(paramObj[keyStr]);
    		testo.appendText("\t" + keyStr + ":\t" + valueStr + "\n"); // testo è un textfield
    	}
    }catch(e:Error){
    	testo.text = e.toString();
    }
    Nota: il try/catch non lancia eccezioni

    Alla luce di quello che ho fatto mi viene da pensare che ci sia qualche errorino imbecille come una maiuscola dove non deve esserci o uno spazio etc.. però dove? il tag <object> e il suo contenuto vengono generati da uno script e il codice prodotto mi sembra ragionevole, il codice actionscript è stato spudoratamente scopiazzato da una trentina di siti/forum cercati con google e tutti dicono che il codice è corretto (e lo dite anche voi quindi non vedo perchè non fidarmi).... il filmato swf quando carica si comporta come se nessuna variabile fosse stata passata ma senza dare errori. L'unica falla potrebbe essere nella posizione del codice AS all'interno dell'fla ma non saprei dove altro posizionarlo.. all'interno di un listener? e a cosa lo attacco questo listener? e che evento gli faccio ascoltare?
    idee per favore?... sono disperato ho fatto tutto il progetto in un paio di ore e ora che mi manca solo sta boiata ci sto perdendo 2 giorni!!

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.