我在ActionScript中编写了一个Flash应用程序,在这个应用程序中,我必须连接到Flash Server。 我有这个问题:服务器拒绝连接,因为RTMP协议中“swfURL”字段的值未定义。我不明白为什么应用程序没有设置此值,因为“swfURL”是源文件的值。 我在Flash API中找不到任何方法来更改此参数的值。 代码是这样的:
nc = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
ncDomain = IP ADDRESS;
ncPort = PORT;
ncApplication = APPLICATION;
url = "rtmp://" + ncDomain + ":" + ncPort + "/" + ncApplication;
nc.connect(url);
编辑: 我告诉你更多细节: 我使用“FlashDevelop”IDE编写程序。我使用IDE的调试器来执行程序,当我看到Wireshark的数据包时,swfURL的值为“undefined”。 我还尝试将我的应用程序放在一个网页中,在JavaScript中使用“swfobject”,如下所示:
<script src="js/swfobject.js"></script>
<script>
var flashvars = {
};
var params = {
menu: "false",
scale: "noScale",
allowFullscreen: "true",
allowScriptAccess: "always",
bgcolor: "",
wmode: "direct" // can cause issues with FP settings & webcam
};
var attributes = {
id:"Proyecto"
};
swfobject.embedSWF(
"Proyecto.swf",
"altContent", "100%", "100%", "10.0.0",
"expressInstall.swf",
flashvars, params, attributes);
</script>
这样做,问题是一样的,“swfURL”的值是未定义的,它必须是“Proyecto.swf”,正如你在上面的代码中看到的那样,它表示“swfobject.embedSWF”。 我不明白为什么当我的应用程序连接到服务器时,它不会发送发送方的url:swfURL在RTMP协议中的值。