Делаю чат в своем приложении вконтакте,скачал исходник чата,вставил его в приложение,немного подправил скрипт,ну вот одна проблема в том что когда сообщений стает больше чем высота окна вывода сообщений,то склоллер перемещаетца постоянно на самый верх.Причины етому понять немогу,может быть Вы поможете,вот скрипт

Код 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);