2011-07-26 98 views
0

作爲一名首次遇到Flex的PHP初學者,這讓我的腦子撓了幾天。 flashvar包含我想要在Flex視頻組件中播放的視頻的來源。播放器的HTML看起來像:將flashvars傳遞給Flex

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的Flash變數,但它不工作。請告訴我必須在mxml的源代碼中應用什麼才能訪問FlashVars。

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

回答

1

什麼是變量videoSource包含哪些內容?如果它只是一個視頻的URL而沒有其他內容,它可能不起作用,因爲flashvars應該是一個包含變量名稱和值(而不僅僅是值)的字符串。

因此,例如,flashvars="video.flv"將不起作用,但flashvars="sourceUrl=video.flv"可以工作,如果視頻播放器使用名爲sourceUrl的變量。

此外,對於object元素,您應該爲flashvars添加單獨的param元素,而不是將flashvars作爲object元素的屬性。對於embed元素,Flash變數是一個屬性,因爲你現在(AINT標準大;)

更多信息:

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

+0

代碼如何查找param元素() – George

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

和其他一切是正確的?我應該只添加這個功能才能讓玩家正常工作? – George

+0

沒有。添加這個函數會將flashVar放入一個變量中。你將不得不找出其餘的。 –