Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Подгрузка SWF файлов с помощью XML (http://www.flasher.ru/forum/showthread.php?t=119882)

toha20072008 05.01.2009 01:51

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

Код AS1/AS2:

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


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

Код AS1/AS2:

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

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

Код AS1/AS2:

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);
}

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

Код AS1/AS2:

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

Код AS1/AS2:

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


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

Код AS1/AS2:

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

возможно что проблема в следующем:
здесь прописанно
Код AS1/AS2:

function getCurrentMovieName(movieNumber)

а функцию вы вызываете так
Код AS1/AS2:

imageProperties = _root.getCurrentMovieclipName(0);

замечаете разницу в названии функции? скорее всего должно быть так
Код AS1/AS2:

imageProperties = _root.getCurrentMovieName(0);


toha20072008 05.01.2009 14:38

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

Код AS1/AS2:

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



Часовой пояс GMT +4, время: 21:57.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.