
Код:
package
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.net.Responder;
import flash.net.NetConnection;
import flash.net.SharedObject;
import flash.events.NetStatusEvent;
import flash.events.AsyncErrorEvent;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.events.SyncEvent;
public class HelloWorld extends MovieClip
{
private var nc:NetConnection;
public var users_so:SharedObject;
public var msgText:TextField;
public var nickText:TextField;
public var chatText:TextField;
public var connectButton:Sprite;
public var sendButton:Sprite;
private var myResponder:Responder = new Responder(onReply);
public function HelloWorld()
{
try
{
msgText = getChildByName("msg") as TextField;
nickText = getChildByName("nick") as TextField;
chatText = getChildByName("chattxt") as TextField;
connectButton = getChildByName("connectBtn") as Sprite;
sendButton = getChildByName("sendBtn") as Sprite;
} catch (err:Error) {
trace(err.message);
}
msgText.text = "Привет";
nickText.text = "Stas";
connectButton.addEventListener(MouseEvent.CLICK, connectHandler);
sendButton.addEventListener(MouseEvent.CLICK, sendHandler);
}
public function connectHandler(event:MouseEvent):void
{
nc = new NetConnection();
nc.client = this;
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
nc.connect("rtmp://localhost/chat/", nickText.text);
}
public function sendHandler(event:MouseEvent):void
{
nc.call("serverHelloMsg", null, msgText.text);
}
public function msgFromSrvr(msg:String):void
{
chatText.appendText(msg);
}
public function close():void
{
trace("Connection closed.");
}
private function asyncErrorHandler(event:AsyncErrorEvent):void
{
trace("Async " + event.text);
}
public function soSync(e:SyncEvent):void
{
trace(" *** Shared Object Synchronized *** ");
}
private function onReply(result:Object):void
{
chatText.appendText(String(result)+ "\n");
msgText.text = "";
}
public function netStatusHandler(e:NetStatusEvent):void
{
switch (e.info.code)
{
case "NetConnection.Connect.Success" :
trace("Successfully Connected!");
users_so = SharedObject.getRemote("users_so", nc.uri, true);
users_so.connect(nc);
users_so.addEventListener(SyncEvent.SYNC, soSync);
break;
case "NetConnection.Connect.Closed" :
trace("Closed!");
break;
}
}
}
}
Все работает.