Форум 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)
-   -   Загрузка картинки *.jpg не всегда срабатывает(( (http://www.flasher.ru/forum/showthread.php?t=97581)

Andrew_J 24.06.2007 20:13

Загрузка картинки *.jpg не всегда срабатывает((
 
Делаю дублированием 7 мувиков и внутрь их загружаю по одной картинки, картинки разные. Так вот случаются моменты, что из 7 загружаются только 6, причем все события отрабатывают, флеш говрит что всё загружено, а картинки нету((

Уже пробовал грузить и через LoadClip и LoadMovie, всё равно результат один.
Подскажите как обнаружить то что картинка не загрузилась или как всё же правильно загрузить её, если я что не так делаю.

Приведу код:
Код:

        var mclListener:Object = new Object();
        mclListener.onLoadInit = function(target_mc:MovieClip) {
                trace("goodload");
        };
        var mcLoader:MovieClipLoader = new MovieClipLoader();
        mcLoader.addListener(mclListener);
        mcLoader.loadClip(FotoPath[i-1],eval(bn).foto);


BigDan 24.06.2007 20:21

Код:

my_mcl.onLoadError = function....

Andrew_J 24.06.2007 20:31

Только что проверил, примерно с 10 попытки сработал этот глюк, но как ни странно событие my_mcl.onLoadError не сработало((
Что это может быть ещё?

Ещё бывает после проигрывания звука не срабатывает событие _root.my_sound.onSoundComplete = function(){}
Что вообще с этим флешем такое, хочет работает хочет нет...
Думал CS3 будет меньше глючить, а разницы нет как оказалось

etc 24.06.2007 20:45

Цитата:

Сообщение от Andrew_J
Думал CS3 будет меньше глючить, а разницы нет как оказалось

Ну да, только если писать под AS3.

Andrew_J 24.06.2007 21:14

А как быть тогда, я только смог в onClipEvent (load) отследить widh = 0 и heigh = 0, а дальше что, непонятно... попробывать загрузить снова?

BigDan 24.06.2007 21:22

чтоб узнать width, height надо юзать не onLoadComplete,а onLoadInit(после этого события мы можем свободно работать со свойствами объекта).

Andrew_J 24.06.2007 21:58

BigDan, если вы посмотрите выше, то там и написано как раз
Код:

        mclListener.onLoadInit = function(target_mc:MovieClip) {
                trace("- w="+eval(bn).foto._width+" h="+eval(bn).foto._height);
        };

Однако этот трейс выводит размер мувика вместо которого грузится картинка, а размер картинки не известен в это время ещё.
А событие onClipEvent (load) на этом мувике уже показывает размер загруженной картинки.

Kikasso 24.06.2007 22:18

Код:

        mclListener.onLoadInit = function(target_mc:MovieClip) {
                trace("w="+target_mc._width+" h="+target_mc._height);
        };

Откуда вы этот eval берете? Что, по-нормальному не обратиться? И этот onClipEvent..

Andrew_J 24.06.2007 22:27

eval нужен для обращения к мувику, bn = "fotos"+i; т.е. получается eval(bn).foto._height = fotos1.foto._height и т.д. для других значений i.

Приведу код поподробней, если есть сомения какието
Код:

for (var i = 1; i<=7; i++) {
        bn = "fotos"+i;
        duplicateMovieClip("fotos", bn, i);
        setProperty(bn, _x, sxx+Math.random()*sdx);
        setProperty(bn, _y, syy+Math.random()*sdy);
        setProperty(bn, _rotation, ygol-Math.random()*ygol*2);
}

for (var i = 1; i<=7; i++) {
        bn = "fotos"+i;
        var mclListener:Object = new Object();
        mclListener.onLoadInit = function(target_mc:MovieClip) {
                trace("- w="+eval(bn).foto._width+" h="+eval(bn).foto._height+"  i="+i);
        };
        mclListener.onLoadError = function(target_mc:MovieClip) {
                trace("________ERROR_________");
        };
        var mcLoader:MovieClipLoader = new MovieClipLoader();
        mcLoader.addListener(mclListener);
        mcLoader.loadClip(FotoPath[i-1],eval(bn).foto);//FotoPath[i-1] массив с путями до картинок
}


Kikasso 24.06.2007 22:44

У вас bn не меняется. И как вы думаете, для чего в листенере target_mc?

Код:

mclListener.onLoadInit = function(target_mc:MovieClip) {
  trace('-----------');
  trace('bn=' + bn + '\n');

  trace('target_mc=' + target_mc + '\n'); 
  trace("w="+target_mc._width+" h="+target_mc._height);
};

DuplicateMovieClip - это источник неприятных глюков. setProperty это вообще без комментариев.


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

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