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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.10.2008, 13:49
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 11  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Код:
package 
{
	import flash.display.*;
	import flash.text.*;
	
	public class Main extends Sprite 
	{
		public function Main():void 
		{
			var tf:TextField = new TextField();
			tf.autoSize = TextFieldAutoSize.LEFT;
			tf.text = "hello";
			tf.setTextFormat(new TextFormat("_sans", 96));
			
			var distortFilter:Distort = new Distort(tf.width,tf.height);
			tf.filters = [distortFilter.filter];
			
			addChild(tf);
		}
	}
}
Код:
package  
{
	import flash.display.*;
	import flash.filters.*;
	
	public class Distort 
	{
		public var filter:DisplacementMapFilter = new DisplacementMapFilter();
		public function Distort(w:Number,h:Number) 
		{
			filter.componentY = BitmapDataChannel.RED;
			filter.mode = DisplacementMapFilterMode.CLAMP;
			filter.scaleY = 0.5 * h;
			filter.mapBitmap = new BitmapData(w, h, false, 0x808080);
			for (var i:int = 0; i < w; i++) {
				var kx:Number = 1 - 4 * (i/w - 0.5) * (i/w - 0.5);
				for (var j:int = 0; j < h; j++) {
					var ky:Number = j / h;
					var r:int = Math.floor(128 * kx * ky);
					filter.mapBitmap.setPixel(i, j, r << 16 );
				}
			}
		}
	}
}

Старый 06.10.2008, 00:48
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 12  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Если градиент рисовать во флеш, в ввиде рисунка, то он должен покрывать область с текстом, а мувик с текстом должен иметь границу, тоже нарисованную, что бы у фильтра было место дествия, если там только текст, то фильтр не сделает правильного искажения, нужно дополнительные полоски или квадрат для границы.
Теперь если искажать вверх
Код:
            var _scaleY:Number        = -60;
вниз
Код:
            var _scaleY:Number        = 60;
Вложения
Тип файла: zip 1DisplacementMapFilter_.zip (6.5 Кб, 44 просмотров)


Последний раз редактировалось Alex Lexcuk; 06.10.2008 в 00:50.
Старый 06.10.2008, 02:01
NewFolder вне форума Посмотреть профиль Отправить личное сообщение для NewFolder Найти все сообщения от NewFolder
  № 13  
Ответить с цитированием
NewFolder
 
Аватар для NewFolder

Регистрация: Nov 2006
Сообщений: 155
Большое спасибо!
__________________
Нет ничего невозможного

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

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

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


 


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


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