Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Помогите разобраться со свойством mask (http://www.flasher.ru/forum/showthread.php?t=111228)

mikleb 18.04.2008 23:17

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

silin 19.04.2008 00:34

чтобы тектсФилд сработал как маска, он должен быть с 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;


mikleb 19.04.2008 00:38

Спасибо!


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

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