PDA

Просмотр полной версии : координаты загруженного изображения


CoolDV
01.05.2007, 16:11
Добый день, вопрос такой,
вот есть код

pole.attachMovie("blank","img", 1);
pole["img"].createEmptyMovieClip("img_inside", 1).loadMovie(img_small);



где приатачиваемый мувик "blank" - это квадратная рамка
а загружаемые картинки img_small - это фото, которые могут быть как горизонтальные (80х20), так и вертикальные(20х80).

Как поместить эти подгружаемые фото по центру рамки.
Всё это делается в одном кадре, и там не одна картинка, а много, и все они аттачатся в цикле for.


po_x= (pole["img"+i]._width-pole["img"+i].img._width)/2
po_y=(pole["img"+i]._height-pole["img"+i].img._height)/2
setProperty(pole["img"+i].img, _x,po_x);
setProperty(pole["img"+i].img, _y,po_y);



не работают...

Подозреваю что нужно использовать movieClipLoader, но не умею им пользоваться :( пробовал по мануалу, ничего не получилось...
Приведите пример пожалуйста, как мне это реальзовать

Спасибо

iNils
01.05.2007, 16:22
CoolDV, неужели так сложно убрать лишную табуляцию в коде? Ведь смотреть неудобно.

CoolDV
01.05.2007, 16:31
звиняюсь :) так нормально?

iNils
01.05.2007, 16:41
Я уже сам поправил. setProperty давно устарело. Вместо
setProperty(pole["img"+i].img, _x,po_x);
используют
pole["img"+i].img._x = po_x;

CoolDV
01.05.2007, 16:54
спасибо, но чем это мне поможет?

trace (pole["img"+i].img._width)

выдает 0

etc
01.05.2007, 16:58
Нужно дождаться загрузки картинок. Используй MovieClipLoader.

CoolDV
01.05.2007, 17:10
Нашел тут, http://flasher.ru/forum/showthread.php?t=65806
но всё равно не работает так как надо


pole["img"+i].createEmptyMovieClip("img", 1)
var mclListener:Object = new Object();
mclListener.onLoadComplete = function(target_mc:MovieClip):Void
{
trace(pole["img"+i].img._width)
}
var my_mcl:MovieClipLoader = new MovieClipLoader();
my_mcl.addListener(mclListener);
my_mcl.loadClip(img_small, pole["img"+i].img);


трэйс выдает undefined
хотя изображения подгружаются

Kikasso
01.05.2007, 17:52
mclListener.onLoadComplete = function(target_mc:MovieClip):Void{
trace(target_mc._width);
}
или на onLoadInit надо ставить, не помню

DarkLight
01.05.2007, 18:46
на onLoadInit.

CoolDV
01.05.2007, 18:47
спасибо, понял)
а как туда передать ширину родительского мувика?
pole["img"]._width ???
сейчас приходится делать так


target_mc._x=(81-target_mc._width)/2;
target_mc._y=(81-target_mc._height)/2;


где 81 - ширина "blank"

Kikasso
01.05.2007, 19:00
Ничего умного в голову не приходит.
Сохранить значения в родительском мувике или локальной переменной, потом грузить..
Рамку-невидимку нарисовать, отдельным клипом - брать ее размер потом.. Или маску засадить сверху. Может, и умнее способ найдется.