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

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

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

Регистрация: Feb 2008
Сообщений: 111
По умолчанию Помогите разобраться со свойством mask

1) Почему если mask некоторого дисплей обжекта присвоить некоторый TextField то дисплей обжект становится полностью прозрачным, а не та его часть над которой написан текст?
2) Где про это свойство можно прочитать по подробнее, а то в адобском хэлпе почти ничего не написано?

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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
чтобы тектсФилд сработал как маска, он должен быть с embedFonts = true;
Код:
var frame:Shape = new Shape();
frame.graphics.lineStyle(0, 0xFF0000);
frame.graphics.beginFill(0x008000);
frame.graphics.drawRect(0, 0, 300, 300);
frame.graphics.endFill();
addChild(frame);

var tf:TextField = new TextField();
tf.embedFonts = true;
tf.text = "bla\nbla-bla";
tf.setTextFormat(new TextFormat("Tahoma", 24, 0x004080, true, true));

frame.mask = tf;
другой вариант (без ембед): срисовать текстФилд в прозрачный битмап и его сделать маской, в этом случае и маска и маскируемый объект должны быть с cacheAsBitmap = true; и добавлены в дисплейлист (addChld)
Код:
var frame:Shape = new Shape();
frame.graphics.lineStyle(0, 0xFF0000);
frame.graphics.beginFill(0x008000);
frame.graphics.drawRect(0, 0, 300, 300);
frame.graphics.endFill();
frame.cacheAsBitmap = true;
addChild(frame);

var tf:TextField = new TextField();
tf.text = "bla\nbla-bla";
tf.setTextFormat(new TextFormat("Tahoma", 24, 0x004080, true, true));

var bitmap:Bitmap=new Bitmap(new BitmapData(tf.width, tf.height, true, 0x00000000));
bitmap.bitmapData.draw(tf);
bitmap.cacheAsBitmap = true;
addChild(bitmap);
frame.mask = bitmap;

Старый 19.04.2008, 00:38
mikleb вне форума Посмотреть профиль Отправить личное сообщение для mikleb Найти все сообщения от mikleb
  № 3  
Ответить с цитированием
mikleb

Регистрация: Feb 2008
Сообщений: 111
Спасибо!

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

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

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


 


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


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