如何在flash(swf)中设置从javascript传递的动态变量



我正在尝试使用flash反编译器修改SWF。我发现了一个SWF,它播放实时加密流rtmps,我想用它嵌入我的网站。我希望能够用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();
}

因此,我基本上希望能够在我的网站上嵌入serverName变量时,用javascript传递的东西来设置它。

我一直在看的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流,也请告诉我:(我尝试过使用流播放器,但我只能用它播放rtmp流(

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);
}

最新更新