如何将多个Flashvars变量放入Flash中(不使用swfobject)

时间:2010-06-22 16:05:21

标签: flash actionscript-3 embed flashvars

我正在为我的客户重建这个可嵌入的播放器,视频文件URL和其他几个变量在HTML中作为Flashvars。我怀疑寻找flashvars的代码有问题。

显示绿色框的顶部是播放器未加载的位置,因为它无法从HTML获取Flashvars。下面的播放器将Flashvars字符串硬编码到播放器中,因此它可以工作。

我认为这个问题存在于某个地方或许我试图加入Flashvars的方式有问题吗?

// LIVE Embedded
   //vidURL = stage.loaderInfo.parameters.fvar;
   vidURL = this.loaderInfo.parameters.fvar;            

   fvarText.text = "vidURL = this.loaderInfo.parameters.fvar"

   vidSplit = vidURL.split(".flv")[0].split("/");
   varVid   = vidURL.toLowerCase().split("&vid=")[1].split("&")[0];
   varChid  = vidURL.toLowerCase().split("&chid=")[1].split("&")[0];

// Hardcode Testing 
//(This creates the player that works at the bottom of the test page)
   /*vidURL   = "http://";
   vidSplit = vidURL.split(".flv")[0].split("/");
   varVid   = vidURL.toLowerCase().split("&vid=")[1].split("&")[0];
   varChid  = vidURL.toLowerCase().split("&chid


从Flash导出时出现此错误:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at com.Player::Embed/init()
at com.Player::Embed()

我期待这个错误,但是很明显Flash还没有嵌入,但是这个错误可以解释为什么我的播放器无法获得FlashVars链接然后渲染自己?

HTML嵌入代码:

<object width="640" height="395" border="0">
<param name="flashvars" value="fvar=http://360.flv&amp;VID=1273&amp;CHID=4" />
<embed src="http://dev.site.com/flash.swf" width="640" height="395" flashvars="fvar=http://360.flv&amp;VID=1273&amp;CHID=4">
</embed>
</object>

2 个答案:

答案 0 :(得分:1)

您需要在对象和embed标记中设置flashVars参数。查看此链接http://livedocs.adobe.com/flex/3/html/help.html?content=passingarguments_3.html

<object id='mySwf' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab' height='100%' width='100%'>
        <param name='src' value='FlashVarTest.swf'/>
        <param name='flashVars' value='firstName=Nick&lastName=Danger'/>
        <embed name='mySwf' src='FlashVarTest.swf' pluginspage='http://www.adobe.com/go/getflashplayer' height='100%' width='100%' flashVars='firstName=Nick&lastName=Danger'/>
    </object>

获取Flash中的值。使用此:

var firstName:String = stage.loaderInfo.parameters.firstName;
var lastName:String = stage.loaderInfo.parameters.lastName;

答案 1 :(得分:1)

就像George说的那样,你可以尝试使用flashvars和标签。另外,我引用我的属性值并转义我的&符号(&amp;)。以下代码应该有效:

<object width="640" height="395" border="0">
    <param name="flashvars" value="file=http://how.llnwd.net/o18/UpDo_H_828-640x360.flv&amp;VID=1273&amp;CHID=4" />
    <embed src="http://dev.site.com/flash.swf" width="640" height="395" flashvars="file=http://how.llnwd.net/o18/UpDo_H_828-640x360.flv&amp;VID=1273&amp;CHID=4">
    </embed>
</object>