if~then~else の実装について

MZ Platformとは 掲示板 MZプラットフォームユーザー会掲示板 if~then~else の実装について

3 件の投稿を閲覧中 - 1 ~ 3 件(全 3 件)
  • 著者
    投稿
  • #7004
    TENTEN
    一般参加者

    お世話になります。
    「条件制御」コンポーネントについて確認させてください。

    接続先コンポーネントに「等価演算」を配置して演算させたとします。 その結果(イベント番号)がある値のとき、その下に続く接続先コンポーネント(のメソッド)を起動させるやり方があれば教えてください。

    「等価演算」接続元コンポーネントから「処理完了イベント」で接続先コンポーネントを繋げれば上記ができるのは理解していますが、それだと見た目 if~then~else の流れにならず抵抗があります。

    それもあるのですが、もしかすると接続先コンポーネントに「等価演算」がN個あるとすると、接続元コンポーネントには同数(=ID:が異なる)の「等価演算」を配置しないといけないのでしょうか。

    #7006
    MZPlatformユーザー会
    サイト管理者

    お問い合わせありがとうございます。

    [等価演算(=)]等で判定処理の際、別々のコンポーネントで分けた方が処理を混同せず判りやすい場合もあり、提供しているサンプルファイルでは複数の演算コンポーネントを使用しております。

    以下のような方法が考えられます。
    [ボタン]—●—[等価演算(=)] 演算を行う
           —[イベント生成]アクションイベントの発生 
             引数:メソッド戻り値 整数格納変数 int値を取得する

    [等価演算(=)]—処理完了イベント—「整数格納変数] 数値を文字列で設定する
                       引数:イベント内包 イベント番号  
      
    [イベント生成]—アクションイベント—[目的の処理]イベント番号0又は1

    イベント番号による処理の条件分けには[等価演算(=)]の演算結果をint値で知る必要がありますが、メソッド「演算結果を取得する()」の戻り値はboolean値なので変換処理が必要になります。やはり処理完了イベントから取得するのが一番簡単ですので、一旦変数に格納しています。
    [イベント生成]コンポーネントを使うとイベント番号と共に任意のイベントを発生させることができます。例えば上記のようにメソッド「アクションイベントの発生」の引数で指定したイベント番号で、アクションイベントの接続先処理を分けます。

    ただし、今度は[イベント生成]コンポーネントを複数使用することになります。

    以上、ご検討いただき、ご不明な点、ご要望等ございましたらどうぞ再度ご連絡ください。
    よろしくお願い申し上げます。

    #7007
    TENTEN
    一般参加者

    ご回答ありがとうございます。

    質問内容が悪く申し訳ありません。 やりたかったのは添付ファイルの様な流れでした。
    ご回答から想像するに、恐らくこの実装は無理だろうと判断しました。 よって本質問は締めたいと思います。
    ただし、アドバイスの通り改造してみると、それまで使い方が判らなかった「イベント生成」コンポーネントが何となく見えて来たのは思わぬ収穫でした。

3 件の投稿を閲覧中 - 1 ~ 3 件(全 3 件)
  • このトピックに返信するには、ログインしてください。