Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.06.2011, 13:59
MY3bIKAHT вне форума Посмотреть профиль Отправить личное сообщение для MY3bIKAHT Найти все сообщения от MY3bIKAHT
  № 1  
Ответить с цитированием
MY3bIKAHT
 
Аватар для MY3bIKAHT

Регистрация: Apr 2008
Сообщений: 20
По умолчанию Чат на wowza

Добрый день. Пишу чат с использованием wowza. Возникла проблема. Нужно сделать удаление сообщений в чате (пост модерация). Подскажите пожалуйста как это сделать. Буду признателен очень сильно. Спасибо.
__________________
Музыканты рождаются волей судьбы...

Старый 20.06.2011, 14:02
kackbip вне форума Посмотреть профиль Отправить личное сообщение для kackbip Найти все сообщения от kackbip
  № 2  
Ответить с цитированием
kackbip
 
Аватар для kackbip

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
С помощью рассылки клиентам события удаления сообщения

Старый 20.06.2011, 14:04
MY3bIKAHT вне форума Посмотреть профиль Отправить личное сообщение для MY3bIKAHT Найти все сообщения от MY3bIKAHT
  № 3  
Ответить с цитированием
MY3bIKAHT
 
Аватар для MY3bIKAHT

Регистрация: Apr 2008
Сообщений: 20
Цитата:
С помощью рассылки клиентам события удаления сообщения
Хороший ответ, можно конкретнее?
__________________
Музыканты рождаются волей судьбы...

Старый 20.06.2011, 14:05
kackbip вне форума Посмотреть профиль Отправить личное сообщение для kackbip Найти все сообщения от kackbip
  № 4  
Ответить с цитированием
kackbip
 
Аватар для kackbip

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
Ну у вас ведь есть список все клиентов которые в данный момент подсоединены. Вот надо пробежаться по ним и дернуть у каждого метод удаления сообщения

Старый 20.06.2011, 14:09
MY3bIKAHT вне форума Посмотреть профиль Отправить личное сообщение для MY3bIKAHT Найти все сообщения от MY3bIKAHT
  № 5  
Ответить с цитированием
MY3bIKAHT
 
Аватар для MY3bIKAHT

Регистрация: Apr 2008
Сообщений: 20
Мне нужно удалить сообщение на сервере... Если я правильно разобрался оно хранится в sharedObject. А на клиентской стороне все сделает вот этот евент
Код AS3:
 textchat_so.addEventListener(SyncEvent.SYNC, syncEventHandler);
__________________
Музыканты рождаются волей судьбы...

Старый 20.06.2011, 14:21
kackbip вне форума Посмотреть профиль Отправить личное сообщение для kackbip Найти все сообщения от kackbip
  № 6  
Ответить с цитированием
kackbip
 
Аватар для kackbip

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
Я думал вы сами чат пишете. Тогда не знаю, чаты наверное разные есть на основе wowza.
Скажите что вы используете. Мне самому стало интересно.

Старый 20.06.2011, 15:10
MY3bIKAHT вне форума Посмотреть профиль Отправить личное сообщение для MY3bIKAHT Найти все сообщения от MY3bIKAHT
  № 7  
Ответить с цитированием
MY3bIKAHT
 
Аватар для MY3bIKAHT

Регистрация: Apr 2008
Сообщений: 20
Цитата:
Скажите что вы используете.
Что вы имеете ввиду?
Если вам интересно вот мой код.
Код AS3:
import flash.events.Event;
var history:Array = new Array();
var nc:NetConnection = null;
var textchat_so:SharedObject = null;
var lastChatId:Number = 0;
var chatSharedObjectName:String = "textchat";
var chatText:String = "";
function ncOnStatus(infoObject:NetStatusEvent)
{
	trace("nc: "+infoObject.info.code+" ("+infoObject.info.description+")");
 
	if (infoObject.info.code == "NetConnection.Connect.Success")
	{
		initSharedObject(chatSharedObjectName);
	}
	else if (infoObject.info.code == "NetConnection.Connect.Failed")
	{
 
		trace("Connection failed: Try rtmp://[server-ip-address]/textchat");
	}
	else if (infoObject.info.code == "NetConnection.Connect.Rejected")
	{
 
		trace(infoObject.info.description);
 
	}
}
function doConnect()
{
	// create a connection to the wowza media server
	nc = new NetConnection();
	// trace connection status information
	nc.addEventListener(NetStatusEvent.NET_STATUS, ncOnStatus);
	trace("connect: "+MovieClip(root).serverUrl);
	//chatSharedObjectName = connect.soNameStr.text;
	nc.connect(MovieClip(root).serverUrl);
}
 
