キーボードで操作するタイプのメニューについて

ホーム フォーラム CF2.5使用法全般 キーボードで操作するタイプのメニューについて

  • このトピックには2件の返信、2人の参加者があり、最後にSpireaにより4年、 6ヶ月前に更新されました。
3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #33394
    Spirea
    参加者

    お世話になっております。
    仕様が判らず悩んでおりまして何方かお力を貸していただけると有り難いです。

    現在、キーボード操作によるメニューを制作しています。
    たとえば下キーを押すと項目が A > B > C > A …
    上キーを押すと項目が C > B > A > C …
    と移動するようなイベントを組もうとする際、
    [項目番号を示す変数]と[キーを押したとき]の条件のみであると、上(下)キーを押し続けたときに高速で選択肢が移行いたします。

    想定している動作としては、項目にいるとき上(下)キーを押したら高速移行せずに1つ上か下の項目に留まる(⇒入力時、次入力の待ちを作る)、というイベントを組みたいです。
    過去トピックの”ボタン入力受付時間”が近いと思うのですが、同様にして[押した瞬間]という条件を擬似的に作り出すことは可能でしょうか。
    何卒宜しくお願いいたします。

    Attachments:
    You must be logged in to view attached files.
    #33396
    MYTH
    参加者

    >>Spireaさん

    こんにちは。
    CF2.5における仕様として、イベントは上から順番に「条件を判断し、満たしていればアクションを実行する」という処理をイベント行ごとに行う、というものがあります。
    この処理は1フレーム(1/60秒)毎に全てのイベントに対して一回ずつ行われます。

    項目のカーソル移動に対して以下のようなイベントを組んだとします。

    条件1:下矢印キーを押す
    条件2:選択中の項目の番号が 1 である
    アクション1:項目の番号を 2

    条件1:下矢印キーを押す
    条件2:選択中の項目の番号が 2 である
    アクション1:項目の番号を 3

    条件1:下矢印キーを押す
    条件2:選択中の項目の番号が 3 である
    アクション1:項目の番号を 4

    このとき、最初の項目の番号は1ですから、最初のイベントの行は条件を満たしているので実行されますね。
    すると、そのアクションによって2つ目のイベントの条件が満たされてしまいます。
    「下矢印キーを押した」という状態はこの1フレームの間は適用されているからです。

    そして2つ目のイベントで条件が満たされて、3つ目のイベントが実行…というように、一瞬にして全て実行されてしまうのです。

    つまり、連続して実行させないためには「この1フレームの間は他のイベント行の条件を満たさないようにする」ことが必要になります。

    サンプルプロジェクトにも説明が記載されています。ぜひご覧ください。
    シンプルな仕様なので、試していただければすぐ理解できますよ!

    自分は説明下手なので毎回長文になってしまい申し訳ないです(汗)

    Attachments:
    You must be logged in to view attached files.
    #33401
    Spirea
    参加者

    >>MYTHさん

    返信、サンプルプロジェクトの制作有難うございます。

    拝見しましたが、カーソル操作のイベントがよりコンパクトな形になっていて非常に理解しやすかったです。
    このように組み込む必要があったのですね…

    サンプルを基にして同じように試したところ正常に動作いたしました。
    大変感謝いたします!

3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • このトピックに返信するにはログインが必要です。