Форум 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 может поэтому все эти глюки


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

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