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

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

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

Регистрация: Nov 2013
Сообщений: 47
По умолчанию Маска нестандартной формы

Я пытаюсь сделать маску при помощи битмапы, т.е. имеет такую форму.



Все что не белого цвета прозрачно. Так применяя такую маску она обрезает прямоугольник вместо такой формы. Можно ли как это реализовать? Примитивами вряд ли получится сделать такую маску.

Вот исходный код

Код AS3:
package
{
	import flash.display.Bitmap;
	import flash.display.Sprite;
 
	[SWF(width="960", height="640", frameRate="60", backgroundColor="0x4a4137")]
	public class Main extends Sprite
	{
		[Embed(source="jack.jpg")]
		private var PhotoImg:Class;
 
		[Embed(source="faceArea.png")]
		private var FaceAreaImg:Class;
 
		private var _imageBox:Sprite;
 
		public function Main()
		{
			createMask();
		}
 
		private function createMask():void
		{
			var img:Bitmap = new PhotoImg();
			_imageBox = new Sprite();
			_imageBox.x = 0;
			_imageBox.y = 0;
			_imageBox.addChild(img);
			addChild(_imageBox);
 
			var faceArea:Bitmap = new FaceAreaImg();
			faceArea.x = 50;
			faceArea.y = 50;
			addChild(faceArea);
 
			_imageBox.mask = faceArea;
		}
	}
}

Старый 12.11.2013, 19:02
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 2  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Попробуйте так:
Код AS3:
_imageBox.cacheAsBitmap=true;
faceArea.cacheAsBitmap=true;
 
_imageBox.mask = faceArea;

Старый 12.11.2013, 19:06
helio вне форума Посмотреть профиль Отправить личное сообщение для helio Найти все сообщения от helio
  № 3  
Ответить с цитированием
helio

Регистрация: Nov 2013
Сообщений: 47
Цитата:
Сообщение от samana Посмотреть сообщение
Попробуйте так:
Код AS3:
_imageBox.cacheAsBitmap=true;
faceArea.cacheAsBitmap=true;
 
_imageBox.mask = faceArea;
большое спасибо. То что нужно. А можно ли в будущем вырезать картинку по этой форме?

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Смотрите в сторону копирования каналов. http://help.adobe.com/ru_RU/FlashPla...#copyChannel()
Суть в том, что в картинку можно скопировать любой канал (красный, синий, зелёный, альфа) из другой картинки.
Или просто сделать draw объекта (контейнера), в котором лежит картинка с применённой к ней маской.


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

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

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


 


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


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