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

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

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

Регистрация: Oct 2010
Сообщений: 3
По умолчанию Чат вконтакте

Есть радио слитое с чатом.
вот
Но движок у чата слабенький, там много багов:
1) Когда новые сообщения появляются, приходится перелистывать скроллпад вниз. Хорошо бы сделать, чтобы автоматом перелистывалось.
2) Нету статистики онлайн пользователей.

Буду рад вашей помощи!
Это код только для чата, если понадобится ещё и код радио, то напишите.
Код AS3:
import vk.*;
//импотритуем все что нам надо
 
var api_id:Number =1928187;//ID приложения, которое мы получили вначале
var api_secret:String = "QbZcrMRTXo";//Ключ приложения, которое мы получили вначале
var viewer_id:Number;//id пользователя который просматривает приложение
var url_loader1:URLLoader = new URLLoader();//лоадеры
var url_request1:URLRequest = new URLRequest();
var url_loader2:URLLoader = new URLLoader();
var url_request2:URLRequest = new URLRequest();
var url_loader3:URLLoader = new URLLoader();
var url_request3:URLRequest = new URLRequest();
var api:VkApiNode;//создаем переменную класса
var query:String;
var timer:Timer = new Timer(2500);//таймер, по срабатыванию которого будем обновять поле сообщений
var save:XML=new XML();//XML который хранит сообщения
var VkAvatar:Loader = new Loader();//Лоадер для аватара
var VkAvatarUrl:URLRequest = new URLRequest();//путь аватара
var wrapper:Object;//обьект <<контейнер>>, который загружает в себя приложение
 
this.addEventListener( Event.ADDED_TO_STAGE, onAddedToStage );//событие произойдет, когда контейнер полностью загрузит приложение
 
function onAddedToStage(e: Event):void {
	Security.allowDomain("*");
	stage.dispatchEvent(new Event(Event.DEACTIVATE));//решение проблемы неработоспособности некоторых элементов
	stage.dispatchEvent(new Event(Event.ACTIVATE));
	wrapper = Object(this.parent.parent);//определяем контейнер
	viewer_id = wrapper.application.parameters.viewer_id;//передаем переменной знчение id просматривающего приложение
	timer.start();//запускаем таймер
 
	stage.addEventListener(Event.ENTER_FRAME, Emess);//добавляем слушатели
	btn.addEventListener(MouseEvent.CLICK, onMessGo);
	timer.addEventListener(TimerEvent.TIMER, onGetMess);
	Mes_tf.addEventListener(KeyboardEvent.KEY_DOWN, onMessOtpr);
 
	api=new VkApiNode(viewer_id,api_id,api_secret);//загружаем профиль пользователя и самый маленький аватар(photo_medium и photo_big большее размеры), который просматривает приложение
	query=api.getProfiles([viewer_id], ['photo']);
	url_request3=new URLRequest(query);
	url_loader3=new URLLoader;
	url_loader3.addEventListener(Event.COMPLETE, EComplet2);//событие произойдет когда профиль загрузится
	url_loader3.load(url_request3);
}
 
function EComplet2(e:Event):void
{
	var XmlO:XML = new XML(url_loader3.data);//создаем переменную хранящую профиль
	VkAvatarUrl = new URLRequest(XmlO.children()[0].photo);//загружаем аватар
	VkAvatar.load(VkAvatarUrl);
	VkAvatar.contentLoaderInfo.addEventListener(Event.COMPLETE, onVkAvatar);//событие произойдет когда аватар загрузится
}
function onVkAvatar(e:Event):void
{
	VkAvatar.x = 2;
	VkAvatar.y = 2;
	addChild(VkAvatar);//добавляем на сцену аватар
}
function onMessOtpr(e:KeyboardEvent):void
{
	if(e.keyCode == 13)//если пользавеиель нажал клавишу Enter
	{
		if(Mes_tf.text !== "")//если пое для ввода сообщений не пустое
		{
			api=new VkApiNode(viewer_id,api_id,api_secret);//деаем запрос и ставим сообщение в очередь
  			query=api.sendMessage(Mes_tf.text);
			url_request1=new URLRequest(query);
   			url_loader1=new URLLoader;
   			url_loader1.load(url_request1);
			Mes_tf.text = "";
		}
	}
}
 
