如何在从 javascript 传递的 flash (swf) 中设置动态变量?
Posted
技术标签:
【中文标题】如何在从 javascript 传递的 flash (swf) 中设置动态变量?【英文标题】:How to set dynamic variables in flash (swf) that are passed from javascript? 【发布时间】:2019-04-26 03:46:36 【问题描述】:我正在尝试使用 Flash 反编译器修改 SWF。 我找到了一个播放实时加密流 rtmps 的 SWF,我想用它来嵌入我的网站。 我希望能够使用 javascript 更改流的 url:
//FUNCTION IN FLASH
public var serverName:String;
function frame1() : *
this.nc = null;
this.serverName = "rtmps://and_the_stream_url";
this.streamName = "A name";
this.stageListener = new Object();
this.videoSizeTimer = Number(0);
this.videoLastW = Number(0);
this.videoLastH = Number(0);
this.fullscreenCapable = false;
this.hardwareScaleCapable = false;
this.debugInterval = Number(0);
this.bufferTime = Number(3);
this.mainInit();
所以我基本上希望能够使用我在将它嵌入到我的网站时通过 javascript 传递的东西来设置 serverName 变量。
我一直在看的 javascript 是 SWFObject.. 例如:
var flashvars=;
flashvars.serverName = "my url..";
swfobject.embedSWF("myContent.swf", "my-target-element", "300", "120", "10.0.0", flashvars);
如何修改 flash(swf 文件)中的代码,以便读取我从 javascript 传递的值?
(如果还有其他更好的方法可以在网站上包含实时流 rtmps 流,那么也请告诉我 :) 我试过使用 flowplayer,但我只能用它播放 rtmp-streams)
【问题讨论】:
【参考方案1】:flashvars 存储在 stage.loaderInfo.parameters 中。因此,如果您想遍历所有 flashvar,它会是这样的:
var flashVars:Object = stage.loaderInfo.parameters;
for (var key:String in flashVars)
var value:String = flashVars[key] as String;
trace(key + ' = ' + value);
【讨论】:
以上是关于如何在从 javascript 传递的 flash (swf) 中设置动态变量?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 javascript 函数从子 flash swf 文件插入 HTML 文档?
将数组从 Flash (AS3) 发送到 JavaScript