flash8下的组件背景透明2007-10-01 11:42
http://hi.baidu.com/sakura%5Fplu ... 9f448a9e5146c4.html
在flash8中使用组件的时候,使没有backgroundAlpha属性的那么我们要想使用透明的组件要怎么做呢~~实现透明的文本最简单,1.flash中的文本工具本身就是没有背景的,如果不需要显示比较长的文档的话,使用这个就足够了.并且文本可以设置支持html格式.优点:使用方便,设置字体很简单缺点:要使用滚动条的话就需要自己画了,html方式显示图片有变形2.textarea组件简单的方法:我们可以设置textarea的backgroundColor和背景色相同mytextarea.backgroundColor ="0xABCDEF"; 注意:颜色格式"0x******",使用"#******"是不起作用的.隐藏方法:设置textarea的depthChild0._alphamytextarea.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...(第一次写教程,多多包涵)