Форум 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)
-   -   random в ActionScript (http://www.flasher.ru/forum/showthread.php?t=119858)

CasperKZ 03.01.2009 19:36

random в ActionScript
 
как можно вытащить из XML файла переменную рандомом?

допустим там много вопросов...

<question id="3" Nname="Вопрос1">
<question id="3" Nname="Вопрос2">
<question id="3" Nname="Вопрос3">
<question id="3" Nname="Вопрос4">
и так далее

AlexCooper 03.01.2009 19:39

Типизация ХМЛ

<?xml version="1.0" encoding="UTF-8"?>
<question1 id="3" Nname="Вопрос1"></question1>
<question2 id="3" Nname="Вопрос2"></question2>
...................
<question3 id="3" Nname="Вопрос3"></question3>

Код AS1/AS2:

index= new XML(); 
 
    index.load('http://путь/имя.xml');
 
    index.ignoreWhite=true;
 
    function razbor_xml (xml)
    {
 
        if (xml.status != 0)
        {
            trace ('XML документ содержит ошибку');
            return;
        }
 
        array = [];
        array = xml.childNodes;
 
        i=Math.round(Math.random()*array.length);
        DataXML= index.childNodes[i].attributes["Nname"];
    }
 
    index.onLoad = function ()
    {
        razbor_xml (index);
    };

Проверьте интервал Раднома.

Dima_DPE 07.01.2009 02:11

Имхо, правильнее заменить Math.round на Math.floor!

dimarik 07.01.2009 03:41

Дима, почему? =)

DarkLight 07.01.2009 04:27

dimarik, иначе Math.random()*array.length может после округления дать array.length, и мы выйдем за пределы массива тут:
Код AS1/AS2:

 DataXML= index.childNodes[i].attributes["Nname"];


Dima_DPE 07.01.2009 13:52

dimarik, DarkLight совершенно прав!


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

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