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

How to set dynamic variables in flash (swf) that are passed from javascript?

我正在尝试使用 Flash 反编译器修改 SWF。 我找到了一个播放实时加密流 rtmp 的 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)

flashvars 存储在 stage.loaderInfo.parameters 中。所以如果你想遍历所有的 flashvars,它会是这样的:

var flashVars:Object = stage.loaderInfo.parameters;

for (var key:String in flashVars) 
{
    var value:String = flashVars[key] as String;
    trace(key + ' = ' + value);
}