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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.05.2010, 14:07
serdeles вне форума Посмотреть профиль Отправить личное сообщение для serdeles Найти все сообщения от serdeles
  № 1  
Ответить с цитированием
serdeles
[+4 24.05.10]

Регистрация: May 2003
Адрес: Москва
Сообщений: 186
По умолчанию Управление размытием (Blur)

Взял за основу этот код (отсюда: http://www.flasher.ru/forum/showpost...postcount=10):

Код AS1/AS2:
// Импортируем класс фильтра
import flash.filters.BlurFilter;
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Point;
////
var blur:BlurFilter = new BlurFilter(10, 10, 3);
////	
blur_button.onPress = function(){
	var bmp:BitmapData = new BitmapData(Stage.width, Stage.height, false, 0xFFFFFF);
	this._visible = false;
	var rect:Rectangle = new Rectangle(0,0,Stage.width, Stage.height);
	var point:Point = new Point(0,0);
	bmp.draw(_root);
	_root.attachBitmap(bmp, _root.getNextHighestDepth(), "auto", true);
	bmp.applyFilter(bmp,rect,point,blur);
	this.swapDepths(_root.getNextHighestDepth());
	this._visible = true;
	var mes:MovieClip = _root.attachMovie("message","msg_mc",_root.getNextHighestDepth(),{_x:125, _y:140});
	mes.close_btn.onPress = function(){
		bmp.dispose();
		_root.blur_button.enabled = true;
		this._parent.removeMovieClip();
	}
	this.enabled = false;
}
Возникло два вопроса.

1. Хочу каким-то образом вклинить в него строчку с интервалом (для того, чтобы размытие происходило плавно). Что-то наподобие этого:

Код AS1/AS2:
setInterval(setBlur, 20, target_mc, 100, 10);//старт применения блюра в 10 шагов с 0 до 100 с промежутком между шагами в 20 mc
Но не знаю, как это сделать, и вообще, реально ли это применить к данному коду.

2. Один из мувиков должен находиться как бы на верхнем слое. То есть: всё, что ниже, заблёрено. Я так понимаю, в код с размытием надо прописать исключение — имя мувика, который не будет заблёрен. Подскажите, как это сделать.
__________________
Достал уж всех своими глупыми вопросами...


Последний раз редактировалось serdeles; 20.05.2010 в 14:10.
Старый 20.05.2010, 14:58
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 2  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

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

Старый 20.05.2010, 15:00
serdeles вне форума Посмотреть профиль Отправить личное сообщение для serdeles Найти все сообщения от serdeles
  № 3  
Ответить с цитированием
serdeles
[+4 24.05.10]

Регистрация: May 2003
Адрес: Москва
Сообщений: 186
А можно о swapDepth поподробнее?
Ага, в хелпе щас поковыряюсь, спасибо.
__________________
Достал уж всех своими глупыми вопросами...

Старый 20.05.2010, 17:26
serdeles вне форума Посмотреть профиль Отправить личное сообщение для serdeles Найти все сообщения от serdeles
  № 4  
Ответить с цитированием
serdeles
[+4 24.05.10]

Регистрация: May 2003
Адрес: Москва
Сообщений: 186
Почти понял про swapDepths

Код AS1/AS2:
import flash.filters.BlurFilter;
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Point;
////
var blur:BlurFilter = new BlurFilter(10, 10, 3);
////	
blur_button.onPress = function(){
	var bmp:BitmapData = new BitmapData(Stage.width, Stage.height, false, 0xFFFFFF);
	this._visible = false;
	var rect:Rectangle = new Rectangle(0,0,Stage.width, Stage.height);
	var point:Point = new Point(0,0);
	bmp.draw(_root);
	_root.attachBitmap(bmp, _root.getNextHighestDepth(), "auto", true);
	bmp.applyFilter(bmp,rect,point,blur);
	this.swapDepths(_root.getNextHighestDepth());
	this._visible = true;
 
	close_btn.onPress = function(){
	bmp.dispose();
	_root.blur_button.enabled = true;
	this._parent.removeMovieClip();
	}
 
	close_btn.swapDepths(_root.getNextHighestDepth());
	oval.swapDepths(_root.getNextHighestDepth());
	this.enabled = true;
}
Но, видимо, не всё.
Не могу добиться, чтобы по нажатию на blur_button под мувиками oval и close_btn не было битмапа. Сейчас из-за него эффект какой-то непонятной тени.
Вложения
Тип файла: zip blur.fla.zip (6.1 Кб, 63 просмотров)
__________________
Достал уж всех своими глупыми вопросами...

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

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

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


 


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


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