将变量从HTML传递到Flash ActionScript 3.0

时间:2012-07-27 08:50:28

标签: html actionscript-3 actionscript flash

我只是想从HTML传递一些参数到ActionScript 3.0。 当我搜索它时,我看到我可以使用我可以使用[flashvars]

 <param name="flashvars" value="serverUrl=rtmp://X.X.X.X/live&streamName=Camera.stream">

可以从AS3访问这些参数:

var serverUrl : String =  root.loaderInfo.parameters.serverUrl;
var serverStreamName : String = root.loaderInfo.parameters.serverStreamName;

但是当我尝试这个时,我看到serverUrl和serverStreamName是null:

var txt:TextField = new TextField(); 
txt.text =" URL: " + serverUrl ;
addChild(txt)

我做错了什么?有什么想法吗?

注意:

我的HTML调用SWF文件:

<noscript>
    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="..."....>
    <param name="allowScriptAccess" value="sameDomain" />
    <param name="allowFullScreen" value="false" />
    <param name="movie" value="CustomVideoPlayer.swf" />
    <param name="flashvars" value="serverUrl=rtmp://X.X.X.X/live&streamName=Camera.stream">
    <param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />   
    <embed src="CustomVideoPlayer.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="CustomVideoPlayer" ...>
    </object>
</noscript>

尝试从AS3到达那些参数:

var serverUrl : String =  root.loaderInfo.parameters.serverUrl;
var serverStreamName : String = root.loaderInfo.parameters.serverStreamName;

2 个答案:

答案 0 :(得分:2)

我会评论使用object标记而不是embed,EMBED vs. OBJECT

但是现在有了HTML5嵌入的所有支持,我不确定。

无论是哪种情况,我总是喜欢使用像swfobjecct这样的流行图书馆,只是为了方便而使用。保持安全。

话虽如此,这就是你用swfobject&amp; Javascript:

 var flashVars = {};
 flashVars.parameter1 = "abc";
 flashVars.parameter2 = "bbc";    

 swfobject.embedSWF("myMovie.swf", "myDIV", "720", "600", "9.0.0", "expressInstall.swf", flashVars, {}, {}, swfLoadComplete);

答案 1 :(得分:0)

如果您还未在flashvars标记中指定<embed>,则可能导致参数丢失的一件事是null。

<param>标记与<object>标记一起使用,由呈现/执行<object>标记的浏览器读取,而不是由使用{<embed>标记的浏览器读取1}}标签。您的示例中的<embed>标记已缩短,就像我在这里一样,所以也许您已经拥有它,但您还需要包含flashvars,例如:

<embed src="CustomVideoPlayer.swf" flashvars="serverUrl=rtmp://X.X.X.X/live&streamName=Camera.stream" ...>

换句话说,您需要包含两次flashvars,一次用于<object>,一次用于<embed>,与allowFullScreen等其他内容一样。