Úvod

Parametr FlashVars HTML tagu <OBJECT> odesílá proměnné do nejvyšší úrovně souboru SWF, když se načítá ve webovém prohlížeči. Tag <OBJECT> se používá k přidávání souborů SWF na stránky HTML. Použít lze rovněž tag <EMBED>, ale ten je starší a překonaný.

Základní informace o používání tagu <OBJECT> naleznete v části Syntaxe tagu OBJECT.

Poznámka: Funkce FlashVars vyžaduje Flash Player 6 nebo novější.

Použití parametru FlashVars k předání hodnot do souboru SWF

Pomocí volitelného parametru s názvem „FlashVars“ můžete předávat proměnné do nejvyšší úrovně souboru SWF. Umístěte tento parametr do tagu <OBJECT> nebo do staršího tagu <EMBED>. Všechny tyto proměnné se následně předají do souboru SWF, než se přehraje první snímek souboru.

Předávat lze libovolný počet proměnných a s libovolnými názvy. Všechny prohlížeče podporují řetězce FlashVars až do délky 64 kB (65 535 bajtů).

Formát vlastnosti FlashVars je řetězec, který je sadou párů název=hodnota odděleným znakem „&“.

Zahrnout lze i speciální a netisknutelné znaky, a to pomocí znaku „%“ následovaného příslušnou dvoumístnou šestnáctkovou hodnotou. Jednu mezeru může představovat symbol „+“. Další informace o speciálních znacích kódování adres URL naleznete v části Kódování adres URL (Wikipedia).

Následující příklad kódu HTML předává dvě proměnné. První má název „myVariable“ a má hodnotu „Hello World“. Druhá má název „mySecondVariable“ a má hodnotu „Goodbye“.

Příklad tagu OBJECT

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" id="myFlashMovie" align="middle">
    <param name="movie" value="myFlashMovie.swf" />
    <param name=FlashVars value="myVariable=Hello%20World&mySecondVariable=Goodbye" />
    <!--[if !IE]>-->
    <object type="application/x-shockwave-flash" data="myFlashMovie.swf" width="550" height="400">
        <param name="movie" value="myFlashMovie.swf" />
        <param name=FlashVars value="myVariable=Hello%20World&mySecondVariable=Goodbye" />
    <!--<![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>

 

Příklad tagu EMBED

Tag <EMBED> lze použít také k přidání souboru SWF na webovou stránku, ale jedná se o starší a nyní již překonaný tag.

<embed src="myFlashMovie.swf" 
    quality="high" 
    bgcolor="#ffffff" 
    width="550" 
    height="400" 
    name="myFlashMovie"     FlashVars="myVariable=Hello%20World&mySecondVariable=Goodbye"
    align="middle" 
    allowScriptAccess="sameDomain" 
    allowFullScreen="false" 
    type="application/x-shockwave-flash" 
    pluginspage="http://www.adobe.com/go/getflash" 
/>

Prohlížeč šifruje řetězec FlashVars stejným způsobem, jakým šifruje zbytek stránky HTML. Internet Explorer v systému Windows poskytuje šifrování vyhovující standardu UTF-16. Ostatní prohlížeče poskytují šifrování vyhovující standardu UTF-8.

Přístup k proměnným v kódu ActionScript 3.0 v souboru SWF

Po předání proměnných do souboru SWF z HTML vyžaduje soubor SWF použití těchto proměnných.

Použijte objekt LoaderInfo kódu ActionScript 3.0 pro přístup k proměnným FlashVars.

Jednoduchý příklad

Níže uvedený příklad kódu se dotazuje objektu LoaderInfo na přístup k proměnné s názvem myVariable předané do souboru SWF v parametru FlashVars. Poté nastavuje text v textovém poli na ploše na hodnotu řetězce proměnné.

// by querying the LoaderInfo object, set the value of paramObj to the 
// to the value of the variable named myVariable passed from FlashVArs in the HTML
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters.myVariable;

// set the text of the text instance named text1. Use the toString() method
// to convert the value from an object to a string so it can be used in the text field
text1.text = paramObj.toString()

Můžete si stáhnout ukázkový soubor FLA, SWF a také soubor HTML znázorňující výše uvedený použitý kód.

Pokročilý příklad

Příklad kódu níže dělá toto:

  • Vytváří instanci TextField na ploše (s názvem tf).
  • Používá objekt LoaderInfo k získání proměnných z parametru FlashVars.
  • Používá smyčku for..in k iteraci všech předaných proměnných.
  • Zobrazuje hodnoty a názvy proměnných v textovém poli.
// AS3
var tf:TextField = new TextField();       // create a TextField names tf
tf.autoSize = TextFieldAutoSize.LEFT;
tf.border = true;
addChild(tf);                             // add the TextField to the DisplayList so that it appears on the Stage

tf.appendText("params:" + "\n");
try 
{
    var keyStr:String;
    var valueStr:String;
    var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;   //set the paramObj variable to the parameters property of the LoaderInfo object
    for (keyStr in paramObj) 
    {
        valueStr = String(paramObj[keyStr]);
        tf.appendText("\t" + keyStr + ":\t" + valueStr + "\n");  // add each variable name and value to the TextField named tf
    }
} 

catch (error:Error) 
{
    tf.appendText(error.toString());
}

Přístup k proměnným v kódu ActionScript 2.0 v souboru SWF

V kódu ActionScript 2.0 můžete přistupovat přímo k proměnným FlashVars, jako by byly deklarovány v samotném souboru SWF.

Tento příklad nastavuje vlastnost textu dynamické textové instance s názvem text1 na hodnotu proměnné s názvem myVariable. myVariable se deklaruje v parametru FlashVars.

// AS2
text1.text = myVariable;

Můžete si stáhnout ukázkový soubor FLA, SWF a také soubor HTML znázorňující výše uvedený použitý kód AS2.

Další techniky

Proměnné lze rovněž předávat do souborů SWF tím, že se přidají do adresy URL souborů SWF určených v tazích OBJECT a EMBED. V této technice se další informace připojené k adrese URL nazývají řetězec dotazu. Tato metoda má omezení, pokud potřebujete proměnné okamžitě ve chvíli, kdy se načte soubor SWF. Při použití této metody je nezbytné stáhnout a přehrát soubor SWF dříve, než je možné požadovat ze serveru velké množství dat.

Klíčová slova: předání; parametry; řetězec dotazu; objekt; vložení; tn_16417

Tato práce podléhá licenci Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Na příspěvky ze služeb Twitter™ a Facebook se nevztahují podmínky licence Creative Commons.

Právní upozornění   |   Zásady ochrany osobních údajů online