![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Aug 2007
Сообщений: 11
|
Проблема в том, что трейс показывает НОЛЬ. Помогите.
|
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
this.createEmptyMovieClip("image_mc", this.getNextHighestDepth());
//
var mclListener:Object = new Object();
mclListener.onLoadInit = function(target_mc:MovieClip) {
trace(target_mc._width)
};
//
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
image_mcl.loadClip("asdf.jpg", image_mc);
|
|
|||||
|
[+1.4 18.06.07]
Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
|
Скорее всего, проблема в том что ширина измеряется до того как изображение загружено. используй onLoad или SetInterval
__________________
А я Томат. |
|
|||||
|
Регистрация: Aug 2007
Сообщений: 11
|
Постепенно подхожу к цели, но возникла следующая проблема: как достать значение ширины, чтобы использовать его вне функции loadImage?
function loadImage(mc, img){
/* mc - куда кладем картинку,
img - имя картинки для загрузки
*/
var mclListener:Object = {};
mclListener.onLoadInit = function(target_mc:MovieClip)
{
mclListener.onLoadInit.imgWidth = target_mc._width;
trace(mclListener.onLoadInit.imgWidth); //здесь получаем ширину картинки, которую необходимо использовать извне (там, где уже вызывается функция loadImage)
}
mclListener.onLoadComplete = function()
{
delete image_mcl;// delete mclListener;
}
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
image_mcl.loadClip(img, mc);}
Последний раз редактировалось venegy; 25.08.2007 в 05:00. |
|
|||||
|
Banned
[+1 08.05.08]
[+4 14.04.08] [+1.3 02.05.08] Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
|
venegy
ты сначала задай ширину пустому мувиклипу. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
to Mr. Fixit: зачем?
to venegy: ты можешь узнать ширину мувика, только по наступлению события onLoadInit (т.е. картинка твоя не загружается мгновенно), вот и думай исходя из этого. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Знаю, что это типа муветон, но я просто в _root переменную завожу или в _global. Соотв. пишешь в онЛоадИнит
и дальше используешь ссылку _root.imgWidth
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Aug 2007
Сообщений: 11
|
Пробовал. Так не получается. Проблема как раз в том, что переменная не принимает нужные значения (onLoadInit отрабатывает позже, чем я обращаюсь к переменной...).
udaaff, ты намекал на что-то... Может, мне структуру функций переделать. Прежняя была такая: loadImage(mc, img) mc - куда кладем картинку, img - имя картинки для загрузки внутри неё - функция для обработчика onLoadInit (которая давала нужный мне параметр - ширину загружаемой картинки) Далее я Вызываю первичную функцию loadImage(mc, img) в цикле для загрузки картинок. Но! Мне нужна ширина картинки. Накапливая ширину каждой загруженной картинки в переменную в этом цикле я получу возможность расставлять картинки одну за другой (в длинную колбасу). Может, изначально логика неверная? Спасибо за участие. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
>>onLoadInit отрабатывает позже, чем я обращаюсь к переменной
Тогда, простите, чью ширину Вы хотите использовать? Картинки-то еще нет Да, логика неверная Цикл выдает несколько тысяч итераций в секунду, т.е. Вы начнете грузить картинки одновременно, а вот время, за которое они будут загружаться, зависит от их веса. Таким образом шестая картинка может загрузиться раньше всех - куда Вы ее поставите, если ширина остальных еще не известна? Выход - грузить картинки по-очереди, не в цикле, а загружая следующую по событию онЛоадКомплит предыдущей. Или вар.2 - загрузить все картинки в одну пачку в невидимом мувике, сделать его видимым и пересчитать координаты всех картинок. Или вар.3 - отображать некие ячейки одного размера, возможно с прелоадером внутри, при окончании загрузки каждой картинки вызывается функция пересчета всей колбасы - получится динамическая такая загрузка ![]()
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 25.08.2007 в 17:15. |
|
|||||
|
Регистрация: Aug 2007
Сообщений: 11
|
Первый вариант подходит больше всего моему замыслу. Вообще я хочу добиться, чтобы каждая картинка грузилась полностью (с прелоудером) и только после этого начинала подгружаться следующая.
Но как это организовать с помощью онЛоадов? |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:56. |
|
|
« Предыдущая тема | Следующая тема » |
|
|