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

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

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

Регистрация: May 2007
Сообщений: 6
По умолчанию уменьшение загружаемого клипа

Есть флешка, в которую динамически грузится клип. Высота и ширина загружаемого клипа больше, чем размер флешки. Нужно уменьшить клип пропорционально до размеров флешки.

Есть такой код, но клип не уменьшается. Подскажите, в чем ошибка?

Код:
loadMovie(muv, target_mc);
	
	trace(target_mc._width);
	xx = Math.round((Stage.width * 100) / target_mc._width);
	yy = Math.round((Stage.height * 100) / target_mc._height);
	trace(xx+','+yy+','+target_mc._width);
	target_mc._xscale = target_mc.xx;
	target_mc._yscale = target_mc.yy;

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
MovieClipLoader вам поможет.

Старый 22.05.2007, 16:49
ellis вне форума Посмотреть профиль Отправить личное сообщение для ellis Найти все сообщения от ellis
  № 3  
Ответить с цитированием
ellis

Регистрация: May 2007
Сообщений: 6
Изменила загрузку клипа.
Код:
var clip_mcl:MovieClipLoader = new MovieClipLoader();
clip_mcl.loadClip(muv, target_mc);

xx = Math.round((Stage.width * 100) / target_mc._width);
yy = Math.round((Stage.height * 100) / target_mc._height);
trace(xx+','+yy);
target_mc._xscale = xx;
target_mc._yscale = yy;
Проблема в том, что клип не уменьшается. Если в вместо хх и уу прописать конкретные значения, то xscale и yscale срабатывают. Если же оставить переменные - не работает.

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Неправильно. Сперва клип грузим, потом с ним работаем. Для этого и нуже MovieClipLoader и его неповторимое onLoadInit.

Старый 22.05.2007, 17:40
ellis вне форума Посмотреть профиль Отправить личное сообщение для ellis Найти все сообщения от ellis
  № 5  
Ответить с цитированием
ellis

Регистрация: May 2007
Сообщений: 6
Вот так?

Код:
var clip_mcl:MovieClipLoader = new MovieClipLoader();
var mclListener:Object = new Object();
mclListener.onLoadInit = function(target_mc:MovieClip) {
trace(target_mc._width+','+target_mc._height);
xx = Math.round((Stage.width * 100) / target_mc._width);
yy = Math.round((Stage.height * 100) / target_mc._height);
trace(xx+','+yy);
target_mc._xscale = xx;
target_mc._yscale = yy;
};
	
clip_mc1.addListener(mclListener);
clip_mcl.loadClip(muv, target_mc);

Старый 22.05.2007, 17:51
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 6  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Очень похоже. Если работает, то так.
Хотя погодите, вы хотите его на всю сцену? После загрузки доступны и ширина и высота, можно просто
Код:
mclListener.onLoadInit = function(target_mc:MovieClip) {
 target_mc._heigth = Stage.height;
 target_mc._width = Stage.width;
}
А до загрузки непонятно, что такое ширина клипа который еще не загружен. А вы на это пытались разделить.

Старый 22.05.2007, 17:56
ellis вне форума Посмотреть профиль Отправить личное сообщение для ellis Найти все сообщения от ellis
  № 7  
Ответить с цитированием
ellis

Регистрация: May 2007
Сообщений: 6
С onLoadInit не работает. Вообще не выполняется этот кусок кода.

Старый 22.05.2007, 17:58
Molecula вне форума Посмотреть профиль Отправить личное сообщение для Molecula Найти все сообщения от Molecula
  № 8  
Ответить с цитированием
Molecula
 
Аватар для Molecula

Регистрация: Apr 2007
Сообщений: 1,369
Код:
onLoadComplete
попробуйте


Код:
fmc = createEmptyMovieClip("footer_cell", this.getNextHighestDepth())    	
      fmcl = new MovieClipLoader();
      fmcl.onLoadComplete = function(fmc){
doSomeThing()
		  }
      fmcl.addListener(fmcl);
      fmcl.loadClip("images/footer/"+_img,fmc);
 }


Последний раз редактировалось Molecula; 22.05.2007 в 18:00.
Старый 22.05.2007, 18:00
ellis вне форума Посмотреть профиль Отправить личное сообщение для ellis Найти все сообщения от ellis
  № 9  
Ответить с цитированием
ellis

Регистрация: May 2007
Сообщений: 6
с onLoadComplete - тоже не работает.
Клип загружается, но с ним ничего не происходит. Даже trace не выводится.

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

Регистрация: Apr 2007
Сообщений: 1,369
Исходник надо давать, там косяк какой-то скорее всего в имени файла неправильный или где-то в букве ошиблись - посмотрите внимательней, попейте кофе потом на трезвый глаз смотреть.

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

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

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


 


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


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