Apache flex 滚动条去皮问题
我正在我的flex应用程序中对滚动条进行蒙皮,但遇到了一个问题。 滚动条之间的白色方块(查看图像)破坏了我的所有设计,我需要禁用它,使其不可见,更改背景色,alpha或smth,就像这样 我可以在这里粘贴一些代码,但我认为没有必要。 在Flex3中工作。 有什么想法吗Apache flex 滚动条去皮问题,apache-flex,actionscript-3,flex3,scrollbar,skin,Apache Flex,Actionscript 3,Flex3,Scrollbar,Skin,我正在我的flex应用程序中对滚动条进行蒙皮,但遇到了一个问题。 滚动条之间的白色方块(查看图像)破坏了我的所有设计,我需要禁用它,使其不可见,更改背景色,alpha或smth,就像这样 我可以在这里粘贴一些代码,但我认为没有必要。 在Flex3中工作。 有什么想法吗 您尝试过设置吗 background-alpha: 0.0; 在获取滚动条的容器上?它应该让容器的矩形拾取父对象的颜色。一个肮脏的技巧是使用遮罩隐藏该正方形。 大概是这样的: <mx:WindowedApplication
您尝试过设置吗
background-alpha: 0.0;
在获取滚动条的容器上?它应该让容器的矩形拾取父对象的颜色。一个肮脏的技巧是使用遮罩隐藏该正方形。 大概是这样的:
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="creationComplete()">
<mx:Script>
<![CDATA[
import mx.core.UIComponent;
public function creationComplete():void
{
var compMask:UIComponent = new UIComponent;
compMask.graphics.beginFill( 0xff0000 );
compMask.graphics.drawRect( 0, 0, comp.width, comp.height - 16 );
compMask.graphics.drawRect( 0, comp.height - 16, comp.width - 16, 16 );
compMask.graphics.endFill();
addChild( compMask );
comp.mask = compMask;
}
]]>
</mx:Script>
<mx:Canvas id="comp" width="300" height="300" horizontalScrollPolicy="on" verticalScrollPolicy="on"/>
</mx:WindowedApplication>
只要试过,就行了。每次调整组件大小时,只需重新绘制遮罩。最好的办法是创建一个自定义类来扩展画布并自己完成工作
编辑:当然,如果值不同,您会希望通过自定义滚动条的重量更改“16”。我实际上发现罪魁祸首正在查看Flex框架。 这个方块(称为
白盒
)是在Container.as中创建的
摆脱它非常容易,只需创建一个类来扩展要使用的容器
画布示例:
package
{
import mx.containers.Canvas;
public class NoWhiteBoxCanvas extends Canvas
{
public function NoWhiteBoxCanvas()
{
super();
}
override public function validateDisplayList():void
{
super.validateDisplayList();
this.whiteBox.visible = false;
}
}
}
然后在MXML中:
<local:NoWhiteBoxCanvas width="300" height="300" horizontalScrollPolicy="on" verticalScrollPolicy="on"/>
…然后再也没有白色方块了;) 您已经有了一个很好的答案,但另一种选择是手动管理您的滚动条。您可以将滚动条放在应用程序的任何位置,并将其绑定以滚动所需的控件。这样做可以有效地让垂直滚动条拉伸额外的16个像素以覆盖白盒。请注意,只有在保证始终需要滚动条的情况下,我才会这样做。最终会有点像我在这里画的很糟糕的文字:
| |
| |
__________|__|
_______| >|\/|
如果可以,请尝试Flex4。它使滚动条的蒙皮更加容易。项目几乎是在flex3中完成的。所以搬家秋葵要花很多时间哦。。。我尽量避免用那种方式解决问题。不过还是要谢谢你!是的,正如我之前所说,这很肮脏,但我没有找到任何其他方法来解决这个问题=/