Просмотр полной версии : загрузка JPG
Друзья, пользовался поиском, много нашёл, но нормально разобраться так и не смог.
Что я имею:
25 клипов с именами типа mc1, mc2 и т.п.
Но внутри этих клипов есть поле (как я понимаю оно удаляется когда картинка загружается)
Так вот вопрос, как же правильно загружать джипеги в эти 25 клипов?
Я использую цикл и строчки
nn = "_parent._parent.rels.pp.im"+i;
loadMovie("concept/gallery/small/"+i+".jpg", nn);
но как правильно использовать .onLoadInit я так и не смог понять.
Объясните пожалуйста.
onLoadInit это событие класса MovieClipLoader (см хелп), а loadMovie это метод класса MovieClip или глобальная функция (как в вашем коде) и морально устарел.
А как правильно в таком случае создать Listener? Напомню что клипы создаются методом duplicateMovieClip. Совсем запутался.
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
Вам же написали решение, а вы пытаетесь сделать что-то вообще непонятное.
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]);
}
Код который я написал в принципе грузил картинки но 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()));
И ещё всё осложняется тем, что путь до клипов надо писать, самих клипов много и они созданы путём дублирования родителя.
Не понял.
У меня есть 25 клипов, которые создаются ранее в цикле методом duplicateMovieClip
эти клипы находятся не там, где я хочу написать скрипт загрузки картинок и путь к ним можно прописать так:
_parent.rels.pp
а сами клипы имеют имена im1, im2, im3 и т.д.
т.е. адреса клипов куда я хочу загрузить :
_parent.rels.pp.im1
_parent.rels.pp.im2
и т.д.
faust.d503
09.12.2008, 17:20
Проверил, всё работает.
Возможно при загрузке непосредственно в дубликат какие-то глюки возникают.
При создании дубликатов их надо в массив пихать.
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.
не работает даже вот так:
duplicateMovieClip("_parent.rels.pp.im", "img", 160);
_parent.rels.pp.img._x = 100
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.loadClip("concept/gallery/small/"+1+".jpg",_parent.rels.pp.img);
Добавлено через 1 час 56 минут
Проблема решена, я потратил много-много-много часов на то, чтобы залесть в настройки Публикации и поставить там AS2 (((
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.