function Emess(e:Event):void
{
	if(Mes_tf.text == "")//если поле пустое на кнопку нажать нельзя
	{
		btn.enabled = false;
	}else{//если нет то можно
		btn.enabled = true;
	}
}
function onMessGo(e:MouseEvent):void
{
	api=new VkApiNode(viewer_id,api_id,api_secret);//деаем запрос и ставим сообщение в очередь
    query=api.sendMessage(Mes_tf.text);
	url_request1=new URLRequest(query);
    url_loader1=new URLLoader;
    url_loader1.load(url_request1);
	Mes_tf.text = "";
}
function onGetMess(e:TimerEvent):void
{
	api=new VkApiNode(viewer_id,api_id,api_secret);//загружаем очередь сообщений
    query=api.getMessages();
	url_request2=new URLRequest(query);
    url_loader2=new URLLoader;
    url_loader2.addEventListener(Event.COMPLETE, EComplet);
    url_loader2.load(url_request2);
}
function EComplet(e:Event):void {
	if(XML(url_loader2.data).message_info !== null)//если в очереди хоть что-то есть
	{
		save = new XML(url_loader2.data);//передаем XML полученные данные
		for(var i:int=0; i<save.length(); i++)//запускаем цикл
		{
			if(save.children()[i].user_id == viewer_id)//если данное сообщение отправленно пользователем, который просматривает приложение
			{
				pole.htmlText += '<b><font color="#ff0000">' + save.children()[i].user_name + "</font></b>: " + save.children()[i].message;//добавляем строку с его именем и сообщением без ссылки и красного цвета
			}else{//если это отправил другой пользователь
				pole.htmlText += '<b><font color="#000080"><a href="http://vkontakte.ru/id'+save.children()[i].user_id+ '">' + save.children()[i].user_name + '</a>'+ "</font></b>: " + save.children()[i].message;//добавляем строку с его именем с ссылкой на его страничку синего цвета
			}
		}
	}
}
Буду рад вашему движку чата, с которым будет работать код, представленный ниже.
Код AS3:
var url:String="http://maddyson.listen.moeradio.ru:10000/maddyson";
var music:SoundChannel;
var request:URLRequest=new URLRequest(url);
var sound:Sound = new Sound();
sound.load(request);
music=sound.play();
SoundMixer.soundTransform = new SoundTransform(0.4);


Последний раз редактировалось a0105666; 01.10.2010 в 18:16. Причина: дополнил
Старый 01.10.2010, 18:41
Hidest вне форума Посмотреть профиль Отправить личное сообщение для Hidest Найти все сообщения от Hidest
  № 2  
Ответить с цитированием
Hidest
 
Аватар для Hidest

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Вы хотите, чтобы вам тут кто-то что-то сделал? Вам в вакансии.... Если хотите сделать сами, но не получается - задавайте конкретный вопрос.

Старый 01.10.2010, 18:41
a0105666 вне форума Посмотреть профиль Отправить личное сообщение для a0105666 Найти все сообщения от a0105666
  № 3  
Ответить с цитированием
a0105666

Регистрация: Oct 2010
Сообщений: 3
Как сделать, чтобы автоматом перелистывался чат?

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

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
TextField#scrollV и TextField#maxScrollV вам в помощь

Старый 02.10.2010, 16:08
a0105666 вне форума Посмотреть профиль Отправить личное сообщение для a0105666 Найти все сообщения от a0105666
  № 5  
Ответить с цитированием
a0105666

Регистрация: Oct 2010
Сообщений: 3
Цитата:
Сообщение от Hidest Посмотреть сообщение
TextField#scrollV и TextField#maxScrollV вам в помощь
и в какое место и как именно вписать операторы?
я подставлял в код, но пишет ошибки:
Цитата:
1093: Syntax error. TextField#scrollV
1093: Syntax error. TextField#maxScrollV
1071: Syntax error: expected a definition keyword (such as function) after attribute TextField, not scrollV.


Последний раз редактировалось a0105666; 02.10.2010 в 17:23.
Старый 01.10.2010, 18:53
andrew911 вне форума Посмотреть профиль Отправить личное сообщение для andrew911 Найти все сообщения от andrew911
  № 6  
Ответить с цитированием
andrew911

Регистрация: Mar 2007
Сообщений: 545
Во вконтакте есть пример и исходники чата.

var api_secret:String = "ХХХХХХХ";//Ключ приложения, которое мы получили вначале
это лучше не светить, хотя вытащить из флешки тоже не проблема конечно.

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
это лучше не светить
Да ладно. Он бесполезен для того, кто его вытащит
__________________
...вселенская грусть

Старый 07.10.2010, 23:46
Rembrant вне форума Посмотреть профиль Отправить личное сообщение для Rembrant Найти все сообщения от Rembrant
  № 8  
Ответить с цитированием
Rembrant
 
Аватар для Rembrant

блогер
Регистрация: Sep 2010
Сообщений: 82
Записей в блоге: 2
Код AS3:
txt.scrollV=txt.maxScrollV;
после каждого добавления текста в чат.
txt - это ваше текстовое поле

Старый 09.10.2010, 18:16
scytargon вне форума Посмотреть профиль Отправить личное сообщение для scytargon Найти все сообщения от scytargon
  № 9  
Ответить с цитированием
scytargon

Регистрация: Sep 2010
Сообщений: 13
Отправить сообщение для scytargon с помощью ICQ
Использую тот же самый движок чата, в последней опере при загрузке вылазит ошибка:
Код:
TypeError: Error #1010: Термин не определен и не имеет свойств.
	at chatflaps_fla::MainTimeline/EComplet()
	at flash.events::EventDispatcher/dispatchEventFunction()
	at flash.events::EventDispatcher/dispatchEvent()
	at flash.net::URLLoader/onComplete()
Причем, если ее проигнорировать, то дальше все прекрасно работает, как ни в чем не бывало. Как избавиться от ошибки?

Старый 09.10.2010, 18:53
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 10  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
Для начала послать код в студию.
А еще лучше -- открыть справочник и\или учебник по флешу. Хотя бы с официального сайта.

А в других браузерах что?
Совет -- пользоваться дебаговым плеером и каким-нибудь плагином типа FlashTracer.

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

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

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


 


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


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