Node.clipは何に使うのですか

例:四角い画像から円形に切り抜く

Node.clipを使うと表示したいところだけを切り抜く(clip)ことができます。 例えば、画像を使ったカスタムノードを作ったとします。 画像は四角形なのですが、これを円形で切り抜いて表示したい場合、 clipを使います。

例:

imageView = ImageView{
  fitWidth:width fitHeight:height
  image:image
  clip: Circle {
    centerX: width / 2, centerY: height /2 radius: width /2
  }
}

図:丸い画像なのかと思わせるIconカスタムノード

例:スクロールしてハミ出した部分を隠す

例えば垂直スクロールバーを付けたカスタムノードを作ったとしましょう。 スクロールの実装は、スクロールバーの位置に応じて、その中身のノードを移動させます。 縦に長いノードを下へ下へとスクロールすれば、上に流れていった部分は見えなくなって然(しか)るべきなのですが、 移動させているだけなので、そうは行きません。clipを使って表示すべき領域を定義すべきです。 clip領域から外に移動したノードは見えなくなります。

例:

public class TwitPane extends Resizable, CustomNode{
...
  override var clip = Rectangle{
    width: bind width
    height: bind height
  }
...
}

図:スクロールバーを持ったTwitPaneカスタムノード


カウンター

Home