将flashvars传递给Flex

时间:2011-07-26 17:49:50

标签: html flash flash-builder flashvars

作为一名PHP初中第一次遇到Flex,这让我的大脑划了好几天。 flashvar包含我在Flex视频组件中播放的视频源。播放器的HTML如下所示:

 function createPlayer(videoSource){
    document.writeln("<div id=\"player\">");
    document.writeln("<object width=\"489\" height=\"414\" FlashVars=\""+videoSource+"\">");
    document.writeln("<param name=\"player\" value=\"bin-debug/FlexPlayer.swf\">");
    document.writeln("<embed src=\"bin-debug/FlexPlayer.swf\" name=\"player\" width=\"489\" height=\"414\" FlashVars=\""+videoSource+"\">");
    document.writeln("</embed>");
    document.writeln("</object>");
    document.writeln("</div>");               
}

我试图在FlexPlayer.mxml中调用FlashVars,但它无效。请告诉我在mxml的源代码中应用什么来访问FlashVars。

<s:VideoPlayer id="Player" left="0" top="0" width="497" height="414"
                       skinClass="MySkin" source="FlashVars"/>
    </s:Group>

2 个答案:

答案 0 :(得分:1)

<mx:Script>
    <![CDATA[
        private function init():void {
            // The FlashVars
            var obj:Object = Application.application.parameters;
            var videoSource:String = (obj.videoSource != null) ? obj.videoSource : "there was no flashVar by this name";
            trace(videoSource);
        }
    ]]>
</mx:Script>

答案 1 :(得分:1)

变量videoSource包含什么?如果它是一个视频的URL而已,它可能不起作用,因为flashvars应该是一个包含变量名称和值(而不仅仅是值)的字符串。

例如,如果视频播放器使用名为flashvars="video.flv"的变量,flashvars="sourceUrl=video.flv"将无效,但sourceUrl可以正常工作。

此外,对于object元素,您应该为flashvars添加单独的param元素,而不是将flashvars作为object元素的属性。对于embed元素,flashvars是一个属性,就像你现在拥有的那样(标准不错;)

更多信息:

http://kb2.adobe.com/cps/164/tn_16417.html