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

Kurt-sm 08.12.2008 16:51

загрузка JPG
 
Друзья, пользовался поиском, много нашёл, но нормально разобраться так и не смог.
Что я имею:
25 клипов с именами типа mc1, mc2 и т.п.
Но внутри этих клипов есть поле (как я понимаю оно удаляется когда картинка загружается)
Так вот вопрос, как же правильно загружать джипеги в эти 25 клипов?

Я использую цикл и строчки
nn = "_parent._parent.rels.pp.im"+i;
Код AS1/AS2:

loadMovie("concept/gallery/small/"+i+".jpg", nn);

но как правильно использовать .onLoadInit я так и не смог понять.
Объясните пожалуйста.

iNils 08.12.2008 17:03

onLoadInit это событие класса MovieClipLoader (см хелп), а loadMovie это метод класса MovieClip или глобальная функция (как в вашем коде) и морально устарел.

Kurt-sm 09.12.2008 16:05

А как правильно в таком случае создать Listener? Напомню что клипы создаются методом duplicateMovieClip. Совсем запутался.

Код AS1/AS2:

for (i=1; i<=25; i++) {
        nn = "_parent.rels.pp.im"+i;
        eval(nn).loadMovie("concept/gallery/small/"+i+".jpg");
        eval(nn).addListener(mclListener);
        eval(nn).mclListener.onLoadComplete = function(target_mc:MovieClip) {
        k +=1;
          tt.text = k;
        }
}

Помогите пожалуйста.

alexcon314 09.12.2008 16:15

Код:

var container:MovieClip = createEmptyMovieClip("container", getNextHighestDepth());
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(this);
mcLoader.loadClip("concept/gallery/small/1.jpg", container);
function onLoadComplete (mc:MovieClip) {
        trace("Loaded");
}

пробуем загрузить один рисунок

faust.d503 09.12.2008 16:21

Kurt-sm
Вам же написали решение, а вы пытаетесь сделать что-то вообще непонятное.

Код AS1/AS2:

var mcLoader:MovieClipLoader = new MovieClipLoader();
var listener:Object = {}
mcLoader.addListener(listener);
 
listener.onLoadComplete = function (mc:MovieClip) {
        trace("Loaded " + mc);
}
for (i = 1; i <= 25; i++) {
        mcLoader.loadClip("concept/gallery/small/"+i+".jpg", _parent.rels.pp["im"+i]);
}


Kurt-sm 09.12.2008 16:44

Код который я написал в принципе грузил картинки но onLoadComplete не работал, я так понимаю потому что я что-то путаю с синтаксисом.
faust.d503, чертовски жаль , но этот код не грузит картинки, даже когда я исправил эту строчку:
listener.onLoadComplete = function (mc:MovieClip){
Хотя логикой почему не работает понять не могу. Поковырялся, но решить не смог пока что.

alexcon314, дело не в том что картинки не грузились, дело в Листенере.
И ещё всё осложняется тем, что путь до клипов надо писать, самих клипов много и они созданы путём дублирования родителя.

alexcon314 09.12.2008 16:54

Я вам предложил разобраться с классом MovieClipLoader. То, что картинки грузятся, это, конечно, хорошо. ))
Надо как-нибудь так:
Код:

var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(this);
function onLoadComplete(mc:MovieClip) {
        mc._x = i * 50;// производим действия с только что загруженной картинкой
        i++;
        if (i < 25) {
                mcLoader.loadClip(i + ".jpg", createEmptyMovieClip("container" + i, getNextHighestDepth()));
        }
}
var i = 0;
mcLoader.loadClip(i + ".jpg", createEmptyMovieClip("container" + i, getNextHighestDepth()));

Цитата:

И ещё всё осложняется тем, что путь до клипов надо писать, самих клипов много и они созданы путём дублирования родителя.
Не понял.

Kurt-sm 09.12.2008 17:09

У меня есть 25 клипов, которые создаются ранее в цикле методом duplicateMovieClip
эти клипы находятся не там, где я хочу написать скрипт загрузки картинок и путь к ним можно прописать так:
_parent.rels.pp
а сами клипы имеют имена im1, im2, im3 и т.д.
т.е. адреса клипов куда я хочу загрузить :
_parent.rels.pp.im1
_parent.rels.pp.im2
и т.д.

faust.d503 09.12.2008 17:20

Проверил, всё работает.
Возможно при загрузке непосредственно в дубликат какие-то глюки возникают.
При создании дубликатов их надо в массив пихать.

Код AS1/AS2:

var mcArr:Array = [];
for (var i:Number = 0; i < 26; i++){
        var dupl:MovieClip = movieForDuplicate.duplicateMovieClip("dupl" + i, this.getNextHighestDepth());
        var duplLoader = dupl.createEmptyMovieClip("duplLoader", dupl.getNextHighestDepth());
        mcArr.push(duplLoader);
}
var mcLoader:MovieClipLoader = new MovieClipLoader();
var listener:Object = {}
mcLoader.addListener(listener);
 
listener.onLoadComplete = function (mc:MovieClip) {
        trace("loaded " + mc);
}
listener.onLoadError = function (mc:MovieClip) {
        trace("error " + mc);
}
 
for (i = 1; i <= mcArr.length; i++) {
        mcLoader.loadClip("concept/gallery/small/"+i+".jpg", mcArr[i]);
}


alexcon314 09.12.2008 17:25

И что?
Передавайте в loadClip() вторым параметром ссылку на очередной дубликат.
Вообще, нет смысла перед загрузкой создавать контейнер методом duplicateMovieClip. Содержимое контейнера все равно будет удалено. Потому и используют createEmptyMovieClip.


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

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