Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 位图上的透明文本_Apache Flex_Actionscript 3_Bitmapdata - Fatal编程技术网

Apache flex 位图上的透明文本

Apache flex 位图上的透明文本,apache-flex,actionscript-3,bitmapdata,Apache Flex,Actionscript 3,Bitmapdata,我正在使用以下代码从位图上的textinput绘制文本。它工作得很好,除了一个问题,即它不只是绘制文本,而是在一个具有白色背景的框中绘制文本。我如何在没有方框的情况下只绘制文本?我猜它与透明度有关,所以我将Bitmapdata设置为透明,但仍然不起作用 var m:Matrix = new Matrix(); m.tx=100; m.ty=100; var txtMatrix

我正在使用以下代码从位图上的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);   
注意:传递给“原始”的位图数据bmd也是透明的。
bmpMy是bmd BitmapData中的位图,您正在使用默认TextInputSkin绘制整个TextInput组件。由于此蒙皮具有边框和白色背景,因此也将绘制它们

我认为有两种可能的解决方案:

  • 创建一个简单的ActionScript文本字段,将文本从TextInput复制到TextField并绘制该文本字段。绘制后,可以处理文本字段
  • 为TextInput创建一个自定义皮肤类,该类没有边框,背景透明。您可能必须在运行时更改蒙皮。您可以这样做:
  • 完成drwing后,恢复默认外观:

    txtTitle.setStyle("skinClass", TextInputSkin);
    

    什么是“txtitle1”?一根绳子?文本输入?mx还是Spark?它有皮肤吗?文本输入。定义为:您确定组件已初始化吗?只需使用标准文本字段。
    txtTitle.setStyle("skinClass", TextInputSkin);