Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Чтение переменных из txt (http://www.flasher.ru/forum/showthread.php?t=67850)

3dmax 12.08.2005 18:25

Чтение переменных из txt
 
Вобщем у меня возникла такая проблема
из файла считую значения переменных но цифры не воспринимаются как цифры тоесть я не могу делать с ними арифметич операции. Я уже пробовал преобразовывать их Функцией Number() и другими- не помогает
как быть ?
-----------------------------
извиняюсь если похожая тема есть , но я ее не нашел
если есть дайте ссылку

Жень Шень 12.08.2005 18:27

Исходник б посмотреть, а так гадать... :rolleyes:

motor4ik 12.08.2005 19:14

попробй trace что скажет :)

3dmax 12.08.2005 20:09

Вобщем фигня какая-то:
у меня в файле хранятся x=100 &y=100 и тд
пишу trace(tipeof(Number(x))); пишет number но все равно при операциях пишет Nan(не является числом) а иногда если еще че-нить напишу несущественное
пишет undefined

а вот сам код
loadVariables("vars1.txt", "_root"); // загружаю переменные x=100.&y=100 из файла vars1.txt
createEmptyMovieClip("container", 1);
x1=Number(x); //преобразовую в число и присваиваю люб переменной
c=10+x1 //любая арифметич операция и присвоение люб переменой
trace(с);
в итоге пишеться Nan :confused:

silin 13.08.2005 00:03

как выход из положения
Код:

loadVariables("vars1.txt", "_root"); // загружаю переменные x=100.&y=100 из файла vars1.txt
this.onEnterFrame=function(){
        if(x!==undefined){
                delete this.onEnterFrame;
                trace(typeof x+' : '+x+ ' : '+Number(x)+' : '+parseFloat(x))//string : 100  : NaN : 100
                x1=parseFloat(x);
                c=10+x1
                trace(c); //110
        }
}

а почему Number() не работает не сумел понять
зы: сори, все решилось банально просто: у меня в файле стоял пробел перед &y=100 - убрал и заработала Number()
Код:

loadVariables("vars1.txt", "_root");
this.onEnterFrame=function(){
        if(x){
                delete this.onEnterFrame;
                x1=Number(x);
                c=10+x1
                trace(c); //110
        }
}

т.е. выходит что Number не пытается преобразовать 'неправильную' строку как parseFloat, а дает NaN
почему у тебя не работает (из-за подобного пробела или потому что пытаешься использовать, не дождавшись загрузки) уж сам гляди..

motor4ik 15.08.2005 11:13

у меня недавно такая же тема была!! Number не хотел ниче делать, и писал потом NaN!
Я из Xml считывал аргумент x
<moto>x</moto>
вот ниче не мог с ним сделать!! че за фигня???

motor4ik 15.08.2005 11:15

пробелов никаких небыло! т.е. trace показывал значение x , а сделать с ним ниче не мог!!! ну вместо x понятно было написано число! <moto>26</moto>

unlexx 15.08.2005 11:20

просто считывается неверный тип данных, вместо стринга объект. поэтому чтоб получить корректно данные надо сделать следующее.
бла_бла = Number(Х_данные.toString());

motor4ik 15.08.2005 11:31

все верно! спасибо!! :)

3dmax 16.08.2005 13:29

Цитата:

Сообщение от unlexx
просто считывается неверный тип данных, вместо стринга объект. поэтому чтоб получить корректно данные надо сделать следующее.
бла_бла = Number(Х_данные.toString());

Я не знаю как сказал silin у меня получилось, причем убрал пробелы в тектовике и только тогда получилось, а бла_бла = Number(Х_данные.toString()); чето ниче не дало все равно пишет Nan.
Незнаю но мне кажется что от того что у меня 2004 mx может поэтому все эти глюки

3dmax 16.08.2005 13:33

У меня вопрос к silin-у я так понял что только внутри этой функции видно эти переменные, как только пытаюсь сделать trace() снаружи функции пишет undefined
получается все надо делать только внутри этой функции this.onEnterFrame=function()
а если надо значения передать куда-нить еще как быть?

silin 16.08.2005 13:44

суть не в том, что переменные видно внутри onEnterFrame, а в том что их видно после загрузки,
onEnterFrame для этого (чтоб отследить загрузку) и использовалась..
см. еще LoadVars class, да и вообще тема избитая..

unlexx 16.08.2005 13:44

а может они у тебя просто не успевают загрузиться?
ты протрейсь переменные загружаемые
(пока писал уже по теме ответили ) :cool:

3dmax 16.08.2005 14:35

Да они внатуре не успевают загрузится сделал еще 1 кадр там написал gotoAndPlay(1) сначала написало 3 штуки Nan а потом намана,
вот только попытался убрать этот кадр и в 1-ом где весь код находиться
попытался поставить все в цикле пошли сплошные наны, ну мне кажеться шо надо не все в цикл засунуть или может что-то одно буду пробовать

unlexx 16.08.2005 14:43

присваивай сначала переменным какие-либо значения и потом зацикливай кадр пока не выполнится условие что все загружаемые переменные сменили свои значения

3dmax 16.08.2005 15:59

Мляяяя херня какая-то в цикле, который в 1 кадре нифига не получатся он переменные не хочет грузить, только если в др. кадре ставлю gotoadplay тогда грузит, ну и бред какой-то :confused:


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

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