Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.08.2007, 17:30
LeVitaN вне форума Посмотреть профиль Отправить личное сообщение для LeVitaN Найти все сообщения от LeVitaN
  № 1  
Ответить с цитированием
LeVitaN

Регистрация: Mar 2007
Адрес: Екатеринбург
Сообщений: 6
По умолчанию Изменение размеров загруженого jpg-изображения

Доброго времени суток товарищи.
Есть такая задача: необходимо загружать изображение и изменять его размеры спомощью мыши (т.е. нажал на маркер, перетащил и размер изменился).
Реализую следующий способом.
Загружаю картинку с помощью 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".

Чес слово замаялся уже, не знаю че делать. Есть какие-нибудь мысли по этому поводу?

Спасибо за внимание.

Старый 08.08.2007, 21:31
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Цитата:
Но после загрузки изображения свойства img_mc._width и img_mc._height равны '0'. И соответсвенно менять их нет возможности. Причем в обработчике MovieClipLoader().onLoadInit эти свойства доступны.
путаница: это до завершения загрузки они равны 0, но смотреть/управлять ими нужно после события onLoadInit, что ты сам и подметил..
менять их нет возможности потому как мувик еще не загружен, а когда загрузиться подменит все, что ты определил на свое..
т.е. и методы управления надо определять в 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.
Старый 08.08.2007, 22:36
Dr.OH вне форума Посмотреть профиль Отправить личное сообщение для Dr.OH Найти все сообщения от Dr.OH
  № 3  
Ответить с цитированием
Dr.OH

Регистрация: Aug 2003
Сообщений: 299
Отправить сообщение для Dr.OH с помощью ICQ
а еще есть _xscale, _yscale, которые работают всегда

Старый 08.08.2007, 22:44
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
дада, и еще _x, _y..
я не знаю почему они не переопределяются при загрузке в мувик внешнего клипа..
вероятно потому, что никак не связаны с контентом..

Старый 09.08.2007, 00:54
Dr.OH вне форума Посмотреть профиль Отправить личное сообщение для Dr.OH Найти все сообщения от Dr.OH
  № 5  
Ответить с цитированием
Dr.OH

Регистрация: Aug 2003
Сообщений: 299
Отправить сообщение для Dr.OH с помощью ICQ
у меня была точно такая-же проблема... единственное, что я понял, что width и height не меняются ни при загрузке, ни после нее и вообще никак не зависят от того, что мы загрузили в мувик.
единственные параметры, которыми можно управлять - это x, y, xscale, yscale. Хотя, зная изначально размер изображения, этих праметров более чем достаточно.

Старый 09.08.2007, 08:42
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
это не так,
_width, _height напрямую зависят от того, что мы загрузили
_x, _y, _xscale, _rotation, _alpha..- не зависят

Старый 09.08.2007, 10:40
LeVitaN вне форума Посмотреть профиль Отправить личное сообщение для LeVitaN Найти все сообщения от LeVitaN
  № 7  
Ответить с цитированием
LeVitaN

Регистрация: Mar 2007
Адрес: Екатеринбург
Сообщений: 6
silin и Dr.OH,
Спасибо огромное за ответы.
Проблему решил, определив все обработчики в методе MovieClipLoader().onLoadInit. Изначально рассматривал этот вариант, но видимо что-то криво сделал и при тестировании не получил желаемый результат.
Тепрь все работает
Еще раз спасибо.

Создать новую тему Ответ Часовой пояс GMT +4, время: 18:24.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:24.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.