Всем доброго дня! Если есть немного времени у профи, помогите пожалуйста разобраться со скриптом. выглядит как вертикальная лента из картинок размером 130x97 и при клике на каждую картинку пользователь переходит на определенную страницу сайта.
Сейчас в скрипте загрузка данных сделана из текстового файла.
файл txt имеет такой вид:

Код:
images_count=3&img_1=3.jpg&img_2=6.jpg&img_3=16.jpg&img_link_1=p3&img_link_2=p6&img_link_3=p16
надо переделать так, чтобы данные брались из XML файла такого вида:

Код:
<?xml version="1.0" encoding="windows-1251" ?>
<items>
<item1>
<imgpath>/images/banner/1.jpg</imgpath>
<link>/ourworks_p3.html</link>
</item1>
<item2>
<imgpath>/images/banner/2.jpg</imgpath>
<link>/ourworks_p6.html</link>
</item2>
<item3>
<imgpath>/images/banner/3.jpg</imgpath>
<link>/ourworks_p16.html</link>
</item3>
</items>
сам скрипт выглядит так:

Код:
function initialization()
{
d_num = 0;
empty_mc_x = 0;
empty_mc_y = 0;
d_mc = 3;
mc_height = 97;
d_empty_mc = d_mc + mc_height;
i = 0;
all_belt.frame_._visible = false;
images = new Array();
images_link = new Array();
texts_vars = new LoadVars();
stage_middle = Stage.height / 2 - 0.500000;
d_frame = 2.150000;
mouse_listener = new Object();
belt_flag = "begin";
} // End of the function
function load_vars()
{
texts_vars.load("/includes/" + folder_name + "/images/vars.txt", texts_vars, "GET");
} // End of the function
function img_load(j)
{
img = images[j];
all_belt["empty_mc_" + j].loadMovie("/includes/" + folder_name + "/images/" + img);
} // End of the function
function mc_creating()
{
images_count = texts_vars.images_count;
if (images_count != undefined && images_count > 0)
{
for (i = 1; i <= images_count; i++)
{
all_belt.createEmptyMovieClip("empty_mc_" + i, -i);
all_belt["empty_mc_" + i]._x = empty_mc_x;
all_belt["empty_mc_" + i]._y = empty_mc_y;
all_belt.frame_.duplicateMovieClip("frame_mc_" + i, i);
all_belt["frame_mc_" + i]._x = empty_mc_x;
all_belt["frame_mc_" + i]._y = empty_mc_y;
mc_direction(all_belt["frame_mc_" + i], i);
empty_mc_y = empty_mc_y + d_empty_mc;
images[i] = texts_vars["img_" + i];
images_link[i] = texts_vars["img_link_" + i];
img_load(i);
} // end of for
belt_length = all_belt._height - d_frame;
//belt_y_end = -897;
belt_y_end = Math.round(Stage.height - 2 * d_mc - belt_length + d_mc);
if (belt_y_end < d_mc)
{
belt_motion(belt_y_end);
} // end if
} // end if
} // End of the function
function mc_direction(mc_name, j)
{
var _l1 = mc_name;
var _l2 = this;
_l1.onRollOver = function ()
{
this.gotoAndPlay("over");
};
_l1.onRollOut = function ()
{
this.gotoAndPlay("out");
};
_l1.onDragOut = function ()
{
this.gotoAndPlay("out");
};
_l1.onReleaseOutside = function ()
{
this.gotoAndPlay("out");
};
_l1.onRelease = function ()
{
img_big_load(j);
};
} // End of the function
function img_big_load(i)
{
var _l1 = "/works_"+images_link[i]+".html";
getURL(String(_l1));
// var _l1 = "/includes/flash/" + folder_name + "/images/" + images_big[i];
// getURL("javascript:window.open(\'" + String(_l1) + "\',\'\',\'width=640,height=480,top=200,left=300,toolbar=no,scrollbars=no,resizable=no,menubar=no,statusbar=no\');void(0);", "");
} // End of the function
function belt_motion(belt_y_end)
{
_root.createEmptyMovieClip("mc", 1000);
mouse_listener.onMouseMove = function ()
{
if (_ymouse >= stage_middle && all_belt._y != belt_y_end)
{
d_y_mouse = _ymouse - stage_middle;
a = d_y_mouse / 68;
belt_up(belt_y_end, a);
} // end if
if (_ymouse < stage_middle && all_belt._y != d_mc)
{
d_y_mouse = _ymouse - stage_middle;
a = d_y_mouse / 68;
belt_down(belt_y_end, a);
} // end if
};
Mouse.addListener(mouse_listener);
} // End of the function
function belt_up(belt_y_end, acc)
{
var _l1 = this;
_root.mc.onEnterFrame = function ()
{
var _l1 = this;
if (all_belt._y > belt_y_end)
{
next_coord = _l1._parent.all_belt._y - acc;
if (next_coord >= belt_y_end)
{
_l1._parent.all_belt._y = _l1._parent.all_belt._y - acc;
}
else
{
all_belt._y = belt_y_end;
delete _l1.onEnterFrame;
} // end if
} // end if
};
} // End of the function
function belt_down(belt_y_end, acc)
{
var _l1 = this;
_root.mc.onEnterFrame = function ()
{
var _l1 = this;
if (all_belt._y < d_mc)
{
next_coord = _l1._parent.all_belt._y - acc;
if (next_coord <= d_mc)
{
_l1._parent.all_belt._y = _l1._parent.all_belt._y - acc;
}
else
{
all_belt._y = d_mc;
delete _l1.onEnterFrame;
} // end if
} // end if
};
} // End of the function
initialization();
load_vars();
texts_vars.onLoad = function (src)
{
if (src != undefined)
{
mc_creating();
} // end if
};
stop ();
начал писать код, но что-то дальше этого

Код:
var randstr = "rndstr="+new Date().getTime()
my_xml = new XML()
my_xml.load("/includes/flash_data.xml?"+rndstr)
также скроллинг ленты картинок вниз должен останавливаться когда они кончаются
иногда он останавливается, а иногда проскакивает дальше...

((
т.е. данная строка работает как то неправильно:

Код:
belt_y_end = Math.round(Stage.height - 2 * d_mc - belt_length + d_mc);
если прописать жестко какое то значение... например 900, то работает всё нормально.. (( но тогда это значение нужно будет вручную менять, если колличество картинок изменилось..
не знаю как дальше распарсить правильно XML и подключить все переменные куда надо.. ( actionscript очень давно не занимался...

((( практически с 2004 года не заглядывал. так что помню очень мало чего.. если не сложно переделать данный код, то подскажите в каком направлении двигаться, если нужно большую часть кода переписывать, или вообще с нуля делать, то могу заплатить за эту работу например если кто-то возьмется быстро сделать, напишите в личку - договоримся о цене, и скину ссылку на саму флешку и все файлы, чтобы было понятно точно как всё должно работать.
Заранее всем спасибо за ответ, и Ваше время.