// format the text chat messages
function formatMessage(chatData:Object)
{
	var msg:String;
	var currTime:Date = chatData.time;
 
	var hour24:Number = currTime.getHours();
	var ampm:String = (hour24<12) ? "AM" : "PM";
	var hourNum:Number = hour24 % 12;
	if (hourNum == 0)
	{
		hourNum = 12;
	}
 
	var hourStr:String = hourNum + "";
	var minuteStr:String = (currTime.getMinutes())+"";
	if (minuteStr.length < 2)
	{
		minuteStr = "0" + minuteStr;
	}
	var secondStr:String = (currTime.getSeconds())+"";
	if (secondStr.length < 2)
	{
		secondStr = "0" + secondStr;
	}
 
	msg = "<font color='#999A4C'>" + chatData.user + ": </font>" + chatData.message;
	return msg;
}
function syncEventHandler(ev:SyncEvent)
{
	var infoObj:Object = ev.changeList;
	// if first time only show last 4 messages in the list
	if (lastChatId == 0)
	{
		lastChatId = Number(textchat_so.data["lastChatId"]) - 4;
		if (lastChatId < 0)
		{
			lastChatId = 0;
		}
	}
 
	// show new messasges
	var currChatId = Number(textchat_so.data["lastChatId"]);
	// if there are new messages to display
	if (currChatId > 0)
	{
		var i:Number;
		for (i=(lastChatId+1); i<=currChatId; i++)
		{
			if (textchat_so.data["chatData" + i] != undefined)
			{
				var chatMessage:Object = textchat_so.data["chatData" + i];
 
				var msg:String = formatMessage(chatMessage);
				var clip:MovieClip = new messageMc();
				var newMessage = chatList.allMessages.addChild(clip);
				newMessage.txt.htmlText = msg;
				history.unshift(newMessage);
			}
		}
		lastChatId = currChatId;
	}
}
stage.addEventListener(Event.ENTER_FRAME, function(){
					   if(history.length!=0){
						   history[1].y=0
						   for(var i=1; i<history.length; i++){
							   history[i].y= history[i-1].y+history[i-1].height+5
							   }
							}
});
function connectSharedObject(soName:String)
{
	textchat_so = SharedObject.getRemote(soName,nc.uri);
 
	// add new message to the chat box as they come in
	textchat_so.addEventListener(SyncEvent.SYNC, syncEventHandler);
 
	textchat_so.connect(nc);
}
 
function connectSharedObjectRes(soName:String)
{
	connectSharedObject(soName);
}
 
function initSharedObject(soName:String)
{
	// initialize the shared object server side
	nc.call("initSharedObject", new Responder(connectSharedObjectRes), soName);
}
 
// Add new messages to the chat box by calling the server side function sendMessage
// Additional properties can be added to the chatMessage object if needed.
// They will be passed through the system to the shared object by the server
function addMessage(msg:String)
{
	var chatMessage:Object = new Object();
 
	chatMessage.message = msg;
	chatMessage.time = new Date();
	chatMessage.user = MovieClip(root).userName;
 
	trace("sendMessage: "+formatMessage(chatMessage));
	nc.call("addMessage", null, chatSharedObjectName, chatMessage);
}
 
doConnect();
__________________
Музыканты рождаются волей судьбы...

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:32.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 20:32.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.