Giriş

FlashVars parametresi HTML <OBJECT> etiketi, web tarayıcısına yüklendiğinde değişkenleri SWF'nin en üst düzeyine gönderir. <OBJECT> etiketi, HTML sayfalarına SWF dosyalarını eklemek için kullanılır. <EMBED> etiketi de kullanılabilir ancak daha eskidir.

<OBJECT> etiketi kullanmanın temelleri hakkında daha fazla bilgi için OBJECT etiketi sözdizimine bakınız.

Not: FlashVars özelliği, Flash Player 6 veya üzerini gerektirir.

Değerleri SWF dosyasına aktarmak için FlashVars'ı kullanın

Değişkenleri SWF dosyasının kök dizinine aktarmak için "FlashVars" adlı opsiyonel bir parametre kullanabilirsiniz. Bu parametreyi <OBJECT> etiketi veya daha eski <EMBED> etiketine yerleştirin. Ardından tüm bu değişkenler, dosyanın ilk karesi görüntülenmeden önce SWF dosyasına aktarılır.

İstediğiniz değişken adlarından herhangi biri olmadan istediğiniz kadar değişkeni aktarabilirsiniz. Tüm tarayıcılar, 64 KB (65535 bayt) uzunluğa kadar olan FlashVars dizilerini desteklemektedir.

FlashVars özelliğinin formatı, '&' karakteri ile ayrılan bir ad=değer çifti kümesi dizisidir.

'%' karakteri ve ardından uygun iki haneli heksadesimal değeri kullanarak özel veya yazdırılamaz karakterler de ekleyebilirsiniz. Tek bir boşluk, '+' işaretiyle temsil edilebilir. URL kodlama özel karakterleri hakkında daha fazla bilgi için URL Kodlama (Wikipedia) sayfasına bakınız.

Aşağıdaki HTML kodu iki değişken aktarır. Birincisi "myVariable" olarak adlandırılır ve "Hello World" değerine sahiptir. İknincisi "mySecondVariable" olarak adlandırılır ve "Goodbye" değerine sahiptir.

Nesne etiketi örneği

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

 

Gömülü etiket örneği

<EMBED> etiketi bir web sayfasına SWF dosyası eklemek için de kullanılabilir ancak eski bir etikettir ve artık kullanılmamaktadır.

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

Tarayıcı, FlashVars dizisini HTML sayfasının diğer kısımlarını kodladığı gibi kodlar. Windows'ta Internet Explorer UTF-16 uyumlu kodlama sağlar. Diğer tarayıcılar UTF-8 uyumlu kodlama sağlar.

SWF dosyasında ActionScript 3.0 kodundaki değişkenlere erişin

Değişkenleri HTML'den SWF dosyasına aktardıktan sonra SWF dosyası bu değişkenleri kullanmanızı gerektirir.

FlashVars değişkenlerine erişim için ActionScript 3.0 LoaderInfo nesnesini kullanın.

Basit örnek

Aşağıdaki kod örneği, FlashVars parametresinde SWF dosyasına aktarılan myVariable adlı değişkene erişim için LoaderInfo nesnesini sorgulamaktadır. Ardından Sahne Alanında metin alanı metnini, değişken dizi değerine ayarlar.

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

Yukarıdaki kodu kullanımda gösteren bir FLA, SWF dosyası ve HTML dosyası örneğini yükleyebilirsiniz.

İleri düzey örnek

Aşağıdaki kod örneği şu işlemleri yapar:

  • Sahne alanında bir TextField örneği oluşturur (tf adında).
  • FlashVars parametresinden değişkenleri çekmek için LoaderInfo nesnesini kullanır.
  • Aktarılan her değişkeni yinelemek için bir for..in döngüsü kullanır.
  • Metin alanında değişken adlarını ve değerlerini görüntüler.
// 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());
}

SWF dosyasında ActionScript 2.0 kodundaki değişkenlere erişin

ActionScript 2.0'da SWF dosyasında doğrudan açıklanmış gibi FlashVars değişkenlerine doğrudan erişim sağlayabilirsiniz.

Bu örnek text1 adlı dinamik metin örneğinin metin özniteliğini myVariable adlı değişken değerine atar. myVariable, FlashVars parametresinde açıklanır.

// AS2
text1.text = myVariable;

Yukarıdaki AS2 kodunu kullanımda gösteren bir FLA, SWF dosyası ve HTML dosyası örneğini yükleyebilirsiniz.

Ek teknikler

Değişkenler, OBJECT ve EMBED etiketlerinde belirtilen SWF dosyalarının URL'sine eklenerek SWF dosyalarına aktarılabilir. Bu örnekte ek bilgiler sorgu dizisi adı verilen URL'ye eklenir. SWF dosyası yüklendiğinde değişkenlere hemen ihtiyaç duyarsanız bu yöntemin kısıtlamaları bulunmaktadır. Bu yöntemi kullandığınızda, sunucudan büyük miktarda veri istenmeden önce SWF dosyasını yüklemeniz ve oynatmanız gerekir.

Anahtar kelimeler: aktarma; parametreler; sorgu dizisi; nesne; gömme; tn_16417

Bu çalışma Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License kapsamında lisanslanmıştır  Creative Commons şartları, Twitter™ ve Facebook sitelerinde paylaşılanları kapsamaz.

Yasal Uyarılar   |   Çevrimiçi Gizlilik İlkesi