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_Flex3_Scrollbar_Skin - Fatal编程技术网

Apache flex 滚动条去皮问题

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

我正在我的flex应用程序中对滚动条进行蒙皮,但遇到了一个问题。 滚动条之间的白色方块(查看图像)破坏了我的所有设计,我需要禁用它,使其不可见,更改背景色,alpha或smth,就像这样

我可以在这里粘贴一些代码,但我认为没有必要。 在Flex3中工作。 有什么想法吗


您尝试过设置吗

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中完成的。所以搬家秋葵要花很多时间哦。。。我尽量避免用那种方式解决问题。不过还是要谢谢你!是的,正如我之前所说,这很肮脏,但我没有找到任何其他方法来解决这个问题=/