Просмотр полной версии : как подгрузить свку [i] кол-во раз
в главный свф (index.swf) подгружаеться XML (clan.xml)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<clan>
<pers>
<nick>nick1</nick>
<about>about1</about>
</pers>
<pers>
<nick>nick2</nick>
<about>about2</about>
</pers>
<pers>
<nick>nick3</nick>
<about>about3</about>
</pers>
</clan>
так же есть другая флешка (info.swf) она должна подгрузиться в index.swf столько раз, сколько тегов <pers> в clan.xml в разные мувики.
собственно вопрос как подгрузить их?
пишу в index.swf :
function loadXML(loaded) {
if (loaded) {
xmlPers = this.firstChild;
nick = [];
about = [];
total = xmlPers.childNodes.length;
for (i=0; i<total; i++) {
nick[i] = xmlPers.childNodes[i].childNodes[0].firstChild.nodeValue;
about[i] = xmlPers.childNodes[i].childNodes[1].firstChild.nodeValue;
}
}
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("clan.xml");
смотрю скока всего тегов <pers>, вытаскиваю значения с присвоением [i]
Дальше не могу понять что делать... не подскажите?
Создайте мувик-контейнер и с помощью MoviClipLoader'а грузите в него info.swf сколько угодно раз.
У Вас же есть уже цикл, в котором Вы читаете XML. Ну и загружайте новую свфку при каждой итерации по персу. (Хотя, имхо, я бы лучше аттачил с либы. Или допускается ситуация отсутствия персов?))))
ээээ... так не работает...что не так?
function loadXML(loaded) {
if (loaded) {
xmlPers = this.firstChild;
nick = [];
about = [];
total = xmlPers.childNodes.length;
for (i=0; i<total; i++) {
nick[i] = xmlPers.childNodes[i].childNodes[0].firstChild.nodeValue;
about[i] = xmlPers.childNodes[i].childNodes[1].firstChild.nodeValue;
createEmptyMovieClip("container"+[i], getNextHighestDepth());
container[i].loadMovie("info.swf")
};
};
};
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("clan.xml");
function loadXML(loaded) {
if (loaded) {
xmlPers = this.firstChild;
nick = [];
about = [];
total = xmlPers.childNodes.length;
for (i=0; i<total; i++) {
nick[i] = xmlPers.childNodes[i].childNodes[0].firstChild.nodeValue;
about[i] = xmlPers.childNodes[i].childNodes[1].firstChild.nodeValue;
createEmptyMovieClip("container"+[i], getNextHighestDepth());
container[i].loadMovie("info.swf")
};
};
};
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("clan.xml");
obi, так тоже не подгружает =(...пробовал так...но тоже не работает
function loadXML(loaded) {
if (loaded) {
xmlPers = this.firstChild;
nick = [];
about = [];
total = xmlPers.childNodes.length;
for (i=0; i<total; i++) {
nick[i] = xmlPers.childNodes[i].childNodes[0].firstChild.nodeValue;
about[i] = xmlPers.childNodes[i].childNodes[1].firstChild.nodeValue;
createEmptyMovieClip("container"+[i], getNextHighestDepth());
var infoLoader:MovieClipLoader = new MovieClipLoader();
infoLoader.loadClip("info.swf", container[i]);
};
};
};
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("clan.xml");
Что еще за container[i] ?
function loadXML(loaded) {
if (loaded) {
xmlPers = this.firstChild;
nick = [];
about = [];
total = xmlPers.childNodes.length;
for (i=0; i<total; i++) {
nick[i] = xmlPers.childNodes[i].childNodes[0].firstChild.nodeValue;
about[i] = xmlPers.childNodes[i].childNodes[1].firstChild.nodeValue;
var clip:MovieClip = createEmptyMovieClip("container"+[i], getNextHighestDepth());
clip.loadMovie("info.swf")
};
};
};
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("clan.xml");
и как теперь отправить значение nick[i] в container[i]?
Элементарно)))) Надо просто грузить не в сам clip, а создавать в нем пустой мувиклип и загружать свф в него, а данные хранить в контейнере (clip, "container"+i). Просто после загрузки внешней свф в клип тот теряет "неродные" свойства. А контейнер их запомнит, потому что в него не будет загружаться ничего, он не поменяется))
Ну примерно так:
function loadXML(loaded) {
if (loaded) {
xmlPers = this.firstChild;
nick = [];
about = [];
total = xmlPers.childNodes.length;
for (i=0; i<total; i++) {
nick[i] = xmlPers.childNodes[i].childNodes[0].firstChild.nodeValue;
about[i] = xmlPers.childNodes[i].childNodes[1].firstChild.nodeValue;
var clip:MovieClip = createEmptyMovieClip("container"+[i], getNextHighestDepth());
var informer:MovieClip = clip.createEmptyMovieClip("informer", 1);
clip.id = i;
informer.loadMovie("info.swf")
};
};
};
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("clan.xml");
////
trace("клип: "+container3+"\nNick: "+nick[container3.id]+"\nabout: "+about[container3.id])Ну только трейс надо после загрузки делать))) loadMovie уже сто лет не используют, загрузку не отловить.
Ну и, конечно, Вы можете хранить ник и описание не в массиве, а в свойствах самого контейнера, если нужно, также как id))
просто в info.swf подгружаеться другой XML, а ссыслка на него следующая "www.site.ru/" + nick + ".xml"
Вот набросал тебе исходник.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.