Форум 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=121143)

soldatoff 08.02.2009 23:36

не могу зациклить флешку
 
Привет, народ!

Делаю баннер.

На самом деле я HTML-кодер, с ActionScript столкнулся впервые вот буквально неделю назад.

Короче, забираю данные из файла, вида (файл vars.htm):
Код:

myVar01=текст сообщенияAAAвторой текст сообщенияAAAну и конечно третий&myVar02=AAA&myVar03=2
Где, myVar01 - тексты баннера, myVar02 - некий разделитель текстов, myVar03 - время показа очередного текста


код выглядит так:
Код AS1/AS2:

var data_lv:LoadVars = new LoadVars ();
data_lv.load("vars.htm");
 
data_lv.onLoad =  function() {
        var texts:Array = this.myVar01.split(this.myVar02);
        var delay:Number = this.myVar03*1000;
        var count:Number = 0;
        setInterval(createTxt,delay,this);
 
        function createTxt(){
                trace("texts[" + count.toString() + "] = " + texts[count].toString()); //данные
 
                createTextField(texts[count],count,0,0,550,100);
                var w = eval(texts[count]);
                w.text = texts[count];
                w.background = "#FFF;"
                count++;
                trace(count); //count
                if(count >= texts.length){
                        count = 0;
                }
        }
}

А проблема в том, что когда я нажимаю Ctrl+Enter -> компилируется флешка и показывает только один проход по массиву с фразами (с указанной задержкой между фразами), НО в окне Output, трейс показывает что проход продолжается, что мне собственно и надо!

Т.е. мне надо, чтобы флешка бесконечно показывала по-очереди фразы из массива texts, а она один раз как бы отрабатывает и все.. попробуйте проверить этот код во флеше?

Я не знаю какими словами объяснить :( ну не специалист я пока еще во флеше!... Помогите пожалуйста разобраться!

Fatality 09.02.2009 00:22

Код AS1/AS2:

var data_lv:LoadVars = new LoadVars();
data_lv.load("vars.htm");
data_lv.onLoad = function()
{
        var texts:Array = this.myVar01.split(this.myVar02);
        var delay:Number = this.myVar03*1000;
        var count:Number = 0;
        _root.createTextField("w",0,0,0,550,100);
        setInterval(createTxt,delay,this);
        function createTxt()
        {
                trace("texts["+count+"] = "+texts[count]);
                w.text = texts[count];
                w.background = "#FFF;";
                count++;
                trace(count);
                if (count>=texts.length)
                {
                        count = 0;
                }
        }
};

Во-первых, зачем каждый раз создавать новое текстовое поле, да еще и с именем типа "текст сообщения" и т.п. Достаточно создать его 1 раз и менять текст каждый. Во-вторых, преобразовывать число в строку в трейсе, нет никакой необходимости, элемент массива text[count] тоже, он и так строка ! С eval-ом тоже бред, но это я так понимаю издержки использования все тех же имен типа "текст сообщения".

soldatoff 09.02.2009 01:39

2 Fatality: :drinks:

Спасибо огромное!!! :yahoo:

Вы меня спасли! :yahoo:


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

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