Форум 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)
-   -   loadVars - проблема (http://www.flasher.ru/forum/showthread.php?t=66032)

BorisL 25.06.2005 15:34

loadVars - проблема
 
Не смог разобраться сам, поэтому обращаюсь к наиболее компетентным, то есть к вам-)

Переменные подгружаю из файла (ниже кусочек):
Код:

num=2
&x_1=100
&y_1=100
&icon_1=icon1.gif
&descr_1=текст
&href_1=url1
&name_1=текст
&x_2=200
&y_2=200
&icon_2=icon2.gif
&descr_2=текст
&href_2=url2
&name_2=текст

Далее мне необходимо размножить один мувик и положить в соответствующие экземпляры нужные переменные.
Код:

this.lv = new LoadVars();
this.lv.load("vars.txt");
this.lv.onLoad = function() {
        for (i=1; i<=this.num; i++) {
                item.duplicateMovieClip('item'+i, i);
                _root['item'+i]._x = this["x_"+i];
                _root['item'+i]._y = this["y_"+i];
                _root['item'+i].name = this["name_"+i];
                _root['item'+i].descr = this["descr_"+i];
                _root['item'+i].href = this["href_"+i];
                _root['item'+i].icon = this["icon_"+i];               
        }
};

При этом происходит следующее: мувик множится, все текстовые переменные (name, descr, href, icon) передаются и выводятся в соответствующих местах все экземпляров, но экземпляры не встают по нужным местам, то есть код
Код:

_root['item'+i]._x = this["x_"+i];
_root['item'+i]._y = this["y_"+i];

почему-то выполняется не верно... может я обращаюсь к координатам не правильно... не смог разобраться.
При этом, если написать:
Код:

_root['item'+i]._x = 100;
_root['item'+i]._y = 100;

То все мувики нормально передвинутся

7thsky™ 25.06.2005 16:26

через лоадварс загружается все правильно, просто в подобных случаях как у тебя будут неправильно парситься числовые значения

Цитата:

num=2
&x_1=100
&y_1=100
&....
ты именно так получаешь? или ввиде строчки?

в любом случае можно парсить

Код:

_root['item'+i]._x = parseInt(this["x_"+i]);
_root['item'+i]._y = parseInt(this["y_"+i])

;

вот посмотри функции parseInt , parseFloat

проблема в том что если после числа у тебя есть пробел то при парсинге переменная будет String

Буньков Максим 25.06.2005 18:19

или пожешь Number юзать, но может быть трабла и в ссылке this попробуй путь явно указывать через _root, но этот глюк редко встречается

7thsky™ 25.06.2005 18:31

Number тут не поможет, так как если после цифры идут еще какие нить символы например пробел то выдаст NaN

вот попробуй :
Код:


trace ('Number: ' + Number ('100 '));
trace ('parseInt: ' + parseInt ('100 '));


BorisL 25.06.2005 19:51

Всем большое спасибо! parseInt помог!


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

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