![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Mar 2007
Адрес: Екатеринбург
Сообщений: 6
|
Доброго времени суток товарищи.
Есть такая задача: необходимо загружать изображение и изменять его размеры спомощью мыши (т.е. нажал на маркер, перетащил и размер изменился). Реализую следующий способом. Загружаю картинку с помощью MovieClipLoader() в мувик, допустим img_mc. Но после загрузки изображения свойства img_mc._width и img_mc._height равны '0'. И соответсвенно менять их нет возможности. Причем в обработчике MovieClipLoader().onLoadInit эти свойства доступны. Пытался подойти к проблеме с другой стороны: создавал в мувике img_mc динамическое текстовое поле img_txt и в теге <img> указывал какую картинку загружать. Затем менял размеры клипа img_mc, изменяя свойства _xscale и _yscale. В принципе все работает, но заметил одну неприятную вещь: если размер jpg меньше чем размер указываемый в теге <img>, то после загрузки jpg, размеры текстового поля img_txt изменяются совершенно непонятным образом. Например: размер jpg 200x118, создаю текстовое поле img_txt размером 200x200, в теге <img> указываю width='200', height='200', тестирую фильм, и размер img_txt равен 202х304, хотя сама картинка отобржается корректно(т.е. с заданными размерами). Заметил что размер img_txt меняется после того как после загрузки изображения в img_txt появляется еще один MovieClip с именем "clipper-o-Depth0". Чес слово замаялся уже, не знаю че делать. Есть какие-нибудь мысли по этому поводу? Спасибо за внимание. |
|
|||||
|
Цитата:
менять их нет возможности потому как мувик еще не загружен, а когда загрузиться подменит все, что ты определил на свое.. т.е. и методы управления надо определять в onLoadInit пример (таскаем картинку за правый/нижний угол) import flash.geom.Point;
var initW:Number=200,initH:Number=300;
var img_mc:MovieClip=this.createEmptyMovieClip("img_mc",this.getNextHighestDepth());
var loader:MovieClipLoader=new MovieClipLoader();
loader.addListener(this);
function startResize(){
var b=this.getBounds(_root);
if(_root._xmouse>b.xMax-20 && _root._ymouse>b.yMax-20){//только RB угол 20х20
this.mouseP=new Point(_xmouse,_ymouse);
this.onMouseMove=mouseResize;
}
}
function stopResize(){
this.onMouseMove=null;
}
function mouseResize(){
var p=new Point(_xmouse,_ymouse);
this._width+=p.x-this.mouseP.x;
this._height+=p.y-this.mouseP.y;
this.mouseP=p;
}
function onLoadInit(mc:MovieClip){
mc._width=initW;
mc._height=initH;
mc.onPress=startResize;
mc.onRelease=mc.onReleaseOutside=stopResize;
}
loader.loadClip("face.jpg",img_mc);
Последний раз редактировалось silin; 08.08.2007 в 21:34. |
|
|||||
|
а еще есть _xscale, _yscale, которые работают всегда
![]() |
|
|||||
|
у меня была точно такая-же проблема... единственное, что я понял, что width и height не меняются ни при загрузке, ни после нее и вообще никак не зависят от того, что мы загрузили в мувик.
единственные параметры, которыми можно управлять - это x, y, xscale, yscale. Хотя, зная изначально размер изображения, этих праметров более чем достаточно. |
|
|||||
|
Регистрация: Mar 2007
Адрес: Екатеринбург
Сообщений: 6
|
silin и Dr.OH,
Спасибо огромное за ответы. Проблему решил, определив все обработчики в методе MovieClipLoader().onLoadInit. Изначально рассматривал этот вариант, но видимо что-то криво сделал и при тестировании не получил желаемый результат. Тепрь все работает ![]() Еще раз спасибо. |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:24. |
|
|
« Предыдущая тема | Следующая тема » |
|
|