2009-08-24 12 views
0

一部のスプライトアプリケーション(つまりpulpcore)では、オブジェクトのアンカーポイントを定義できます。JavaFXノードのx、yのアンカーポイント

たとえば、矩形のアンカーポイントが0,0で、座標がx:0,y:0の場合、矩形の左上の点は画面の左上の点に表示されます。矩形のアンカーポイントが50,50であり、それのサイズが100x100であるが、長方形の中央が0,0に配置されるであろうとだけでは右下の部分が表示されるなら

JavaFXにも同様のプロパティがありますか?これを実装する簡単な方法はありますか(xyのJavaFXノードの座標を独自の高さと幅にバインドできますか?)

x,yの座標をboundsInLocal/Parent.widthにバインドすると、実行時例外が発生します。

答えて

2

あなたが言うように、四角形の原点は左上になります。 ノードの配置には2つのオプションがあります。 layoutXとlayoutYのどちらも使用できます。 VAR RECT =矩形{ layoutX:50 layoutY:50 widht:100 高さ:100 }

又は移動Xと移動Y

するvar RECT =矩形{ 移動X:50 移動Y:50 layoutX/YとtranslateX/Yの両方を使用する主な目的は、translateX/Yが変更可能であることを意図しているのに対し、layoutX/Yは初期位置決めのためであるということです。たとえば、元の位置がlayoutX/Yに記憶されている間にアニメーションのtranslateX/Yを変更することができます。最終的な場所は常にlayoutX + translateXとlayoutY + translateYです。

原点を中心点(50,50)に移動するには、負の平行移動を使用します。 VARのRECT =矩形{ 移動X:-50 移動Y:-50 widht:100 高さ:100 }

一部形状が左上原点​​に基づいていません。たとえば、CircleはcenterXとcenterYを使用します。

+0

十分ではありません。現在のノードの幅にX、Yをバインドします。 –

+0

することができます: var rect:Rectangle {x:bind rect.width y:bind rect.height}; または好ましくは var rect:Rectangle {layoutX:bind rect.width layoutY:bind rect.height}; – JimClarke

+0

申し訳ありませんが、xとyはノードから削除されています。 layoutX/YまたはtranslateX/Yを使用する必要があります。したがって、Rectangle {layoutX:bind rect.layoutBounds.width}を実行できます。 – JimClarke

関連する問題