位图上的透明文本

时间:2011-06-05 12:34:45

标签: flex actionscript-3 bitmapdata

我使用以下代码从Bitmap上的textinput中绘制文本。它工作正常,除了问题,它不是只绘制文本,而是在带有白色背景的框内绘制文本。如何在没有框的情况下绘制文本?我猜它与透明度有关,所以我将Bitmapdata设置为透明,但它仍然不起作用。

                        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);   

注意:传递给'original'的BitmapData bmd也是透明的。 bmpMy是来自bmd BitmapData

的位图

1 个答案:

答案 0 :(得分:2)

您使用默认的TextInputSkin绘制整个TextInput组件。由于此皮肤有边框和白色背景,因此也会绘制它们。

我看到了两种可能的解决方案:

  1. 创建一个普通的ActionScript TextField,将文本从TextInput复制到TextField并绘制该TextField。绘图后,您可以处理TextField。
    1. 为TextInput创建自定义外观类,不带边框和透明背景。您可能必须在运行时更改外观。你可以这样做:
    2. txtTitle.setStyle("skinClass", MyCustomTextInputSkin);
      

      当你完成瞌睡时,恢复默认皮肤:

      txtTitle.setStyle("skinClass", TextInputSkin);