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

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

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

Регистрация: Feb 2009
Сообщений: 63
По умолчанию Что происходит с фильтрами, которые заменили в процессе анимации?

Создаю динамически возникновение текстого блока. использую BlurFilter.
меня интересуют ответы на вопросы:
- можно ли не создавать заново BlurFilter в процессе анимации, а пользоваться прошлым (и почему)?
- и что происходит с отработанными BlurFilter-ами?

Код AS3:
MainPageTextBlockMC = new MainPageTextBlock();
stage.addChildAt(MainPageTextBlockMC, 2);
MainPageTextBlockMC.filters = [new BlurFilter(0,0,3)];
 
var MainPageTextBlockTween:Tween = new Tween(MainPageTextBlockMC, "x", Strong.easeOut, MainPageTextBlockMC.x-100, MainPageTextBlockMC.x, 0.8, true);
MainPageTextBlockTween.addEventListener(TweenEvent.MOTION_CHANGE, MainPageTextBlockChangePosition);
 
function MainPageTextBlockChangePosition(e:TweenEvent){
	var tween = e.target;
	var percent = tween.func(tween.time, 0, 1, tween.duration)
	var targetMC:MovieClip = tween.obj;
 
	targetMC.filters = [new BlurFilter(20*(1-percent),0,3)]; // что произойдет с прошлым фильтром?
 
	//targetMC.filters[0].blurX = 20*(1-percent); //почему нельзя сделать так?
	targetMC.alpha = percent*percent;
}
бонусом интересуюсь, что произойдет если сделать так:
Код AS3:
MainPageTextBlockFluid = new FluidObject(...);
MainPageTextBlockFluid = new FluidObject(...);
первый FluidObject остается в памяти? можно его самостоятельно удалить из памяти?


Последний раз редактировалось mrMEM; 28.10.2009 в 18:50.
Старый 28.10.2009, 20:02
Hidest вне форума Посмотреть профиль Отправить личное сообщение для Hidest Найти все сообщения от Hidest
  № 2  
Ответить с цитированием
Hidest
 
Аватар для Hidest

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Его потом уничтожит GC, так как ссылок больше на него нет... Делайте отдельно фильтр и используйте.

Код AS1/AS2:
var bfilter:BlurFilter = new BlurFilter(20*(1-percent),0,3);
targetMC.filters = [bfilter];
если надо изменить характеристику фильтру, делайте новый.

Старый 29.10.2009, 13:01
mrMEM вне форума Посмотреть профиль Отправить личное сообщение для mrMEM Найти все сообщения от mrMEM
  № 3  
Ответить с цитированием
mrMEM

Регистрация: Feb 2009
Сообщений: 63
а самостоятельно ни как не очистить это дело?
меня учили убирать за собой.. mr etc кажется писал где-то, что GC не всегда справляется со своей работой

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

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
targetMC.filters = null; - уберет все фильтры, наложенные на объект

но фильтр все равно будет висеть в памяти до GC... А как попытаться форсировать GC - поиск по форуму поможет.

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

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

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


 


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


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