Flex - Как передать параметры в SWF - PullRequest
0 голосов
/ 08 июня 2011

Я использую FlashVars для передачи параметров в SWF, но он не работает.

Вот HTML-код:

<noscript>
        <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%" id="tpc">
            <param name="movie" value="tpc.swf" />
            <param name="quality" value="high" />
            <param name="bgcolor" value="#ffffff" />
            <param name="allowScriptAccess" value="sameDomain" />
            <param name="allowFullScreen" value="true" />
            <param name=FlashVars value="myVariable=Hello%20World&mySecondVariable=Goodbye">

            <!--[if !IE]>-->
            <object type="application/x-shockwave-flash" data="tpc.swf" width="100%" height="100%">
                <param name="quality" value="high" />
                <param name="bgcolor" value="#ffffff" />
                <param name="allowScriptAccess" value="sameDomain" />
                <param name="allowFullScreen" value="true" />
                **<param name=FlashVars value="myVariable=Hello%20World&mySecondVariable=Goodbye">**

            <!--<![endif]-->
            <!--[if gte IE 6]>-->
                <p> 
                    Either scripts and active content are not permitted to run or Adobe Flash Player version
                    10.0.0 or greater is not installed.
                </p>
            <!--<![endif]-->
                <a href="http://www.adobe.com/go/getflashplayer">
                    <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>
    </noscript>     

Вот здесь.mxml код файла:

            var keyStr:String;
            var valueStr:String;

            var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;

            var length:int = 0;

            for (keyStr in paramObj) {
                length++;
            }

            if (length == 0) {
                ta.appendText("Length is zero so below is the dummy data:\n");
                paramObj = {test:"Test", test2:"Test2"};
            }

            for (keyStr in paramObj) {   
                valueStr = String(paramObj[keyStr]);
                ta.appendText("\t" + keyStr + ":\t" + valueStr + "\n");
            }

Ответы [ 2 ]

3 голосов
/ 08 июня 2011

Во-первых, не используйте этот HTML. Используйте swfobject , чтобы встроить ваш Flash SWF в ваш HTML. Это проще сделать и поддерживается Adobe.

Во-вторых, вы неправильно обращаетесь к переменным и, вероятно, пытаетесь получить доступ к переменам слишком рано. Вам нужно дождаться события creationComplete приложения, прежде чем пытаться получить к нему доступ. По всему, что я только что сказал в Adobe Help, есть действительно хорошее руководство по .

0 голосов
/ 08 июня 2011

В <object> попробуйте добавить <embed> следующим образом:

<embed src="file.swf?myVariable=Hello%20World&mySecondVariable=Goodbye" width="" height="" />
...