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

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

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

Регистрация: Sep 2010
Сообщений: 4
По умолчанию почему в чате каждые где то секунд 6 скроллер перемещается вверх???

Делаю чат в своем приложении вконтакте,скачал исходник чата,вставил его в приложение,немного подправил скрипт,ну вот одна проблема в том что когда сообщений стает больше чем высота окна вывода сообщений,то склоллер перемещаетца постоянно на самый верх.Причины етому понять немогу,может быть Вы поможете,вот скрипт
Код AS1/AS2:
session = 0;
nlv = new LoadVars();
nxml = new XML();
nxmll = new XML();
nxml.onLoad = function() {
	user_name = nxml.toString();
	user_name = user_name.slice(user_name.indexOf("<user_name>")+11, user_name.indexOf("</user_name>"));
};
nlv.sendAndLoad(api_url("method=getUserInfo"),nxml);
message_i.text = "";
message_i.onSetFocus = function(старыйФокус) {
	key_post = true;
};
message_i.onKillFocus = function(старыйФокус) {
	key_post = false;
};
this.onKeyDown = function() {
	if (key_post) {
		if (message_i.text.slice(0, 1).indexOf("\r") == 0) {
			message_i.text = message_i.text.slice(1, message.length);
		}
		if (message_i.text != "") {
			if (Key.isDown(Key.CONTROL) && Key.isDown(Key.ENTER)) {
				send_message(message_i.text);
				messages.vPosition = messages.maxVPosition;
				key_enter = false;
				key_time = 0;
				get_time = 0;
			}
		}
	}
};
Key.addListener(this);
key_time = 0;
get_time = 0;
messages_get = "";
message_i.type = "dynamic";
dow = true;
this.onEnterFrame = function() {
	if (key_time>15) {
		if (inp) {
			message_i.type = "input";
		}
		key_time = 0;
	}
	if (get_while) {
		if (post_messages.length>63) {
			user_get = post_messages.slice(post_messages.indexOf("<user_name>")+11, post_messages.indexOf("</user_name>"));
			if (user_get == user_name) {
				user_get = "<font color=\"#FF6400\">"+user_get;
			}
			user_messages = post_messages.slice(post_messages.indexOf("<message>")+9, post_messages.indexOf("</message>"));
			user_messages = user_messages.split("-").join("%");
			user_messages = unescape(user_messages);
			messages_get += "<font size=\"14\"><b>"+user_get+user_messages+"\r";
			post_messages = post_messages.slice(post_messages.indexOf("</message>")+10, post_messages.length);
		} else {
			if (messages_text != get_string.slice(get_string.length-200, get_string.length)) {
				get_audio.play();
				messages.vPosition = messages.maxVPosition;
			}
			inp = true;
			messages.text = messages_get;
			messages_text = get_string.slice(get_string.length-200, get_string.length);
			messages_get = "";
			get_time = 0;
			get_while = false;
			if (dow) {
				messages.vPosition = messages.maxVPosition;
				dow = false;
			}
		}
 
	} else {
		if (get_time == 200) {
			nxml.onLoad = function() {
				post_messages = get_string=nxml.toString();
				get_while = true;
			};
			nlv.sendAndLoad(api_url("method=getMessages&session="+session+"&messages_to_get=300"),nxml);
		}
		get_time++;
	}
	key_time++;
};
dat = new Date();
function send_message(message) {
	message_i.type = "dynamic";
	message_i.text = "";
	nxml.onLoad = function() {
		nxml.onLoad = function() {
			get_string = nxml.toString();
			messages_text = get_string.slice(get_string.length-200, get_string.length);
		};
		nlv.sendAndLoad(api_url("method=getMessages&session="+session+"&messages_to_get=300"),nxml);
	};
	message = message.split("").join("<b>");
	message = message.split("").join("<i>");
	message = message.split("").join("<u>");
	message = message.split("").join("<s>");
	message = message.split("[size]").join("<font size=\"21\">");
	message = message.split("[red]").join("<font color=\"#FF0000\">");
	message = message.split("[orange]").join("<font color=\"#EA5E00\">");
	message = message.split("[blue]").join("<font color=\"#0099FF\">");
	message = message.split("[green]").join("<font color=\"#00CC00\">");
	message = message.split("[pink]").join("<font color=\"#FF00FF\">");
	message = message.split("[aqua]").join("<font color=\"#00CCCC\">");
	message = message.split("").join("</b>");
	message = message.split("").join("</i>");
	message = message.split("").join("</u>");
	message = message.split("").join("</s>");
	message = message.split("[/url]").join("</a>");
	message = message.split("[/size]").join("</font>");
	message = message.split("[/red]").join("</font>");
	message = message.split("[/blue]").join("</font>");
	message = message.split("[/green]").join("</font>");
	message = message.split("[/orange]").join("</font>");
	message = message.split("[/pink]").join("</font>");
	message = message.split("[/aqua]").join("</font>");
	dat = new Date();
	if (dat.getHours()<10) {
		hour = "0"+dat.getHours();
	} else {
		hour = dat.getHours();
	}
	if (dat.getMinutes()<10) {
		minut = "0"+dat.getMinutes();
	} else {
		minut = dat.getMinutes();
	}
	message = " ("+hour+":"+minut+"):</font></b> "+message;
	messages.text += "<font size=\"14\"><b><font color=\"#FF6400\">"+user_name+message+"</b></i></u></s></a></font></font>\r";
	message = escape(message);
	message = message.split("%").join("-");
	nlv.sendAndLoad(api_url("method=sendMessage&session="+session+"&message="+message),nxml);
}
if (dat.getHours()<10) {
	hour = "0"+dat.getHours();
} else {
	hour = dat.getHours();
}
if (dat.getMinutes()<10) {
	minut = "0"+dat.getMinutes();
} else {
	minut = dat.getMinutes();
}
nlv.sendAndLoad(api_url("method=sendMessage&session="+session+"&message=-20-28"+hour+"-3A"+minut+"-29-3A-3C-2Ffont-3E-3C-2Fb-3E-20-3Cfont-20size-3D-2211-22-20color-3D-22-23D73200-22-3E-D0-9F-D0-BE-D0-BB-D1-8C-D0-B7-D0-BE-D0-B2-D0-B0-D1-82-D0-B5-D0-BB-D1-8C-20-D0-B7-D0-B0-D1-88-D0-B5-D0-BB-20-D0-B2-20-D0-BF-D1-80-D0-B8-D0-BB-D0-BE-D0-B6-D0-B5-D0-BD-D0-B8-D0-B5-3C-2Ffont-3E"),nxmll);

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

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

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


 


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


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