我有一个用于存储SWF对象的embed标记。我一直在这里关注此文档
https://helpx.adobe.com/flash/kb/pass-variables-swfs-flashvars.html
我需要创建一个名称等于FlashVars
的参数。
我需要在value属性中存储API令牌。问题是令牌本身有一个等号。
我的令牌是
var token = "GABVZgTs_____2R2cHlzNHd5ZXg3Z2M0OXdoaDY3aHdrbo80onzX6aHp2ytZg17l7bE="
<object data="http://www.rdio.com/api/swf/">
<param name=FlashVars
value="token=GABVZgTs_____2R2cHlzNHd5ZXg3Z2M0OXdoaDY3aHdrbo80onzX6aHp2ytZg17l7bE="></param>
</object>
value属性的结果将嵌入到引号内。然后在引号内你有语法
key=value
但值本身有一个等号。我应该将值嵌入引号内的值吗?
以下是API说明
必须从http://www.rdio.com/api/swf/嵌入API SWF 以下flashvars参数:
playbackToken
:从中检索的有效回放标记 getPlaybackToken Web服务API方法
domain
:SWF的域名 将嵌入
listener
&#34;要接收的JS对象的名称 回调
enableLogging
:可选,在设置为1时提供调试日志记录 嵌入SWF的最简单方法是使用SWFObject库。状态回调将在传入的任何对象上调用 回调参数。例如,如果提供了foo,则准备就绪 回调将被称为window.foo.ready()。
可以直接在嵌入对象上调用方法 - 或 tag的DOM节点。由于Flash本身定义了一些方法 方法以rdio _。为前缀。
要在带有ID栏的API SWF上调用play方法,您可以调用:
我也一直在使用这个来源
答案 0 :(得分:1)
虽然对参数进行URL编码也很好,但在这种情况下,它可以正常工作。
网址变量在&
(&符号)上拆分。然后找到的第一个=
用于区分名称/键和值。因此,只要你的两个等号之间没有符号,就可以了。
确实,我测试了你的确切令牌值,它没有问题。
最佳做法是使用javascript或您的服务器脚本对值进行网址编码,然后再将它们放入FlashVars中。
例如:JS:
var token = "GABVZgTs_____2R2cHlzNHd5ZXg3Z2M0OXdoaDY3aHdrbo80onzX6aHp2ytZg17l7bE=";
var flashVarToken = encodeURIComponent(token);
var paramNode = "<param name=\"FlashVars\" value=\"token=" + flashVarToken + "\"></param>";
然后在AS3中解码值。
var token:String = unescape(this.loaderInfo.parameters.token);
使用这种方法,您可以在值中包含所需数量的&符号,等号和空格等,而不会弄乱它。
答案 1 :(得分:0)
replace("=", "\\=").
希望我回答你的问题。