PDA

Просмотр полной версии : Подгрузка SWF файлов с помощью XML


toha20072008
05.01.2009, 01:51
Уважаемые флэшеры! Мне очень нужна ваша помощь!!
У меня такая проблема - есть темплэйт, сайт на флэше с использованием XML. Все картинки и тексты в этом шаблоне подгружаются при помощи XML.. ну например...


<page name="about">
<image imageUrl="_pic5.png" link="asfunction:link"/>



Грузится эта картинка в контейнер, который задаётся, при помощи такого нехитрого скрипта


onClipEvent (load)
{
imageProperties = _root.getCurrentImageName(0);
loadMovie(_root.url + imageProperties.name, this.cont.pic);
url = imageProperties.linkToOpen;
targetWindow = imageProperties.target;
}



Где getCurrentImageName это функция которая прописана в самом начале фильма, во втором кадре корневого уровня флэш файла, таким скриптом


function getCurrentImageName(imageNumber)
{
sectionNum = getXmlSection(mainObj, "section", "pages");
currentPage = _root.link - _root.firstPageFrame;
imageParams = new Array();
imageParams.name = mainObj.section[sectionNum].page[currentPage].image[imageNumber].imageUrl;
imageParams.linkToOpen = mainObj.section[sectionNum].page[currentPage].image[imageNumber].link;
imageParams.target = mainObj.section[sectionNum].page[currentPage].image[imageNumber].target;
return (imageParams);
}


Ну а сама картинка грузится прелоадером который находится внутри контейнера и имеет вот такой вот скрипт


onClipEvent (load)
{
a = 0;
}
onClipEvent (enterFrame)
{
percent = Math.round(_parent.cont.pic.getBytesLoaded() / _parent.cont.pic.getBytesTotal() * 100);
text = percent + "%";
gotoAndStop(percent);
if (_parent.cont.pic.getBytesLoaded() >= _parent.cont.pic.getBytesTotal() && _parent.cont.pic.getBytesLoaded() > 100 && a != 1)
{
a = 1;
_parent.gotoAndPlay(2);
} // end if
}


ВОПРОС - как мне подгружать вместо картинок swf мувики в те же контейнера??

Добавлено через 6 минут
ВОПРОС - как мне подгружать вместо картинок swf мувики в те же контейнера??

Я новичок во флэше поэтому попытался сделать по накатаному в этом шаблоне, прописал новую функцию getCurrentMovieName


function getCurrentMovieName(movieNumber)
{
sectionNum = getXmlSection(mainObj, "section", "pages");
currentPage = _root.link - _root.firstPageFrame;
movieParams = new Array();
movieParams.name = mainObj.section[sectionNum].page[currentPage].movie[movieNumber].movieUrl;
movieParams.linkToOpen = mainObj.section[sectionNum].page[currentPage].movie[movieNumber].link;
movieParams.target = mainObj.section[sectionNum].page[currentPage].movie[movieNumber].target;
return (movieParams);
} // End of the function



В контейнере поменял скрипт на


onClipEvent (load)
{
movieProperties = _root.getCurrentMovieName(0);
loadMovie(_root.url + movieProperties.name, this.cont.pic);
url = movieProperties.linkToOpen;
targetWindow = movieProperties.target;
}


Ну и естественно в XML файле изменил адрес файла с

<image imageUrl="_pic5.png" link="asfunction:link"/> на
<image imageUrl="_pic5.swf" link="asfunction:link"/>

но к сожалению не сработало...
Ребята - может кто-нибудь сталкивался с подобной проблемой??
Пожалуйста помогите! Буду материально признателен!

amexdesign
05.01.2009, 03:04
возможно что проблема в следующем:
здесь прописанно
function getCurrentMovieName(movieNumber)
а функцию вы вызываете так
imageProperties = _root.getCurrentMovieclipName(0);
замечаете разницу в названии функции? скорее всего должно быть так
imageProperties = _root.getCurrentMovieName(0);

toha20072008
05.01.2009, 14:38
Прошу прощения.. дал неправильный код.. я уже егго исправил в первом посте.
В контейнере я поменял скрипт на


onClipEvent (load)
{
movieProperties = _root.getCurrentMovieName(0);
loadMovie(_root.url + movieProperties.name, this.cont.pic);
url = movieProperties.linkToOpen;
targetWindow = movieProperties.target;
}