Форум 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)
-   -   сортировка текста из файла (http://www.flasher.ru/forum/showthread.php?t=75453)

3r0jan 13.02.2006 02:11

сортировка текста из файла
 
может кто подскажет ?
есть текст в текстовом файле
Код:

1:17.00:0.20:2:8:10:8:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:7:5:15:5:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:
1:27.00:0.20:2:10:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:

гружу его в флэш
Код:

var my_xml:XML = new XML();
var my_txt:String;
my_xml.ignoreWhite= true;
my_xml.onLoad=function(ok){
if(ok){
my_txt=''+my_xml;
trace(my_txt);
}
}
my_xml.load('amulets.txt');

далеее есть некий мув который дублируется и в его дубль надо загрузить строку соответствующую номеру этого дубля затем там там её разщипить и присвоить каждое значение из строки определённой переменной возможно ? если да то как ? думал думал и не предумал (((

Король 13.02.2006 02:19

1) строковую переменную можно разбить на массив по идентефикатору
Код:

str = "1,2,3"
arr= str.split(",")
arr даст в итоге [1,2,3]

2)если уж грузишь текст в XML, то почему бы не использовать собственно xml?
3)присваивать в цикле мувикам элементы массива оч просто -
Код:

for(var i =0;i< arr.length, i++){
mc = твой очередной дуплкат
mc.text = arr[i]
}


3r0jan 13.02.2006 02:38

чёт нифига непонял ((( сделал вот так
Код:

stop();
var my_xml:XML = new XML();
var my_txt:String;
my_xml.ignoreWhite= true;
my_xml.onLoad=function(ok){
if(ok){
my_txt=''+my_xml;
trace(my_txt);
}
}
my_xml.load('amulets.txt');
maxpreview = 40;

// количество превьюх
maxpreview_x = 5;
// количество превьюх в одной строке
preview_step_y = 22;
// шаг смещения по Y
preview_step_x = 62;
// шаг смещения по X
count = 1;
preview._x = -preview_step_x+1;
// убираем первый экземпляр за область видимости
preview._visible = 0;
// и делаем его невидимым
    str = my_txt
    arr= str.split(":")
    //arr даст в итоге [1,2,3]
for (i=0; i<=maxpreview; i++) {
        preview.duplicateMovieClip("preview"+i,i);
        preview = this["preview"+i];
        preview.nomer = i;
        preview.mc = arr[i]
        preview._x = preview._x+preview_step_x;
        loadMovie("amulet/amulet"+i+".gif", preview.area);
       
        if (i == (count*maxpreview_x)) {
                count = count+1;
                preview._x = 1;
                preview._y = preview._y+preview_step_y;
        }
}

в дубле кнопка с такой функцией
Код:

but.onRollOver = function() {
        tellTarget ("but") {
                gotoAndStop(2);
        }
        _root.info._visible = 1;
       
        _root.info.info = "ТРЕБУЕТСЯ \nСила: "+sila+"\nЛовкость: "+lovk+"\nВыносливость: "+vin+" "+mc;
};

вот типа к переменным sila ,lovk , vin и там будет дальше ещё куча переменных надо присвоить значение из соответствующей ечейки к примеру sila это ечейка 4 (1:17.00:0.20:2:8:10) тоесть при наведении мышки на кнопку должно показывать "Сила: 2"

3r0jan 13.02.2006 03:40

Вложений: 1
выдаёт ошибки или же пишет унтитлед вместо данных (((
мож глянет кто ?

Madasan 13.02.2006 10:44

Поробуй так:
Код:

var my_xml:XML = new XML();
var fname:String = "amulets.txt";
my_xml.ignoreWhite = true;
my_xml.onData = function(str) {
        my_arr = str.split(",");
        trace(my_arr[0]);
        trace(my_arr[1]);
        trace(my_arr[2]);
        trace(my_arr[51]);
        trace(my_arr[52]);
        //myFunc()
};
my_xml.load(fname);
function myFunc() {
        for (i=0; i<=maxpreview; i++) {
                preview.duplicateMovieClip("preview"+i, i);
                preview = this["preview"+i];
                preview.nomer = i;
                preview.my_txt = my_txt[i];
                trace(preview.my_txt);
                preview._x = preview._x+preview_step_x;
                loadMovie("amulet/amulet"+i+".gif", preview.area);
                if (i == (count*maxpreview_x)) {
                        count = count+1;
                        preview._x = 1;
                        preview._y = preview._y+preview_step_y;
                }
        }
}

и проанализируй что получилось ;)

3r0jan 13.02.2006 11:19

ну да получилось то что надо ))) только он обрабатывает все строки подряд а мне надо чтоб для первого дубля мувика он обрабатывал первую строку для второго 2ю для тиретьего третью и т.д. возможно ?
пробовал вот так
Код:

my_xml.onData = function(str) {
        for (p=0; p<=52; p++) {
                my_arr = str.split(",");
                trace(my_arr[[1],[0]]);
                }
        //myFunc()
}

ничего не получается (((
по ходу дела выход есть вот такой ?
Код:

for (i=0; i<=maxpreview; i++) {
        preview.duplicateMovieClip("preview"+i, i);
        preview = this["preview"+i];
for (p=0; p<=52; p++) {
                my_arr = str.split(",");
                trace(my_arr[p+52]);
                }
        preview.nomer = i;
        preview._x = preview._x+preview_step_x;
        loadMovie("amulet/amulet"+i+".gif", preview.area);
        if (i == (count*maxpreview_x)) {
                count = count+1;
                preview._x = 1;
                preview._y = preview._y+preview_step_y;
        }
}


3r0jan 13.02.2006 12:08

неа тоже неканает (((

Madasan 13.02.2006 12:10

Цитата:

Сообщение от 3r0jan
только он обрабатывает все строки подряд а мне надо чтоб для первого дубля мувика он обрабатывал первую строку для второго 2ю для тиретьего третью и т.д. возможно ?

Можно между строками поставить другой разделитель,не "," , а , например, "&". Тогда:
Код:

my_arr = str.split("&");
        for (i=0; my_arr.length; i++) {
                my_txt[i] = my_arr[i].split(",");
};
trace(my_txt[0][0])

Или действительно пользоваться средствами XML или LoadVars, ведь только тогда тебе понадобиться обработчик onLoad(), а чтобы самому пропарсить подгруженный текст достаточно обработчика onData().

3r0jan 13.02.2006 12:32

всёравно не прёт =/ undefined
в текстовом файле делаю вот так
Код:

1,17.00,0.20,2,8,10,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,5,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0&
45,17.00,0.20,2,8,10,8,0,3,0,0,4,0,0,0,0,0,0,0,0,0,0,7,5,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9&


3r0jan 13.02.2006 14:27

хе хе )))) вот как вышел из положения в самом дубле сделал вот так
Код:

var my_xml:XML = new XML();
var fname:String = "amulets.txt";
my_xml.ignoreWhite = true;
my_xml.onData = function(str) {
        my_arr = str.split("&");
        my_arr = my_arr[nomer].split(",");
       
};
my_xml.load(fname);

всё работает ))) всем спасибо !


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

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