Форум 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)
-   -   for в function (http://www.flasher.ru/forum/showthread.php?t=73541)

benladen 25.12.2005 02:12

for в function
 
когда я нажимаю на кнопку у меня вызывается функция updatethumb, которой я передаю параметры z,z2
trace показывает все как нужно (т.е. цикл вроде как работает), "но есть одно но", изображения как были прежними, так и остаются. через debug переменная image не изменяется. не могу понять в чем дело, вроде делаю все правильно. будьте, добры, подскажите, плз.

Код:

function updatethumb() {
  b = 1;
  i = 0;
    for (var c:Number = _global.z; c<_global.z2; c++) {
      var image:String = "thumb_"+c+".jpg";
      trace ("slides_mc"+b+".holder"+i+"="+image);
      imageLoader.addListener(loaderListener);
      imageLoader.loadClip(this["image"], this["slides_mc"+b]["holder"+i]);
      i+=1;
      if ((i+1)%5 == 0) {b+=1;i=0;}
      };
};


Король 25.12.2005 03:19

Код:

function updatethumb() {
        b = 1;
        i = 0;
        trace(_global.z);
        for (var c:Number = _global.z; c<_global.z2; c++) {
                var image:String = "thumb_"+c+".jpg";
                trace("slides_mc"+b+".holder"+i+"="+image);
                imageLoader.addListener(loaderListener);
                imageLoader.loadClip(this["image"], this["slides_mc"+b]["holder"+i]);
                i += 1;
                if ((i+1)%5 == 0) {
                        b += 1;
                        i = 0;
                }
        }
}
_global.z = 1;
_global.z2 = 10;
updatethumb();

trace:

Код:

1
slides_mc1.holder0=thumb_1.jpg
slides_mc1.holder1=thumb_2.jpg
slides_mc1.holder2=thumb_3.jpg
slides_mc1.holder3=thumb_4.jpg
slides_mc2.holder0=thumb_5.jpg
slides_mc2.holder1=thumb_6.jpg
slides_mc2.holder2=thumb_7.jpg
slides_mc2.holder3=thumb_8.jpg
slides_mc3.holder0=thumb_9.jpg


как видишь - все изменяется как нужно

benladen 25.12.2005 03:27

дак, я и говорю трейсит все как нужно, только картинки то старые остаются ...

не загружает он их ...

benladen 25.12.2005 03:39

totalImages = 16
когда только загрузился сайт исполняется этот код:
Код:

for (var c:Number = 0; c<totalImages; c++) {

        var image:String = "thumb_"+c+".jpg";
        imageLoader.addListener(loaderListener);
        imageLoader.loadClip(this["image"], this["slides_mc"+b]["holder"+i]);

        i+=1;
        if ((i+1)%5 == 0) {b+=1;i=0;}
};

он работает и все загружается

эта функция запускается(onPress) при выборе из меню другой категории (копия верхней):
Код:

function updatethumb() {
        b = 1;
        i = 0;
        for (var c:Number = _global.z; c<_global.z2; c++) {
                var image:String = "thumb_"+c+".jpg";
                imageLoader.addListener(loaderListener);
                imageLoader.loadClip(this["image"], this["slides_mc"+b]["holder"+i]);

                i+=1;
                if ((i+1)%5 == 0) {b+=1;i=0;}
        };
};

проблема в том, что когда я выбираю в меню и пытаюсь поменять картинки, он изменяет их только на все thumb_15.jpg (через дебагер смотрел состояние этой переменной image - thumb_15.jpg, т.е. функция не изменяет переменную image, хотя trace пишет - ок)
бред какой-то ...

Король 25.12.2005 03:40

а ты пробовал почитать в хелпе как грузить с помощью MovieClipLoader-а? попробуй.

benladen 25.12.2005 06:11

Цитата:

Сообщение от Король
а ты пробовал почитать в хелпе как грузить с помощью MovieClipLoader-а? попробуй.

ты хочешь сказать, что я не правильно его гружу, или то что его нелбзя в функции использовать? не очень понятно.

KUZEN 25.12.2005 07:15

Цитата:

Сообщение от benladen
ты хочешь сказать, что я не правильно его гружу, или то что его нелбзя в функции использовать? не очень понятно.

Он хочет сказать что для начала нужно внимательно изучить этот класс , а потом уже что то делать ...

benladen 26.12.2005 04:35

как я и думал, проблема была не в том, что я класс не правильно использовал, а в том что я объявлял два раза переменную image ...
но серавно, спасибо за участие в решении вопроса

benladen 26.12.2005 04:45

еще один вопросец, тоже относящийся к данной теме

как распространить переменную i (индекс) на то, что находится внутри функции onRollOver

Код:

this.onEnterFrame = function () {

// RollOver в меню       
  for (i=1;i<=6;i++){
    this["button_"+i].onRollOver = function () {
    new mx.transitions.Tween(slider_mc, "_x", mx.transitions.easing.Elastic.easeOut, slider_mc._x, menu_array[i], 3, true);
    new mx.transitions.Tween(slider_mc, "_width", mx.transitions.easing.Strong.easeOut, slider_mc._width, this._width, 0.2, true);
    };
  }; // end for
}; // end function

индекс 1 до 6 подставляется только в эту часть этого кода, кот. сверху
Код:

this["button_"+i].onRollOver
а в строчке:
Код:

new mx.transitions.Tween(slider_mc, "_x", mx.transitions.easing.Elastic.easeOut, slider_mc._x, menu_array[i], 3, true);
menu_array[i] всегда равен 6, т.е. не изменяется от 1 - 6

Antares 26.12.2005 05:03

Цитата:

Сообщение от benladen
еще один вопросец, тоже относящийся к данной теме

Нет, братцы, так дело не пойдет...(с)

Новые вопросы -- в новых тредах. А этот -- закрыт.


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

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