Прозрачный текст на растровом изображении - PullRequest
0 голосов
/ 05 июня 2011

Я использую следующий код для рисования текста из текстового ввода на растровом изображении. Он работает нормально, за исключением проблемы, заключающейся в том, что вместо рисования только текста он рисует текст внутри поля с белым фоном. Как я могу нарисовать только текст без рамки? Я догадался, что это связано с прозрачностью, поэтому я установил прозрачность растровых данных, они по-прежнему не работают.

                        var m:Matrix = new Matrix();
            m.tx=100;
            m.ty=100;

            var txtMatrix:Matrix= new Matrix();
            txtMatrix.tx=bmd.width;
            txtMatrix.ty=bmd.height+50;


            original= new BitmapData(bmd.width+200,bmd.height+400,true,0x00000000);
            original.draw(bmpMy,m);


            var txtMatrix:Matrix= new Matrix();
            txtMatrix.tx=100;
            txtMatrix.ty=bmd.height+105;
            original.draw(txtTitle1,txtMatrix);   

Примечание: bmd BitmapData, который передается в «оригинал», также прозрачен. bmpMy - это растровое изображение из bmd BitmapData

1 Ответ

2 голосов
/ 05 июня 2011

Вы рисуете весь свой компонент TextInput со стандартным TextInputSkin.Так как этот скин имеет рамку и белый фон, они также будут нарисованы.

Я вижу 2 возможных решения:

  1. либо создайте простой текстовый файл ActionScript, скопируйте текст изTextInput в TextField и нарисуйте этот TextField.После рисования вы можете избавиться от TextField.

или

  1. Создать собственный класс обложки для TextInput без рамки и с прозрачным фоном.Возможно, вам придется изменить скин во время выполнения.Вы можете сделать это следующим образом:

.

txtTitle.setStyle("skinClass", MyCustomTextInputSkin);

Когда вы закончите пить, восстановите скин по умолчанию:

txtTitle.setStyle("skinClass", TextInputSkin);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...