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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.11.2006, 02:42
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 1  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Question Установить размер картинки загружаемой в ресайзящийся клип

Загружаю картинки в клип, который изменяет размеры по onEnterFrame. Не могу придумать как сделать так, чтобы загруженная картинка стала такого же размера, как и клип, в который она загружается. Т.е. если картинка изначально меньше чем клип в который она загружается - то все замечательно, а вот если больше - тогда увы =( Получается так, что когда случается onLoadComplete я не могу узнать размеры клипа, в который картинка загружалась, а до того узнавать их бесполезно - они не будут соответствовать действительности.
Буду признателен за любую помошь.
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 12.11.2006 в 23:09.
Старый 12.11.2006, 04:31
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
ммм, я не до конца понял, особенно про размеры.
Ты можешь хранить значения размеров клипа в другом месте, собственно и на onLoadComplete использовать эти значения для подгона картинки. Сохранять значения ширины/высоты клипа надо до тех пор, пока контейнер для картинки имеет нулевые размеры.

Старый 12.11.2006, 05:09
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 3  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
ТЕБЕ ЖЕ НАДО ЧТОБ КАРТИНКА РАЗМЕР ИЗМЕНИЛА.
зачем тогда узнавать её размер? после загрузки задаёшь размер мувику и всё
__________________
Reality.getBounds(this);

Старый 12.11.2006, 15:42
BigDan вне форума Посмотреть профиль Отправить личное сообщение для BigDan Найти все сообщения от BigDan
  № 4  
Ответить с цитированием
BigDan
 
Аватар для BigDan

Регистрация: Apr 2006
Адрес: Kiev
Сообщений: 1,675
Отправить сообщение для BigDan с помощью ICQ
Разве можно изменять размеры загруженой картинки?
Код:
loadMove("pic.jpg",my_mc);
trace(my_mc._width);
//выводит 0

Старый 12.11.2006, 17:24
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 5  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
2BigDan
Можно. Только нужно подождать пока она загрузится
__________________
4am is time to rock

Старый 12.11.2006, 22:52
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
2 Wolsh:
Фишка не в том, что я не могу поменять размер =) а в том, что я не знаю на что его менять.
Т.е. элементарно нужно загрузить кртинку и сделать ее точно такого же размера, какого был контейнер в который она загружалась.

Дело в том, что у клипа не просто изменяется _xscale\_yscale туда может быть приаттачено что-нибудь, или есть даже вариант, когда клип рисуется програмно каждый кадр, т.е. _xscale\_yscale вообще не меняется.
Попробую поподробнее: есть функции которые делают что-то с клипом, для простоты, скажем, перерисовывают его как-нибудь в роде:
Код:
_root.onEnterFrame = function(){
mc.clear();
mc.beginFill(0, 100);
mc.moveTo(0, 0);
mc.lineTo(mc.w+5, 0);
mc.lineTo(mc.w+5, mc.h+5);
mc.lineTo(0, mc.h+5);
mc.lineTo(0, 0);
mc.endFill();
mc.w+=5;
mc.h+=5;
}
Загрузка картинки может начаться и закончиться вне всякой связи с размерами клипа. Но если я еще могу узнать какие размеры были у клипа когда загрузка началась, то вот узнать какими они стали когда загрузка закончилась - не получается (если картинка больше контейнера, то ее размеры, как только она загрузиться, сразу же станут размерами контейнера).
Хотя... вот, пока писал появилась мысль. Можно, в принципе смотреть в onLoadProgress изменения размеров.
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 12.11.2006 в 22:57.
Старый 13.11.2006, 02:06
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 7  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
"нужно загрузить кртинку и сделать ее точно такого же размера, какого был контейнер"
а я разве не об этом говорю? Сохраняешь в переменных размеры контейнера точно перед тем как начать грузить картинку, и как только она загрузилась, делаешь контейнер вместе с картинкой того же размера, какой был? Разве не так?
__________________
Reality.getBounds(this);

Старый 13.11.2006, 06:05
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 8  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
2 Wolsh:
эээ... ну вот представь:
кадр №1 начинаю загрузку (запомнил размеры контейнера)
кадр №2 загрузка продолжается (контейнер тем временем поменял все что только можно. Ну было там четыре програмно нарисованые линии, а больше нет, вместо них приаттачена звездочка =)
кадры 3...10 с контейнером происходят всякие злоключения
кадр №11 - наконец загрузилась картинка... да, я помню, что когда-то в контейнере было всего четыре линии. Но сейчас там уже 52 кружка =) А картинка будет того размера, которого контейнер был 10 кадров назад.
Контейнер продолжает изменяться дальше, вместе с ним - и картинка, только вот она все равно никогда не станет нужного размера...

ЗЫ. Проблема все еще актуальна...
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 13.11.2006 в 08:43.
Старый 13.11.2006, 10:15
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 9  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Так бы и говорил что у тебя не в размерах проблема, чего голову морочишь?
Проблема в том что ты чегото делаешь в ТОМ ЖЕ контейнере. И он меняется сам в том числе и в размерах, пока грузится картинка, так? Ну так делай маску на клип с картинкой, и она не будет никого растягивать. Во всяком случае, когда руками делаешь, то так, а программно не пробовал, не знаю какой эффект. Т.е. перед загрузкой назначаешь контейнеру с картинкой маску - некий клип с заливкой и указываешь ему текущий размер контейнера или меньше, если надо. Потом грузишь картинку и устанавливаешь контейнеру с картинкой новые размеры основного контейнера. Должно сработать.
Если не сработает, значит придется делать бутерброд толще, помещая контейнер с загружающимися картинками еще в один контейнер, в котором должно оставаться некоторое содержимое, чтобы маска не дизаблилась (напр., маленький прямоугольник с альфой 1), и уже этому двойному контейнеру назначать маску.

Т.е. смысл в том, что клип с маской возвращает размер только видимой области (== маски), поэтому растягиваться будет только контейнер, в который загружается картинка, а внешний не будет. А потом клип с картинкой заскалишь, маску заскалишь и всё.
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 13.11.2006 в 12:14.
Старый 13.11.2006, 21:59
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 10  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
ок, спасибо, попробую
__________________
Hell is the possibility of sanity

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

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

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


 


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


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