maxjoin
21.08.2008, 15:33
здравствуйте, помогите разобраться, не могу получить ответ от fms!
использую такой код в HelloWorld.as
package {
import flash.display.MovieClip;
import flash.net.Responder;
import flash.net.NetConnection;
import flash.events.MouseEvent;
import flash.events.NetStatusEvent;
import flash.events.AsyncErrorEvent;
import flash.events.SecurityErrorEvent;
public class HelloWorld extends MovieClip {
private var nc:NetConnection;
private var responder:Responder = new Responder(onReply);
public function HelloWorld() {
textLbl.text = "";
connectBtn.label = "Connect";
connectBtn.addEventListener(MouseEvent.CLICK, connectHandler);
}
public function connectHandler(event:MouseEvent):void {
if (connectBtn.label == "Connect") {
trace("Connecting...");
nc = new NetConnection();
nc.client = new Client();
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
// Connect to the server.
nc.connect("rtmp://localhost/HelloWorld");
// Call the server's client function serverHelloMsg, in HelloWorld.asc.
nc.call("serverHelloMsg", responder, "World");
connectBtn.label = "Disconnect";
} else {
trace("Disconnecting...");
// Close the connection.
nc.close();
connectBtn.label = "Connect";
textLbl.text = "";
}
}
private function securityErrorHandler(event:SecurityErrorEvent):void {
trace(event.text);
}
private function asyncErrorHandler(event:AsyncErrorEvent):void {
trace(event.text);
}
private function netStatusHandler(event:NetStatusEvent):void {
trace("connected is: " + nc.connected );
trace("event.info.level: " + event.info.level);
trace("event.info.code: " + event.info.code);
}
private function onReply(result:Object):void {
trace("onReply received value: " + result);
textLbl.text = String(result);
}
}
}
class Client {
public function onBWCheck():Number {
return 0;
}
public function onBWDone():void {
trace("onBWDone -> ok!");
}
}
и в HelloWorld.asc
application.onConnect = function(client) {
client.serverHelloMsg = function(helloStr) {
return "Hello, " + helloStr + "!";
}
application.acceptConnection(client);
}
в ошибке пишет NetConnection.Call.Failed,
файл HelloWorld.asc расположен как указано в fms.ini, в директории C:\Program Files\Adobe\Flash Media Server 3\scriptlib
подскажите что не так!
использую такой код в HelloWorld.as
package {
import flash.display.MovieClip;
import flash.net.Responder;
import flash.net.NetConnection;
import flash.events.MouseEvent;
import flash.events.NetStatusEvent;
import flash.events.AsyncErrorEvent;
import flash.events.SecurityErrorEvent;
public class HelloWorld extends MovieClip {
private var nc:NetConnection;
private var responder:Responder = new Responder(onReply);
public function HelloWorld() {
textLbl.text = "";
connectBtn.label = "Connect";
connectBtn.addEventListener(MouseEvent.CLICK, connectHandler);
}
public function connectHandler(event:MouseEvent):void {
if (connectBtn.label == "Connect") {
trace("Connecting...");
nc = new NetConnection();
nc.client = new Client();
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
// Connect to the server.
nc.connect("rtmp://localhost/HelloWorld");
// Call the server's client function serverHelloMsg, in HelloWorld.asc.
nc.call("serverHelloMsg", responder, "World");
connectBtn.label = "Disconnect";
} else {
trace("Disconnecting...");
// Close the connection.
nc.close();
connectBtn.label = "Connect";
textLbl.text = "";
}
}
private function securityErrorHandler(event:SecurityErrorEvent):void {
trace(event.text);
}
private function asyncErrorHandler(event:AsyncErrorEvent):void {
trace(event.text);
}
private function netStatusHandler(event:NetStatusEvent):void {
trace("connected is: " + nc.connected );
trace("event.info.level: " + event.info.level);
trace("event.info.code: " + event.info.code);
}
private function onReply(result:Object):void {
trace("onReply received value: " + result);
textLbl.text = String(result);
}
}
}
class Client {
public function onBWCheck():Number {
return 0;
}
public function onBWDone():void {
trace("onBWDone -> ok!");
}
}
и в HelloWorld.asc
application.onConnect = function(client) {
client.serverHelloMsg = function(helloStr) {
return "Hello, " + helloStr + "!";
}
application.acceptConnection(client);
}
в ошибке пишет NetConnection.Call.Failed,
файл HelloWorld.asc расположен как указано в fms.ini, в директории C:\Program Files\Adobe\Flash Media Server 3\scriptlib
подскажите что не так!