Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Простой вопрос (http://www.flasher.ru/forum/showthread.php?t=47872)

Sheeva 10.08.2003 20:27

Простой вопрос
 
Вопрос, у меня в лаере записана функция, которая должна возвращать переменные, но при её вызове, переменные отображаются как undefined ?
ПОЧЕМУ ?
Помогите плиз...

Пушистик 10.08.2003 21:11

:|
 
пАтаму что функция должна их вернуть! через return ...

Sheeva 10.08.2003 21:24

дак там есть ретурн, но при вызове, он переменные не возвращает...

Пушистик 10.08.2003 22:29

значит непраильно вызвал....
 
область видимость у функций тоже есть!....откуда вызываешь?

Sheeva 10.08.2003 22:53

из мувика:
onClipEvent (load) {
gVars = _root.loadParam(3);
trace(gVars);
}
но трасировка, показывает пустое окно...

а когда пишу:
onClipEvent (enterFrame) {
gVars = _root.loadParam(3);
trace(gVars);
}
то всё нормально, но мне нужно именно при load...

кроме того я не могу вызвать эти переменные в других мувиках, приходится запускать функцию снова...

Пушистик 10.08.2003 23:00

не знаю как ты там делал:)
 
Вложений: 1
:)

Sheeva 10.08.2003 23:19

это функция...
Код:

arr = [];
function loadParam(s) {
        myXML = new XML();
        myXML.ignoreWhite = true;
        myXML.load("cfg/config.xml");
        myXML.onLoad = function(success) {
                if (success == true) {
                        myXML = myXML.firstChild;
                        if (s == 0) {
                                myXML = myXML.childNodes[0];
                        }
                        if (s == 1) {
                                myXML = myXML.childNodes[1];
                        }
                        if (s == 2) {
                                myXML = myXML.childNodes[2];
                        }
                        if (s == 3) {
                                myXML = myXML.childNodes[3];
                        }
                        for (i=0; i<myXML.childNodes.length; i++) {
                                arr[i] = myXML.childNodes[i].attributes.value;
                        }
                }
        };
        return arr;
}

а это вызов...
Код:

onClipEvent (load) {
        gVars = _root.loadParam(3);
        trace(gVars);
}


HELP PLZ !!!

Пушистик 10.08.2003 23:47

ну десь я те особо помочь не могу......т.к. нету XMLя...

но скажу что обишка вот тут:

Код:

for (i=0; i<myXML.childNodes.length; i++) {
        arr[i] = myXML.childNodes[i].attributes.value;
}

и еще тут наеврно:

myXML = myXML.firstChild;
ну и дальше...

попробуй так:

Код:

arr = [];
function loadParam(s) {
    myXML = new XML();
    myXML.ignoreWhite = true;
    myXML.load("cfg/config.xml");
    myXML.onLoad = function(success) {
        if (success == true) {
            mXML = myXML.firstChild;
            if (s == 0) {
                mXML = myXML.childNodes[0];
            }
            if (s == 1) {
                mXML = myXML.childNodes[1];
            }
            if (s == 2) {
                mXML = myXML.childNodes[2];
            }
            if (s == 3) {
                mXML = myXML.childNodes[3];
            }
            for (i=0; i<myXML.childNodes.length; i++) {
                arr.push(mXML.childNodes[i].attributes.value);
            }
        }
    };
    return arr;
}


Sheeva 11.08.2003 00:08

всё равно не катит :(

а XML такой:
Код:

<slotmachine>
<counters>
<all value="10"/>
</counters>
<param>
<slot1 value="1"/>
<slot2 value="2"/>
<slot3 value="1"/>
</param>
<slots>
<slot1 value="1"/>
<slot2 value="2"/>
<slot3 value="3"/>
<slot4 value="4"/>
<slot5 value="5"/>
<slot6 value="6"/>
</slots>
<control>
<date value="10-08-2003"/>
<game value="1"/>
</control>
</slotmachine>

Есть ещё варианты ?

Nox Noctis 11.08.2003 02:01

1. вызвал загрузку
2. ПОДОЖДИ пока загрузится
3. обработай

вышенаписанное рекомендуется к произнесению в качесве молитвы перед сном, перед едой и перед включением компа :)

— ты вызываешь загрузку, потом в ОНЛОАДЕ пишешь заполнение массива (т.е. когда загрузится хмл, заполнится массив arr)
— потом ты вдруг возвращаешь еще не заполненный массив arr как будто уже все загрузилось и отпарсилось...


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

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