Arkadiy
28.05.2011, 17:19
Уважаемые формчане, спасибо за внимание,
прошу сразу не кидать помидорами.
(Гугл шустрил, хелп читал, форум вплоть до 7 страницы поиска - перечитал).
У меня уже есть работающий проект, на подобие виртуальной экскурсии. Жмешь на стрелку - переходишь к Виду и т.д. Стрелки, ссылки и ссылки на фото Видов берутся из XML.
Так как вирт. экскурсия достаточно большая, фото Видов долго грузятся, задача сделать прелоадер сразу для всех Видов.
Проблемы две:
1) У меня есть голая болванка, в которую я подгружаю все элементы Вида, согласно ID.
Т.е. загрузить все фото во все Виды сразу - не получиться. Вопрос - я могу просто загрузить в какойто мувик все эти фото, а потом с кеша (если такое возможно) они будут уже быстро загружаться, хоть и ссылка на них будет всё еще из XML? Или же мне надо делать массив объектов хранящих фото и потом уже брать из массива?
2) Как в моем случае теоретически делается прелоадер?
Пробегаюсь циклом по всем видам и черз movieClipLoader, через listener и метод onLoadProgress поочередно гужу всё (куда)?
Пример XML (часть):
<views>
<view>
<url_id>1</url_id>
<pic_url>http://example.ru/upload/view/2011-05-22_18-44-46_1228936691.jpg</pic_url>
<arrows>
<arrow>
<id>0</id>
<title>Холл</title>
<url>1</url>
</arrow>
<arrow>
<id>2</id>
<title>Зеркальный шкаф в холле</title>
<url>2</url>
</arrow>
</arrows>
</view>
</views>
Пример Флеша:
function arrows(objeXML, var_projeID, view_pic) {
//
for (i=0; i<objeXML.childNodes.length; i++) {
if (objeXML.childNodes[i].childNodes[0].childNodes[0].nodeValue == var_projeID) {
// загрузка фоновой картинки первого вида VIEW
obje_win.obje_loadClip.loadMovie(objeXML.childNodes[i].childNodes[7].childNodes[view_pic].childNodes[1].childNodes[0].nodeValue);
//
var alphaTween:Tween = new Tween(obje_win, "_alpha", Regular.easeOut, 0, 100, 0.8, true);
//
//
for (j=0; j<objeXML.childNodes[i].childNodes[7].childNodes[view_pic].childNodes[2].childNodes.length; j++) {
var id = objeXML.childNodes[i].childNodes[7].childNodes[view_pic].childNodes[2].childNodes[j].childNodes[0].childNodes[0].nodeValue;
obje_win.arrows_clip["strelka"+id]._visible = true;
obje_win.arrows_clip["title"+id].text = objeXML.childNodes[i].childNodes[7].childNodes[view_pic].childNodes[2].childNodes[j].childNodes[1].childNodes[0].nodeValue;
obje_win.arrows_clip["strelka"+id].link = objeXML.childNodes[i].childNodes[7].childNodes[view_pic].childNodes[2].childNodes[j].childNodes[2].childNodes[0].nodeValue;
obje_win.arrows_clip["strelka"+id].onRelease = function() {
createObje(var_projeID, this.link-1);
};
}
}
}
}
прошу сразу не кидать помидорами.
(Гугл шустрил, хелп читал, форум вплоть до 7 страницы поиска - перечитал).
У меня уже есть работающий проект, на подобие виртуальной экскурсии. Жмешь на стрелку - переходишь к Виду и т.д. Стрелки, ссылки и ссылки на фото Видов берутся из XML.
Так как вирт. экскурсия достаточно большая, фото Видов долго грузятся, задача сделать прелоадер сразу для всех Видов.
Проблемы две:
1) У меня есть голая болванка, в которую я подгружаю все элементы Вида, согласно ID.
Т.е. загрузить все фото во все Виды сразу - не получиться. Вопрос - я могу просто загрузить в какойто мувик все эти фото, а потом с кеша (если такое возможно) они будут уже быстро загружаться, хоть и ссылка на них будет всё еще из XML? Или же мне надо делать массив объектов хранящих фото и потом уже брать из массива?
2) Как в моем случае теоретически делается прелоадер?
Пробегаюсь циклом по всем видам и черз movieClipLoader, через listener и метод onLoadProgress поочередно гужу всё (куда)?
Пример XML (часть):
<views>
<view>
<url_id>1</url_id>
<pic_url>http://example.ru/upload/view/2011-05-22_18-44-46_1228936691.jpg</pic_url>
<arrows>
<arrow>
<id>0</id>
<title>Холл</title>
<url>1</url>
</arrow>
<arrow>
<id>2</id>
<title>Зеркальный шкаф в холле</title>
<url>2</url>
</arrow>
</arrows>
</view>
</views>
Пример Флеша:
function arrows(objeXML, var_projeID, view_pic) {
//
for (i=0; i<objeXML.childNodes.length; i++) {
if (objeXML.childNodes[i].childNodes[0].childNodes[0].nodeValue == var_projeID) {
// загрузка фоновой картинки первого вида VIEW
obje_win.obje_loadClip.loadMovie(objeXML.childNodes[i].childNodes[7].childNodes[view_pic].childNodes[1].childNodes[0].nodeValue);
//
var alphaTween:Tween = new Tween(obje_win, "_alpha", Regular.easeOut, 0, 100, 0.8, true);
//
//
for (j=0; j<objeXML.childNodes[i].childNodes[7].childNodes[view_pic].childNodes[2].childNodes.length; j++) {
var id = objeXML.childNodes[i].childNodes[7].childNodes[view_pic].childNodes[2].childNodes[j].childNodes[0].childNodes[0].nodeValue;
obje_win.arrows_clip["strelka"+id]._visible = true;
obje_win.arrows_clip["title"+id].text = objeXML.childNodes[i].childNodes[7].childNodes[view_pic].childNodes[2].childNodes[j].childNodes[1].childNodes[0].nodeValue;
obje_win.arrows_clip["strelka"+id].link = objeXML.childNodes[i].childNodes[7].childNodes[view_pic].childNodes[2].childNodes[j].childNodes[2].childNodes[0].nodeValue;
obje_win.arrows_clip["strelka"+id].onRelease = function() {
createObje(var_projeID, this.link-1);
};
}
}
}
}