Форум 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)
-   -   Загрузка txt файла под 6 Flash Player (http://www.flasher.ru/forum/showthread.php?t=109478)

WindWalker 14.03.2008 23:36

Загрузка txt файла под 6 Flash Player
 
Вот тут: http://www.flasher.ru/forum/showthread.php?t=109470
прозвучал вопрос:

Цитата:

Здравствуйте
проблема такова: флешку компилиться под 6 флеш плеер
в ней нужно подгружать значения их текстового файла.
Пишу старый методом loadVariablesNum
но ничё не грузиться, даже если файл лежит локально

вот код:

Код:

loadVariablesNum("total.txt", 0);
function checkParamsLoaded() {
        if (_level0.total == undefined) {
                trace("not yet.");
        } else {
                trace("loaded");
        }
}

ни один трейс не выводиться

текстовый файл выглядит так: total=260,110,440,510,620,
как быть?
подскажите
Отвечаю: функция checkParamsLoaded нигде не вызывается.
Если её переименовать в onEnterFrame, то будет совсем другое дело.

А ещё лучше сделать вот так:

Код:

lv = new LoadVars();
lv.onLoad = function(success) {
  if (success) {
      _root.processData(this.total);
  } else {
      trace ("File not found");
  }
}

function processData(total) {
  var a = total.split(",");
  var b = [];
  for (var i=0; i<a.length; i++) {
      b[i] = Number(a[i]);
  }
  trace (b);
  //... дальше мучаем массивчик как хотим
}

lv.load("total.txt");

А последнюю запятую в файле лучше убрать.



Но тему я создал, чтобы ответить на более интересный вопрос: как загрузить вообще произвольный текстовый файл с любой структурой?

Это можно сделать с помощью такого трюка:
Код:

file = {};
file.load = LoadVars.prototype.load;

file.onData = function (content) {
        if (content == null) {
                trace ("File not found");
        } else {
                trace ("========= FILE CONTENT ==========");
                trace (content);
                trace ("========= END OF CONTENT ========");               
        }
}
file.load("total.txt");

То, что у нас будет в переменной content - это строка, содержащая полное содержимое текстового файла.
Дальше можете парсить его как хотите.

MrPoma 15.03.2008 00:45

Спасибо, хоть и с опозданием на несколько лет :D
зы. ХМЛ лучше.

WindWalker 15.03.2008 00:53

Ну у XML, как у всего на свете, есть свои и плюсы, и минусы. :)

Вообще написал я тут про это, потому что как загрузить XML файл и так ясно.
А вот как загружать произвольный текстовый файл - уже не так очевидно.

BlooDHounD 15.03.2008 02:10

чё-то я не понимаю, зачем это мудатень с прототипами, если событие onData есть и у XML и у LoadVars?

WindWalker 15.03.2008 07:47

Потому что помимо load и onData у них есть много всего, что нам совершенно не нужно.
А так мы делаем девственно чистый объект предназначенный специально для загрузки файла.
Более того - это просто заготовка, из которой можно сделать что-то более значимое, заточенное под определённый формат файла.
И, конечно же, никто не мешает сделать из этого классик.

Кстати, это ещё не мутотень. Мутотень была в самой первой итерации (эх, давно это было), когда я использовал ASNative :)

qazwsx 15.03.2008 08:44

XML сам по себе обьемный и ты будеш грузить много лишнего в отличии от простого тхт файла.


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

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