ForEach使用時の挙動

ホーム フォーラム CF2.5使用法全般 ForEach使用時の挙動

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

    製作中に気が付いたのですが、292.29バージョンではForEachと同じイベント行で文字列を変更すると反応しないようになってしまいました。
    変数の挙動がおかしいと言うべきかもしれません。

    • このトピックはnoru123が3年、 5ヶ月前に変更しました。
    Attachments:
    You must be logged in to view attached files.
    #34247
    noru123
    参加者

    さらに高速ループも絡めると、より謎な動作をします。

    私の環境だけでこうなるのか、この動作が正しくて私の理解が間違っているのかわからないので、確認だけでもお願いします。

    Attachments:
    You must be logged in to view attached files.
    #34249
    ASD
    キーマスター

    「292.29ではおかしい」とのことでしたので、292.26、292.22へ戻して実行してみましたが、文字列に入っている変数の値は292.29と同じく、8と2になります。どのような動作を想定されているのでしょうか?

    #34250
    noru123
    参加者

    私の環境はどうやら壊れているっぽいですね。
    ForEach高速ループと連携.zipを試すと私の環境では上が0で下が2になります。
    でもこのコードだと本来は上は8で下も8になると思うんですがどうでしょう?

    • この返信は3年、 5ヶ月前にnoru123が編集しました。
    • この返信は3年、 5ヶ月前にnoru123が編集しました。
    #34253
    noru123
    参加者

    再インストールしてみたんですがやっぱり上の文字列は0で下が2になります。

    #34256
    ASD
    キーマスター

    ForEachと高速ループの実行行を分けるとどちらも8になりました。
    これは『そういうお作法』だと思っていただくしかないと思いますが、ループの実行アクションが同じ行にまとまっていると上手くいかないことがあります。

    – サンプルプログラム
    https://blog.clickteam.jp/wp-content/uploads/2020/11/cf25_blog_2020-11-06_ForEach高速ループと連携.zip

    もしくはこうすることで同じ行でも上下とも8になりました。

    – サンプルプログラム
    https://blog.clickteam.jp/wp-content/uploads/2020/11/cf25_blog_2020-11-06_ForEach高速ループと連携2.zip

    • この返信は3年、 5ヶ月前にASDが編集しました。
    #34259
    noru123
    参加者

    サンプルありがとうございます。
    アンインストール後にPCをシャットダウンして再インストールしたら製作中の物が復活しました。
    やっぱりなんか壊れてたみたいです。

    2個目のサンプルは一周遅れで高速ループを利かせてるんですね。
    一周遅れで効果を発揮するループはよく見てたんですが、自分ではまったく使わないのでその発想は消えてましたので勉強になりました。

    でも、今の状態でも私が最初に添付したForEach.zipを試すと上の文字列が0で下が8になるんですが、これもやっぱり作法みたいな物ですか?
    こちらも臨んだ結果は両方とも8なんですが。

    #34264
    ASD
    キーマスター

    最初のサンプルでは1行目のアクションの順序が、変数を0にセットした後に文字列へ変数を入れているので0になります。変数をリセットする前に文字列へ入れれば8になります(上の文字列が8になるのはループが実行された後の次のイベントループ(フレーム)になるので1F遅れる形になります)。

    #34266
    noru123
    参加者

    チェックしていただきありがとうございます。
    なるほど、その方法だと一回遅れでも許容出来るようにすれば大丈夫ですね。

    昨日質問する前に変数の中身の流れを確認して、イベントをどう組んでもイベントの最後にForEachが動いて変数に数値が入るので、イベントの中にある文字列の値が0のままになってしまう状態が、動作としておかしいのではないかと思ったのです。
    順番に動いてないのを私が気が付いてなかったのもありますけどね。

    そしてASD様のおそらくForEach高速ループと連携.zipでの報告で8と2が表示されたと報告があり、それから考えるとASD様の環境ではイベントの途中でもForEachの順序が守られているように思えたので、作法やバグとしても私とASD様の動作の再現性が確保されていないのは何かおかしい、ということでの再度の質問でした。
    複雑な動作をする必要があればどこかに差異があって再現性がないのもわかりますが、同じコードを実行させるだけで一方は0と2でもう一方は8と2なのは、明らかに異常ですから。

    とりあえず今はまともに動作しているので、あまり考えないようにして製作してますが、動作の差異があった事を思うと少し微妙な気分になります。

    #34267
    ASD
    キーマスター

    いえ、あれは最初のサンプルでは下が8で、ForEach高速ループと連携.zipでは2になったということでした。上の文字列は共に0でした。

    #34268
    noru123
    参加者

    それなら心配する必要ありませんね。
    安心しました。

    対応していただきありがとうございました。
    また何かありましたらよろしくお願いします。

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