2011-01-12 2 views
5

Modifica: ho capito che il problema principale che sto affrontando è che voglio un campo di testo che già esiste in un Movie Clip o sul palco per prendere la stringa da un flashvar. Per qualche ragione non lo farà. Come faccio a modificare un campo di testo preesistente in modo che corrisponda al testo flashvar?Come accedere a flashvars in AS3 e aggiungerli a un campo di testo esistente?

Html:

<div id="flashContent"> 
      <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" height="29px" id="egnewsTicker" align="middle"> 
       <param name="movie" value="egnewsTicker.swf" /> 
       <param name="flashvars" value="newslisttest=this is my test" /> 
       <param name="quality" value="high" /> 
       <param name="bgcolor" value="#ffffff" /> 
       <param name="play" value="true" /> 
       <param name="loop" value="true" /> 
       <param name="wmode" value="transparent" /> 
       <param name="scale" value="showall" /> 
       <param name="menu" value="false" /> 
       <param name="devicefont" value="false" /> 
       <param name="salign" value="lt" /> 
       <param name="allowScriptAccess" value="sameDomain" /> 
       <!--[if !IE]>--> 
       <object type="application/x-shockwave-flash" data="egnewsTicker.swf" width="100%" height="29px"> 
        <param name="movie" value="egnewsTicker.swf" /> 
        <param name="quality" value="high" /> 
        <param name="bgcolor" value="#ffffff" /> 
        <param name="play" value="true" /> 
        <param name="loop" value="true" /> 
        <param name="wmode" value="transparent" /> 
        <param name="scale" value="showall" /> 
        <param name="menu" value="false" /> 
        <param name="devicefont" value="false" /> 
        <param name="salign" value="lt" /> 
        <param name="allowScriptAccess" value="sameDomain" /> 
        <param name="flashvars" value="newslisttest=this is my test" /> 
       <!--<![endif]--> 
        <a href="http://www.adobe.com/go/getflash"> 
         <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /> 
        </a> 
       <!--[if !IE]>--> 
       </object> 
       <!--<![endif]--> 
      </object> 
     </div> 

So che questo dovrebbe essere un compito semplice, e ho trovato diversi articoli web che forniscono esempi, ma io semplicemente non può farlo funzionare quando sto cercando di fare del mio proprio codice Tutto quello che voglio fare è passare una stringa flashvar ed essere in grado di accedervi per nome in flash usando AS3, ma non riesco a farlo.

Sto cercando:

var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters; 
newsItem.newsHeadline.text = String(paramObj[varName]); 

Ho anche provato:

newsItem.newsHeadline.text = this.loaderInfo.parameters.newslisttest; 

Niente provo opere, è sempre e solo rimane vuota. Qual è il trucco per accedere a Flashvars in flash as3? Non sto ricevendo e non riesco a trovare una buona spiegazione da nessuna parte ...

+0

e prima che qualcuno mi mandi qui: http://blog.six4rty.ch/tutorials/flash-flashvars-in-as3/, ci sono stato. Funziona se lo faccio in un file vuoto esattamente come ce l'ha, ma se provo a incorporarlo nel mio file flash, non funziona mai. sempre .... – Ghost9

risposta

11

Prova questo: stage.loaderInfo.parameters.yourparam o stage.loaderInfo.parameters["yourparam"]

potete inserire il vostro codice html, in modo che possiamo vedere come si passa le variabili Flash a lampeggiare.

+0

Sono giunto alla conclusione che il problema principale che sto affrontando è che voglio un campo di testo che già esiste in un Movie Clip o sul palco per prendere la stringa da un flashvar. Per qualche ragione non lo farà. Come faccio a modificare un campo di testo preesistente in modo che corrisponda al testo flashvar? – Ghost9

+0

Holy crap that stage.loaderInfo.parameters ["yourparam"] funziona – Ghost9

+1

il problema era ". Non ho provato" e ", come gli esempi mi hanno mostrato, ma usare" "è ciò che ha funzionato. Jeez parla di tirarmi fuori i capelli. Grazie Rob! – Ghost9

1

Se si verifica ancora questo problema, seguire le righe seguenti. Ho usato i flash vars, funzionano bene per me.

Il mio script HTML è stato:

<html> 
<body> 
<div id="flashContent"> 
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"FlashVars="uid=123&name=santhu" width="100%" height="100%" id="index" align="middle"> 
    <param name="movie" value="index.swf" /> 
    <param name=FlashVars value="uid=123&name=santhu"> 
    <!--[if !IE]>--> 
    <object type="application/x-shockwave-flash" data="index.swf" 
      FlashVars="uid=123&name=santhu" width="100%" height="100%"> 
    <param name="movie" value="index.swf" /> 
    <param name=FlashVars value="uid=123&name=santhu"> 
    <!--<![endif]--> 
    <!--[if !IE]>--> 
    </object> 
    <!--<![endif]--> 
</object> 
</div> 
</body> 
</html> 

e il mio codice come caricare vars è

this.root.loaderInfo.addEventListener(Event.COMPLETE, SWFLoadComplete); 
private function SWFLoadComplete(e:Event) 
{ 
    obj=this.root.loaderInfo.parameters; 
    trace(obj.uid , obj.name); // outputs: 123 santhu 
} 
4

Ho sprecato tutto il giorno per quello ...

AS3 :

var uid:String; 
// your code 
this.loaderInfo.addEventListener(Event.COMPLETE, loaderComplete); 
// your code 
function loaderComplete(e:Event=null):void 
{ 
    var fv = stage.loaderInfo.parameters; 
    uid = fv['uid'] || "'uid' not found"; 
} 

HTML:

<object type='application/x-shockwave-flash' data='/flash/yourSWF.swf' width='320' height='240'> 
<param name='wmode' value='transparent' /> 
<param name='FlashVars' value='uid=yourData' /> 
<param name='movie' value='/flash/yourSWF.swf' /> 
</object>