Просмотр полной версии : загрузка в контейнер по пути из xml-файла
1. создаю копию ролика (внутри него есть контейнер)
2. читаю данные (путь к картинке) из xml-файла
3. изменяю contentPath контейнера в только что созданном ролике
Все работает, НО! только если между 2 и 3 есть несколько кадров , то есть некоторое количество времени должно пройти после кода:
this.createEmptyMovieClip("gallery_item_"+i, i);
var b = this["gallery_item_"+i];
b.attachMovie("gallery_item", "gallery_item", 1);
Пауза, необходимая для корректной работы тем больше чем меньше скорость скачивания. По крайней мере такое происходит при SimulateDownloading.
че делать? хотя бы как вызывать 3 сразу же как только это возможно?
screamge
09.05.2007, 13:10
а проверять на onLoad xml не пробовали?
естественно все это просходит толко после onLoad
естественно все это просходит толко после onLoadЛично я этого не вижу.
Вот весь код относящийся к проблеме:
XML_path = "gallery.xml";
gallery_xml = new XML();
gallery_xml.ignoreWhite = true;
gallery_xml.onLoad = function(ok) {
if (ok) {
read_xml();
}
};
gallery_xml.load(XML_path);
read_xml = function() {
len = gallery_xml.childNodes[0].childNodes.length;
for (var i = 0; i<len; i++) {
_root['new'+i] = new Object();
hit = _root['new'+i];
hit.my_path = gallery_xml.childNodes[0].childNodes[i].attributes.small_pic;
hit.my_path2 = gallery_xml.childNodes[0].childNodes[i].attributes.big_pic;
hit.my_link = gallery_xml.childNodes[0].childNodes[i].attributes.link;
hit.my_podpis = gallery_xml.childNodes[0].childNodes[i].attributes.podpis;
trace(hit.my_path);
}
generate_gallery();
}
function generate_gallery() {
start_x=int(gallery_small_pic_coord._x + gallery_small_pic_coord._width/2);
start_y=int(gallery_small_pic_coord._y + gallery_small_pic_coord._height/2);
cur_x=start_x;
cur_y=start_y;
sep_x=5; // количество пикселов в промежутке по горизонтали
sep_y=5; // количество пикселов в промежутке по вертикали
col_max=3; // количество колонок
col_cur=0; // текущее количество колонок
for (var i = 0; i<len; i++) {
this.createEmptyMovieClip("gallery_item_"+i, i);
var b = this["gallery_item_"+i];
b.attachMovie("gallery_item", "gallery_item", 1);
b._y=cur_y;
b._x=cur_x;
cur_x=cur_x+b._width+sep_x;
col_cur++;
if (col_cur>=col_max) {
cur_x=start_x;
cur_y=cur_y+b._height+sep_x;
col_cur=0;
}
hit = _root['new'+i];
trace(hit.my_path);
b.gallery_item.path=hit.my_path;
b.gallery_item.path2=hit.my_path2;
b.gallery_item.link = hit.my_link;
b.gallery_item.podpis = hit.my_podpis;
}
//
// вот этот кусок закомментрен - если сразу попытаться загрузить картинки, то ничего не работает. ее(функцию можно вызывать только спустя некоторое время.
//
//load_pictures();
}
function load_pictures() {
for (var i = 0; i<len; i++) {
this["gallery_item_"+i].gallery_item.load();
}
}
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.