Показать сообщение отдельно
Старый 19.02.2008, 01:07
andrey_x вне форума Посмотреть профиль Отправить личное сообщение для andrey_x Посетить домашнюю страницу andrey_x Найти все сообщения от andrey_x
  № 1  
Ответить с цитированием
andrey_x
 
Аватар для andrey_x

Регистрация: May 2007
Адрес: Украина, Запорожье
Сообщений: 74
Отправить сообщение для andrey_x с помощью ICQ
По умолчанию Помогите переписать под AS3

Есть пример под Red5, написан на AS2 ... чат....

Код:
import mx.utils.Delegate;

var nc:NetConnection = new NetConnection();
nc.connect("rtmp://localhost/oflaDemo");

var so:SharedObject = SharedObject.getRemote("simpleChatDemo", nc.uri, false); 

so.onSync = Delegate.create(this, newMessageHandler);
so.connect(nc);
send.addEventListener("click", Delegate.create(this, sendMessage));

function sendMessage():Void
{	
	so.data.chatMessage = message.text;
	message.text = "";
}

function newMessageHandler(evtObj:Object):Void
{
	var newChat:String = so.data.chatMessage;
	if(newChat == null) return;
	history.text += newChat + "\n";
	history.vPosition = history.maxVPosition;
}

я его переписал под AS3 в виде

Код:
var nc:NetConnection = new NetConnection();

nc.connect("rtmp://localhost/oflaDemo");
nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);

function asyncErrorHandler(event:AsyncErrorEvent):void {
	// ignore error
}

var so:SharedObject = SharedObject.getRemote("simpleChatDemo", nc.uri, false); 

so.addEventListener (SyncEvent.SYNC, newMessageHandler);
so.connect(nc);

send.addEventListener("click", sendMessage);


function sendMessage(e:MouseEvent ):void
{	
	so.data.chatMessage = message.text;
	message.text = "";
}

function newMessageHandler(evtObj:SyncEvent):void
{
	var newChat:String = so.data.chatMessage;
	if(newChat == null) return;
	history.text += newChat + "\n";
	history.vPosition = history.maxVPosition;
}
в AS2 варианте все работает, AS3 - коннектится, но не работает ((((
может я где-то что-то упустил ?

зы. не надо упаковывать в package, class и тд - это не принципиально...