Форум 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)
-   -   MovieClipLoader.loadClip не вызывается (http://www.flasher.ru/forum/showthread.php?t=114074)

Ghost_real 17.07.2008 17:58

MovieClipLoader.loadClip не вызывается
 
Гружу по очереди картинки MovieClipLoader'ом и записываю их в BitmapDat'у..

Код:

function loadImages(sf:Number) {
       
        z=sf;
        flag=true;

        while(loaded_images[images[z]]) {
                z++;
                if(z>sizeOf(images)) {                       
                        flag=false;
                        break;
                }
        }

        if(flag) {
                cc=z;
                if(mcl.loadClip(images[z],preloader)) {
                        trace("ок");       
                } else {
                        trace("ошибка");       
                }
        } else {
                trace("загрузка выполнена");
        }
}

loaded_images - массив логических переменных, если картинка уже загружена - true.

images - массив с именами файлов для загрузки

Код:

listener.onLoadInit = function(tc:MovieClip) {       
        pre_bmd[images[cc]] = new BitmapData(266, 196);
        pre_bmd[images[cc]].draw(tc, mtx);
        loaded_images[images[cc]]=true;
       
        mcl.unloadClip(tc);
       
        loadImages(cc);
}

mcl.loadClip отказывается загружать некоторые картинки..пути к файлам проверил - все правльно.
Из-за чего это еще может быть?

chingachgoog 17.07.2008 19:27

Цитата:

Сообщение от Ghost_real (Сообщение 752747)
mcl.loadClip отказывается загружать некоторые картинки..пути к файлам проверил - все правльно.
Из-за чего это еще может быть?

А размер картинок в пикселях какой?

Ghost_real 17.07.2008 19:36

У всех одинаковый, 266х196.

chingachgoog 17.07.2008 19:43

А что говорит onLoadError? Срабатывает или нет? (можно еще трейс поставить в onLoadInit - всегда ли будет срабатывать?)
Тестируете где: в сети или локально?
Если в сети - то может не грузить по кроссдоменной политике, а если локально - то может не грузить, если в пути есть нелатинские символы.
Тестируйте, чем отличаются загружаемые файлы от незагружаемых.

crazyone 17.07.2008 19:51

Вот так вот:
Цитата:

Код:

pre_bmd[images[cc]] = new BitmapData(266, 196);

Лучше никогда не делайте. Потому что в images[cc] у вас пути к файлам, т.е. - строки текста. А в них могут содержаться недопустимые символы для имени объектов во флеше(например - слеши).
В итоге - эта строчка может не сработать. Кстати, возможно, именно из-за этого у вас и проблемы.
Хотя - у вас очень скверный стиль программирования, сложно читается, потому могут быть и другие ошибки. Поработайте над ним обязательно.

chingachgoog 17.07.2008 20:00

Цитата:

Сообщение от crazyone (Сообщение 752782)
А в них могут содержаться недопустимые символы для имени объектов во флеше(например - слеши).

Код:

z=_root.createEmptyMovieClip("12///|||\\\3",1)
trace(z._name)


crazyone 17.07.2008 20:29

Цитата:

Код:

z=_root.createEmptyMovieClip("12///|||\\\3",1)
trace(z._name)


Я тоже так когда-то думал.
И у меня тоже была загрузка картинок.
И я трое суток разобраться не мог, что же не так с флешкой.
Не помню точно, но под каким-то браузером работало, а под каким-то - нет.
Стал давать другие имена - и все стало прекрасно работать.

chingachgoog 17.07.2008 21:48

Дело в том, что имя объекта (когда оно задается строкой!) может быть любым (тут не действуют ограничения, например, что нельзя начинать с цифры и т.п.
Но надо потом умудриться еще по такомуже имени и обратиться к объекту (см. во что превратились последние два символа в примере выше) ПРАВИЛЬНО (т.е. также строково!).

crazyone 18.07.2008 11:40

Если у меня есть только строки с именами, как еще я к нему могу обратиться?

Я вам говорю - есть такая бага. Или была в восьмом флешплеере под какой-то из браузеров. Может пофиксили уже, я не проверял. В любом случае, какой смысл рисковать? Почему не использовать индекс этой строки в массиве?

chingachgoog 18.07.2008 13:05

Цитата:

Сообщение от crazyone (Сообщение 752860)
Если у меня есть только строки с именами, как еще я к нему могу обратиться?

Код:

12///|||\\\3.stop() // вряд ли что выйдет :)
_root["12///|||\\\3"].stop() // вполне корректно

Ну уж я не знаю, как у вас баг вышел :)
От флеша всего можно ожидать и бага тоже - тут не спорю.

А вообще интересно, что там у Ghost_real было - куда-то он пропал...


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

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