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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.05.2009, 21:46
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 1  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
По умолчанию проблема с Tween и LoadClip

Ребят такая проблема Данные беруться из XML ( а точнее ширина , высота и путь откуда грузится картинка ). И так выглядет все вот как : контейнер 100*100 (клип) в нутри которого клип куда грузится картинка. в коде так : _root.contt - контейнер 100*100, _root.contt.d1 - куда грузим. Проблема такая при нажатии на мелкую картинку происходят события типа клип _root.contt приобретает ширину и высоту картинки большой например 800*600, после всего Transition периода начинается загрузка картинки в клип, и ПОЧЕМУ ТО после загрузки картинка становится не 800*600 как должна быть а скажем 2500*2000 ну короче растягивается жутко.... и не равна основному мувику _root.cont, видимо проблема с transition но что именно и как я так и не сумел понять.

П.с. _root.contt - точка привязки в центре. _root.contt.d1 - точка привязки top-left

Вот код для наглядности ( код возможно ужасен, буду не против если есть другой метод создания эффекта Zoom а потом загрузки)

Код:
_level0.main["g"+j].container_small.ID = j;
			_level0.main["g"+j].container_small.onRelease = function() {
					
         var link = this;
				_root.contt._visible = true;
				
				_root.contt._width = wei[this.ID];
				_root.contt._height = hei[this.ID];

				TransitionManager.start(_root.contt,{type:Zoom, direction:Transition.IN, duration:1, easing:Regular.easeOut}); 



				_root.contt.allTransitionsInDone = function() {
					
					
					var v_obj:Object = new Object();
					var my_v:MovieClipLoader = new MovieClipLoader();
					v_obj.onLoadStart = function(target_mc:MovieClip) {  }
					my_v.addListener(v_obj);
					
					my_v.loadClip(Vizual[link.ID],_level0.contt.d1);
					
				};
			};
Переменные поясняю -
j - переменная цикла выбирающая нужную картинку из массива. массива - Vizual
wei и hei соответсвенно массивы со значениями разрешения картинки например wei = 800 , hei = 640


Последний раз редактировалось in4core; 05.05.2009 в 21:49.
Старый 05.05.2009, 23:18
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Ну так Вы же сами увеличили контейнер в 8 раз. И картинка увеличилась бы в 8 раз, если бы не ограничения плеера на размер))) Параметры _xscale и _yscale контейнера посмотрите.
__________________
Reality.getBounds(this);

Старый 05.05.2009, 23:52
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 3  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
ну так подскажите пожалуйста как сделать чтобы ресайзился только один клип а другой внутри него нет.

Вот переписал под себя немного как хотел проблема теперь не увеличения стала а уменьшения и т.д. вот коl
Код:
_level0.main["g"+j].container_small.onRelease = function() {
					
         var link = this;
				_root.contt._visible = true;
				
				
				
				var tween_handler:Tween = new Tween(_root.contt, "_width", Strong.easeIn, _root.contt._width, wei[link.ID], 1, true);
				var tween_handler:Tween = new Tween(_root.contt, "_height", Strong.easeIn, _root.contt._height, hei[link.ID], 1, true);
				tween_handler.onMotionFinished = function() { 
				
				
					var v_obj:Object = new Object();
					var my_v:MovieClipLoader = new MovieClipLoader();
					v_obj.onLoadProgress = function(target_mc:MovieClip) {  }
					my_v.addListener(v_obj);
					
					my_v.loadClip(Vizual[link.ID],_level0.contt.d1);
   
				};


			};
my_v.loadClip(Vizual[link.ID],_level0.contt.d1); тоесть чтобы этот гнусный d1 не ресайзился. Хотя мне как новечку непонятен тот факт что допустим я нарисую маску-контейнер 1000*1000 и буду грузить туда картинку 15*20 то она загрузится в 100% соотношении а не станет под стать 1000*1000, а тут поидее тоже без разницы ведь ресайз идет до загрузки а не после! выходит что поидее так же должно быть 100% соотношения. Поясните этот факт тоже и как все решить
Заранее спасибо

П.с. была другая идея грузить картинку из клипа выше этого тоесть на _level0 любого чтобы ниче не ресайзилось. но тогда я просто не поймаю _x и _y клипа ведь картинка должна равнятся его координатам. Почему не поймаю ? потому что как уже написал выше точка привязки в центре клипа а Top-Left сделать нельзя тогда эффект твина будет не из центра !


Последний раз редактировалось in4core; 05.05.2009 в 23:54.
Старый 06.05.2009, 02:16
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 4  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

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

Добавлено через 11 минут
Да, надо вообще Вам почитать в хелпе про _xscale и _yscale - в этом проекте Вам без них не обойтись. Если изберете второй путь, Вам придется также рассчитывать координаты с учетом этих двух свойств. Поэтому рекомендую всеже сделать ту графику, что всегда у Вас в контейнере, отдельным клипом и менять его размеры, тогда хоть с координатами картинки мороки не будет. Удачи и спокойствия))
__________________
Reality.getBounds(this);

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

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

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


 


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


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