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

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

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

Регистрация: Jul 2009
Сообщений: 93
По умолчанию Проблема удаления фильтров

Код AS3:
// рисую квадрат
var s:Sprite = new Sprite();
var g:Graphics = s.graphics;
g.beginFill(0x676767);
g.drawRect(100,100,100,100);
addChild(s);
 
// применяю фильтры
var dropShadow:DropShadowFilter = new DropShadowFilter();
var glow:GlowFilter = new GlowFilter();
var glow2:GlowFilter = new GlowFilter(0x00FF00);
s.filters = [dropShadow, glow, glow2];
 
 
removeFilter(s, glow); // пытаюсь убрать фильтр glow
 
function removeFilter(target:DisplayObject, filter:BitmapFilter):void
{
	var filters:Array = target.filters;				
	var t:int = filters.length;	
 
	while (t--) 
	{		
		trace(filters[t] == filter); // false, false, false
		if (filters[t] == filter)	
			filters.splice(t,1);					
	}			
 
	if(filters.length == 0)
		filters = null;
 
	target.filters = filters;		
}
 
 
trace(s.filters[0] == dropShadow); // false, почему?
Как удалить один из фильтров объекта, не зная их порядок?

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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
в сеттере obj.filters используются(применяются к объекту) не сами объекты фильтров, а их копии
поэтому то, что ты вытаскиваешь из target.filters, это совсем другие объекты, чем те которые были в target.filters = [..]

>>Как удалить один из фильтров объекта, не зная их порядок?
выходит, что удалять надо из "своего" массива и его же переприсваивать target.filters

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

Регистрация: Jul 2009
Сообщений: 93
Понятно, вот кстати нашел решение.

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

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

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


 


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


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