SWFObject yoluyla FlashVars olarak PHP değişken geçmek için nasıl

2 Cevap php

Ben Flaş vars üzerinden Flash PHP değişkeni alıp bunu iletmekten çalışıyorum. Benim nihai hedef Flash XML olarak biçimlendirilmiş bir dize geçirmek için, ama ben mücadele ediyorum çünkü temelleri her şeyi elimden ettik. Ben sadece SWFObject ile FlashVars aracılığıyla Flaş ama bir şey doğru değil basit bir PHP string değişken geçmek için çalışıyorum. Ben php etiketleri içinde değişken geçmek çalıştığınızda sayfa yük olmayacak, ama ben sadece bir sabit kodlanmış dizesi geçirirseniz o yükleyecektir. Sayfamın temel yapısı bu yüzden gibi üst beyan bazı PHP olması:

PHP

<?php
     $test = "WTF";
?>

(Basitlik uğruna burada hariç) Bazı HTML ve benim HTML'sinde sonra JavaScript SWFObject Embed:

    <script type="text/javascript" src="js/swfobject2.js"></script>
    <script type="text/javascript">
        // <![CDATA[
        var swfURL = "swfs/Init-Flash-PHP.swf";

        var flashvars = {};
            flashvars.theXML = <?php print $test ?>;

        var params = {};
            //params.menu = "false";
            params.scale = "showAll";
            params.bgcolor = "#000000";
            params.salign = "TL";
            //params.wmode = "transparent";
            params.allowFullScreen = "true";
            params.allowScriptAccess = "always";

        var attributes = {};
            attributes.id = "container";
            attributes.name = "container";


        swfobject.embedSWF(swfURL, "container", '100%', '100%', "9.0.246", "elements/swfs/expressinstall.swf", flashvars, params, attributes);


        // ]]>
</script>

Ve ActionScript 3 Kanunu'nun çıplak şartları:

_paramObj = LoaderInfo(stage.loaderInfo).parameters;
theText_txt.text = _paramObj['theXML'];

Nasıl SWFObject ve FlashVars kullanarak bir PHP değişkeni geçmek?

Teşekkürler.

2 Cevap

Ugh, ben Flaş değişkenler kaçmak için gerekli ve işe yaradı.

Ilgilenen herkes için, bu ben değişim için gerekli ne

flashvars.theXML = <?php print $test ?>;

Buna:

flashvars.theXML = escape('<?php print $test ?>');

) kaçmak için kusursuz bir yol değildir (escape (!)

Yerine () encodeURIComponent kullanın.

Bu SSS geçiş noktasında 9: http://code.google.com/p/swfobject/wiki/faq

  1. Nasıl FlashVars kullanarak bir değer olarak URI'lere veya HTML kodunu geçirebiliriz?

Special characters and the symbols = and & cannot directly be used inside flashvars values (the latter because they are used to stack the flashvars themselves).

You can workaround this issue by escaping these characters before passing them as flashvar values. An example:

encodeURIComponent("&trade") will become %26trade

The values will be available in your swf already unencoded, so no unescaping is needed inside your swf.

Note that encodeURIComponent is not available in all browsers, but is available in all of the common modern versions. If you need full backwards compatibility, you can use escape() instead, but note that escape() does not work well with double-byte characters (like Chinese).

You can also escape these characters manually by using:

* %3D instead of =
* %26 instead of &