PDA

Просмотр полной версии : [AS2.0] получить размеры загружаемого в мувиклип изображения


orcpochta
27.02.2008, 22:30
Возможно ли при загрузке изображения в экземпляр пустого мувиклипа получить размеры этого изображения для дальнейшего присвоения их атрибутам _width и _height этого экземпляра?
Нужно, например, для того, чтобы корректно рисовать рамки вокруг загружаемых фотографий не заботясь о размерах этих фотографий.
Спасибо.

DarkLight
27.02.2008, 22:37
Размеры можно получить при использовании MovieClipLoader, они становятся доступными при onLoadInit

orcpochta
27.02.2008, 22:47
Действительно.
Спасибо!

orcpochta
12.03.2008, 07:01
Размеры можно получить при использовании MovieClipLoader, они становятся доступными при onLoadInit

и все же как вытащить оттуда размеры? как я не бился - не выходит.
нужно не в окне Output их посмотреть, а присвоить конкретно создаваемому пустому мувиклипу, в который загружается изображение.

Жень Шень
12.03.2008, 10:52
Ну в ХЭЛПе есть же!!!
this.createEmptyMovieClip("image_mc", this.getNextHighestDepth());
var mclListener:Object = new Object();
mclListener.onLoadInit = function(target_mc:MovieClip) {
target_mc._x = Stage.width/2-target_mc._width/2;
target_mc._y = Stage.height/2-target_mc._width/2;
var w:Number = target_mc._width;
var h:Number = target_mc._height;
target_mc.lineStyle(4, 0x000000);
target_mc.moveTo(0, 0);
target_mc.lineTo(w, 0);
target_mc.lineTo(w, h);
target_mc.lineTo(0, h);
target_mc.lineTo(0, 0);
target_mc._rotation = 3;
};
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
image_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", image_mc);

orcpochta
12.03.2008, 11:10
Ну в ХЭЛПе есть же!!!


Ага... добавим теперь в конце:

trace(image_mc._width);
trace(image_mc._height);


результат выполнения в панели Output:
0
0

и как я не бьюсь, не могу сделать image_mc._width и image_mc._height равными размерам загруженной картинки.

divinus
12.03.2008, 11:27
а откуда вы взяли "image_mc" ?

Жень Шень
12.03.2008, 12:29
...и как я не бьюсь, не могу...
Вместо строчки:
image_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", image_mc);

поставте:
image_mcl.loadClip("МОЙРИСУНОК.jpg", image_mc);

и, конечно МОЙРИСУНОК.jpg должен лежать рядом с вашей swf

orcpochta
12.03.2008, 15:46
Вместо строчки:
image_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", image_mc);

поставте:
image_mcl.loadClip("МОЙРИСУНОК.jpg", image_mc);

и, конечно МОЙРИСУНОК.jpg должен лежать рядом с вашей swf

вы сами этот код пробовали?

кстати, я не говорил, что картинка у меня не загружается. я говорю, что не могу присвоить свойствам _width и _height пустого мувиклипа размеры загружаемой в него картинки

orcpochta
12.03.2008, 15:54
Если можно, приведите, пожалуйста, код, инициализирующий следующее:
- создание пустого мувиклипа
- загрузку в него картинки
- присвоение свойствам _width и _height этого мувиклипа значений, равных размерам загруженной картинки
- трассировка значений свойств _width и _height созданного мувиклипа не из слушателя onLoadInit.

Жень Шень
12.03.2008, 16:40
не могу присвоить свойствам _width и _height пустого мувиклипа размеры загружаемой в него картинки
Как можно пустоте что-то присвоить!?
Загрузили картинку - клип принял ее размеры. Вот тут и меняйте то что надо.

orcpochta
12.03.2008, 16:52
Как можно пустоте что-то присвоить!?


т.е. пустое остается пустым и после загрузки в него картинки?

Загрузили картинку - клип принял ее размеры.

сами себе противоречите на счет присвоения чего-то пустому.
клип НЕ принял ее размеры!
размеры принял некий мувиклип, инициализируемый в конструкторе слушателя onLoadInit и имеющий локальную для этого метода область видимости.

Вот тут и меняйте то что надо.

зачем мне менять "то, что надо" при загрузке, тем более, что при загрузке мне этого не надо? а если я и дальше хочу работать с этим мувиклипом и мне необходим доступ к его свойствам?

iNils
12.03.2008, 17:12
Размеры клипа, это размеры его содержимого.
До onLoadInit менять можно только _xscale и _yscale (при условии, что не в 0). Если же вы пытались изменить _width и _height до onLoadInit, флеш делает _xscale и _yscale равным 0 и после onLoadInit _width и _height тоже будет равны 0 (вернуть первоначльные размер ы можно установив _xscale и _yscale в 100).

orcpochta
12.03.2008, 17:30
Размеры клипа, это размеры его содержимого.
До onLoadInit менять можно только _xscale и _yscale (при условии, что не в 0). Если же вы пытались изменить _width и _height до onLoadInit, флеш делает _xscale и _yscale равным 0 и после onLoadInit _width и _height тоже будет равны 0 (вернуть первоначльные размер ы можно установив _xscale и _yscale в 100).

Спасибо!!!! вот теперь я разобрался! Не сообразил, что я трассировку пытаюсь выполнить раньше, чем свершится загрузка.