Форум 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)
-   -   "Динамичные" ссылки (http://www.flasher.ru/forum/showthread.php?t=183900)

SlooN 04.09.2012 19:27

"Динамичные" ссылки
 
Доброго времени суток. Искал решение проблемы, но не нашел, может просто не знаю как найти. Даже не проблема, а решение одной задачи:
Есть флеш, "аля" меню, много анимированных кнопок и так далее, стоят ссылки. Ссылки, как мы знаем, прописываются в AS. Возникла мысль, а есть ли возможность вот эти ссылки воткнуть в XML? Т.е. если "тема №1" переедет на другой адрес, то не нужно менять адрес в AS, а можно сменить его/их в XML файле.

mooncar 04.09.2012 21:20

Да, разумеется, так можно и нужно делать.

SlooN 06.09.2012 07:18

А как это сделать, подскажите.

mooncar 06.09.2012 10:46

Использовать класс XML.
Вы ранее не использовали внешние xml-файлы для конфигурирования данных во флешке?
Для начала воспользуйтесь поиском, готового примера под рукой прямо сейчас нет, но на форуме эта тема часто обсуждалась.

SlooN 06.09.2012 12:40

К сожалению пока не приходилось, правил готовые. Будем искать.

dark256 12.09.2012 11:32

Код AS1/AS2:

function LoadDat(){
 
        if ( local() ){
                urlxml = "constructor.txt"
        } else {               
                urlxml = "constructor.txt?hash="+random(9999999)+"&CRC="+random(9999999)
        }
 
        var prof:XML = new XML();
        prof.ignoreWhite = true;
        prof.load(urlxml);
        ShowLoad( prof, desc )               
        prof.onLoad = function(success) {
                if (success)
                {       
                        if (prof.status != 0){
                                var errorMessage:String;
                                switch (prof.status)
                                {
                                        case -2 :
                                                errorMessage = "A CDATA section was not properly terminated.";
                                                break;
                                        case -3 :
                                                errorMessage = "The XML declaration was not properly terminated.";
                                                break;
                                        case -4 :
                                                errorMessage = "The DOCTYPE declaration was not properly terminated.";
                                                break;
                                        case -5 :
                                                errorMessage = "A comment was not properly terminated.";
                                                break;
                                        case -6 :
                                                errorMessage = "An XML element was malformed.";
                                                break;
                                        case -7 :
                                                errorMessage = "Out of memory.";
                                                break;
                                        case -8 :
                                                errorMessage = "An attribute value was not properly terminated.";
                                                break;
                                        case -9 :
                                                errorMessage = "A start-tag was not matched with an end-tag.";
                                                break;
                                        case -10 :
                                                errorMessage = "An end-tag was encountered without a matching start-tag.";
                                                break;
                                        default :
                                                errorMessage = "An unknown error has occurred.";
                                                break;
                                }
                                STAT.text += "\nXML Structure Error:\n"+prof.status+" - "+errorMessage
                        }
                        else
                        {
                                var node = prof.firstChild
                                trace("XML LOAD NODES:"+node.childNodes.length+" NodeName:"+node.nodeName)
 
                                for ( var T in node.attributes){
                                        trace(T+"="+node.attributes[T])
                                        OPTIONS[T] = node.attributes[T]
                                }
 
 
                                for ( var i=0; i<node.childNodes.length; i++)
                                {
                                        var nodeC = node.childNodes[i]
                                        //trace( "-------------"+nodeC.nodeName )
                                        switch ( nodeC.nodeName )
                                        {
                                                case "COLORS":
                                                        for ( var T in nodeC.attributes){
                                                                //trace("color Options: "+T+"="+nodeC.attributes[T])
                                                                COLORS[T] = nodeC.attributes[T]
                                                        }
                                                        COLORS.DAT = new Array()
                                                        for ( var j=0; j<nodeC.childNodes.length; j++)
                                                        {
                                                                var COL = COLORS.DAT[COLORS.DAT.length] = new Object()
                                                                var nodeL = nodeC.childNodes[j]
 
                                                                for ( var T in nodeL.attributes) {
                                                                        COL[T] = nodeL.attributes[T];
                                                                        //trace("          >"+T+"="+COL[T] + " / " + nodeL.attributes[T] )
                                                                }
                                                        }
                                                break;
                                        }
                                }
                                _root.gotoAndPlay(2)
                        }                               
                }
                else
                {
                        STAT.text = "XML LOAD ERROR: "+urlxml
                }
        }
}

Примерный вид ХМЛ-я

Код:

<?xml version="1.0" encoding="UTF-8"?>
<CONSTRUCTOR editor="true">

        <COLORS bigURL="http://mysite.ru/images/" miniURL="http://mysite.ru/preview/" >
                <mat name="Черный" coler="101015"        href="black.jpg"        src="b285eddbee35437578faf23e34d65f2d.jpg" />
                <mat name="Голубой" coler="5E7F8E"        href="blue.jpg"                src="66914e303a9eda73de9d7046e7e3cd4d.jpg" />
                <mat name="Синий" coler="222439"        href="cyan.jpg"                src="ab102177bbaa5bd211686f8f9d5d651d.jpg" />
                <mat name="Фиолетовый" coler="77325E"        href="fiolet.jpg"        src="c3e7de118bdf55389360fb58d69a419a.jpg" />
                <mat name="Серый" coler="798287"        href="gray.jpg"                src="44ee0fdf6ca874fd7c602b7bf0742a26.jpg" />
                <mat name="Зеленый" coler="02471B"        href="green.jpg"        src="6801cc33fab8f908152f548a5e649a7d.jpg" />
                <mat name="Оранжевый" coler="DD3005"        href="orange.jpg"        src="e8942d666b1042a01b5d2c32a7269a84.jpg" />
                <mat name="Красный" coler="AF0102"        href="red.jpg"                src="80004d7ddf6f031f772b4345414e646d.jpg" />
                <mat name="Серебристый" coler="ADB3C3"        href="silver.jpg"        src="1ab4f22dc6ef26fe5852833c80c1b306.jpg" />
                <mat name="Белый" coler="EEEEFF"        href="white.jpg"        src="ef59eda1e6e3f320a6dfc50d162bede3.jpg" />
                <mat name="Желтый" coler="DFA807"        href="yellow.jpg"        src="3b674872249c5150d0067706afb28e24.jpg" />
        </COLORS>

        <PARTS>
        </PARTS>

</CONSTRUCTOR>



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

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