Flex アプリでスクロールバーをスキニングしていて、1 つの問題が発生しました。スクロールバー間のこの白い四角形 (画像を表示) は私のデザインをすべて消し去ります。これを無効にし、非表示にし、背景色、アルファ、またはこのように滑らかに変更する必要があります。
ここにコードを貼り付けることができますが、その必要はないと思います。Flex 3 で作業しています。何かアイデアはありますか?
Flex アプリでスクロールバーをスキニングしていて、1 つの問題が発生しました。スクロールバー間のこの白い四角形 (画像を表示) は私のデザインをすべて消し去ります。これを無効にし、非表示にし、背景色、アルファ、またはこのように滑らかに変更する必要があります。
ここにコードを貼り付けることができますが、その必要はないと思います。Flex 3 で作業しています。何かアイデアはありますか?
実際、Flex フレームワークの内部を見ている犯人を見つけました。この正方形 ( と呼ばれるwhiteBox) は Container.as で作成されます。
それを取り除くのはとても簡単です。使用したいコンテナを拡張するクラスを作成するだけです。
Canvas の例:
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 ピクセルを伸ばしてホワイト ボックスを覆うことができます。常にスクロールバーが必要であることが保証されている場合にのみ、これを行うことに注意してください。ここに私の本当に悪いテキスト描画のように見えるでしょう:
| |
| |
__________|__|
_______| >|\/|
汚いトリックの 1 つは、マスクを使用してその正方形を隠すことです。このようなもの :
<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>
試してみただけで、うまくいきます。コンポーネントのサイズが変更されるたびに、マスクを再描画する必要があります。最善の方法は、Canvas を拡張してジョブ自体を実行するカスタム クラスを作成することです。
編集:もちろん、値が異なる場合は、カスタムスクロールバーの重みで「16」を変更する必要があります。
設定してみましたか
background-alpha: 0.0;
スクロールバーを取得しているコンテナで?コンテナの四角形が親の色を拾うようにする必要があります。