|
在flash8中使用组件的时候,使没有backgroundAlpha属性的
那么我们要想使用透明的组件要怎么做呢~~
实现透明的文本最简单,
1.flash中的文本工具本身就是没有背景的,如果不需要显示比较长的文档的话,使用这个就足够了.
并且文本可以设置支持html格式.
优点:使用方便,设置字体很简单
缺点:要使用滚动条的话就需要自己画了,html方式显示图片有变形
2.textarea组件
简单的方法:我们可以设置textarea的backgroundColor和背景色相同
mytextarea.backgroundColor ="0xABCDEF";
注意:颜色格式"0x******",使用"#******"是不起作用的.
隐藏方法:
设置textarea的depthChild0._alpha
mytextarea.depthChild0._alpha = 0;
接下来设置
mytextarea.setStyle("borderStyle", "none");去掉边框,
textarea背景就完全看不出来啦~
这种方法对于list datafield tree 和window都是可用的,但是
会使继承了list的事件失效
如changed rollover等等
这时,有一个有趣的方法
_global.styles.ScrollSelectList.backgroundColor = undefined; mx.controls.listclasses.SelectableRow.prototype.drawRowFill = function (myTree:MovieClip, newClr:Number): Void { myTree.clear(); if (newClr == undefined){ myTree.beginFill(0xABCDEF, 0); }else{ myTree.beginFill(newClr); }; myTree.drawRect(1, 0, this.__width, this.__height); myTree.endFill(); };
用来替换了SelectableRow中的
function drawRowFill(mc : MovieClip, newClr : Number) : Void
{ mc.clear(); mc.beginFill(newClr); mc.drawRect(1, 0, __width, __height);
mc.endFill(); mc._width = __width; mc._height = __height; }
myTree.beginFill(0xABCDEF, 0);中0xABCDEF表示颜色,0表示透明度
其中有个很诡异的问题:if...else两部的语句貌似都有执行 如果给newClr定义一个颜色,就会把背景填充为那个颜色,就是只执行else里面的语句了..
.....而让它们同时执行的话又会丢失list的事件...
下次有兴趣可以深入研究一下~~~ to be continue...
(第一次写教程,多多包涵)
|
查看文章 |
flash8下的组件背景透明
2007-10-01 11:42
最近读者: