Показать сообщение отдельно
Старый 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;