4

私はjavafxにかなり慣れていないので、ここで学ぼうとしているので、合理的であり、私の質問を否定しないでください。

オブジェクトを移動する方法を知りたいのですが、キープレスやマウスクリック、マウスムーブなど、さまざまなイベントでこの円を考えてみましょう。

Circle circle = new Circle();
circle.setCenterX(100.0f);
circle.setCenterY(100.0f);
circle.setRadius(50.0f);

javafx サイトのチュートリアルで見た KeyFrame を使用する必要がありますか、それともどのように機能しますか?

正直なところ、それほど迷っていなければ、ここで質問することはなかったでしょう。これを明確にするために、イベントを使用して作成したオブジェクトを移動するためのコードは何ですか?

編集:移動とは、上キーを押すと数ピクセル上に移動するか、別のキーで変換するか、シーンのどこかをクリックして即座に移動させるか、特定の速度で移動させることです。html5 キャンバスで必要なように再描画する必要はありません。

4

1 に答える 1

17

html5 キャンバスで必要なように再描画する必要はありません。

JavaFX canvasではなく、標準のJavaFX シーン グラフを使用している場合はそうではありません。

オブジェクトを移動する方法を知りたいのですが、キープレスやマウスクリック、マウスムーブなど、さまざまなイベントでこの円を考えてみましょう

Shapeを移動するには、次の 3 つの方法があります。

  1. 形状のジオメトリを調整できます (円のcenterX /centerY プロパティなど)。
  2. シェイプのレイアウトを調整できます (例: layoutX /layoutY プロパティ)。
  3. シェイプの移動を調整できます (たとえば、translateX /translateY プロパティです)。

レイアウトは、オブジェクトのホーム ポジションと考えることができます。つまり、親グループのコンテキストで通常あるべき場所です。その平行移動変換は、オブジェクトの一時的な位置と考えることができます (オブジェクトがアニメートされているときによく使用されます)。

VBoxTilePaneなどのレイアウト ペインを使用している場合、レイアウト ペインは子ノードのレイアウト座標の設定を処理します。単純なGroupまたはプレーンなPaneまたはRegionを使用している場合は、子ノードの正しいレイアウト値を設定する必要があります。

イベントをリッスンするには、NodesまたはScenesでイベント ハンドラーを設定します。

上記を示す小さなサンプルアプリを次に示します。移動するオブジェクトを内に配置し、さまざまなイベントに応答してGroup内のオブジェクトの位置を変更します。Group

運動イベント

于 2013-01-19T01:05:18.603 に答える