Wprowadzenie

Po wczytaniu do przeglądarki parametr FlashVars znacznika HTML <OBJECT> wysyła zmienne do pliku SWF najwyższego poziomu. Znacznik <OBJECT> służy do dodawania plików SWF do stron HTML. Można również użyć znacznika <EMBED>, jednak jest on starszy i obecnie przestarzały.

Informacje na temat podstaw korzystania ze znacznika <OBJECT> zawiera temat Składnia znacznika OBJECT.

Uwaga! Funkcja FlashVars wymaga oprogramowania Flash Player w wersji 6 lub nowszej.

Wprowadzanie wartości do pliku SWF za pomocą parametru FlashVars

Za pomocą opcjonalnego parametru o nazwie „FlashVars” można wprowadzać zmienne na poziomie głównym pliku SWF. Parametr ten należy umieścić w znaczniku <OBJECT> lub starszym znaczniku <EMBED>.Wówczas wszystkie te zmienne zostaną przekazane do pliku SWF przed odtworzeniem pierwszej ramki pliku.

Można wprowadzić dowolną liczbę zmiennych o dowolnej nazwie.Wszystkie przeglądarki obsługują łańcuchy FlashVars o długości do 64 KB (65535 bajtów).

Właściwość FlashVars ma format łańcucha składającego się z par nazwa=wartość oddzielonych od siebie znakiem „&”.

Znaki specjalne lub niedrukowalne można wprowadzić, używając odpowiedniej dwucyfrowej wartości szesnastkowej poprzedzonej znakiem „%”. Pojedynczą spację można uzyskać, wprowadzając znak „+”.Więcej informacji na temat kodowania URL znaków specjalnych, patrz Kodowanie procentowe (Wikipedia).

Poniższy przykładowy kod HTML wprowadza dwie zmienne. Pierwsza nosi nazwę „myVariable” i ma wartość „Hello World”. Druga nosi nazwę „mySecondVariable” i ma wartość „Goodbye”.

Przykładowy znacznik 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>

 

Przykładowy znacznik Embed

Za pomocą znacznika <EMBED> można również dodać plik SWF do strony w sieci, jednak jest to starszy znacznik i obecnie przestarzały.

<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" 
/>

Przeglądarka koduje łańcuch FlashVars w taki sam sposób jak resztę strony HTML. Przeglądarka Internet Explorer w systemie Windows zapewnia kodowanie zgodne ze standardem UTF-16. Inne przeglądarki obsługują kodowanie zgodne ze standardem UTF-8.

Dostęp do zmiennych zawartych w kodzie ActionScript 3.0 w pliku SWF

Po wprowadzeniu zmiennych do pliku SWF z poziomu kodu HTML plik SWF będzie wymagał użycia tych zmiennych.

Aby uzyskać dostęp do zmiennych FlashVars, użyj obiektu LoaderInfo ActionScript 3.0.

Prosty przykład

Poniższy przykładowy kod wysyła zapytanie do obiektu LoaderInfo o dostęp do zmiennej o nazwie myVariable wprowadzonej do pliku SWF za pomocą parametru FlashVars. Następnie ustawia on tekst z pola tekstowego na stole montażowym na wartość łańcucha zmiennej.

// 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()

Możesz pobrać przykładowe pliki FLA, SWF i HTML przedstawiające użycie powyższego kodu.

Przykład zaawansowany

Poniższy przykładowy kod pozwala wykonać następujące czynności:

  • Utworzenie wystąpienia obiektu TextField na stole montażowym (o nazwie tf).
  • Wciągnięcie zmiennych z parametru FlashVars za pomocą obiektu LoaderInfo.
  • Zastosowanie pętli for..in do iteracji każdej wprowadzonej zmiennej.
  • Wyświetlenie nazw i wartości zmiennych w polu tekstowym.
// 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());
}

Dostęp do zmiennych zawartych w kodzie ActionScript 2.0 w pliku SWF

W kodzie ActionScript 2.0 zmienne FlashVars są dostępne bezpośrednio, tak jakby zostały zadeklarowane w samym pliku SWF.

W tym przykładzie właściwość tekstu wystąpienia tekstu dynamicznego o nazwie text1 uzyskuje wartość zmiennej o nazwie myVariable.Zmienna myVariable jest zadeklarowana w parametrze FlashVars.

// AS2
text1.text = myVariable;

Możesz pobrać przykładowe pliki FLA, SWF i HTML przedstawiające użycie powyższego kodu AS2.

Dodatkowe techniki

Zmienne można przekazywać do plików SWF również poprzez dodanie ich do kodu URL plików SWF określonego w znacznikach OBJECT i EMBED. W przypadku tej techniki dodatkowa informacja dodana do kodu URL jest nazywana łańcuchem zapytania.Metoda ta ma ograniczenia, jeśli zmienne są potrzebne natychmiast po wczytaniu pliku SWF. Podczas korzystania z tej metody przed zażądaniem dużej ilości danych z serwera konieczne jest pobranie i odtworzenie pliku SWF.

Słowa kluczowe: wprowadzanie; parametry; łańcuch zapytań; obiekt; osadzanie; tn_16417

Ta zawartość jest licencjonowana na warunkach licencji Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License  Posty z serwisów Twitter™ i Facebook nie są objęte licencją Creative Commons.

Informacje prawne   |   Zasady prywatności online