UI_Form

   <task pointer> = UI_Form( <parent pointer>, <base priority>,
                            <x>, <y>, "<asset name>" [ , <exclusive flag>, <modal flag>, <urgent flag> ] )

引数

  • <parent pointer> 親UIのポインタ
  • <base priority> 基準表示プライオリティ
  • <x>, <y> 表示座標
  • <asset name> 使用するassetのパス
  • <exclusive flag> 排他フラグ。Formが保持する特定コントロールの操作中、他の保持コントロールの操作を禁止する。
  • <modal flag> モーダルフラグ。モーダルフォームとして機能させる(モーダルスタックについて)
  • <urgent flag> アージェント(緊急)フラグ。モーダルスタック上にアージェントレベル(urgent level)で乗るようになり、<modal flag>は自動的に true 扱いとなる。

戻り値

  • <task pointer> 生成された UI_Form タスクのポインタ

解説

UIエディタで生成されたJSONを元に、フォームを表示/管理するタスクを生成する。

コマンド

UI_FORM_SET_ENABLED
フォーム操作の許可/禁止を指定する
  • UI_FORM_SET_ENABLED
       pForm = UI_Form(...)
       sysCommand(pForm, UI_FORM_SET_ENABLED, <enable flag>)
    
    • <enable flag> 許可(true)/禁止(false)
UI_FORM_EXIST_NODE
フォーム内に含まれるノードを名前で検索し、存在するか否かを返す。
  • UI_FORM_EXIST_NODE
       pForm = UI_Form(...)
       <exist-status> = sysCommand(pForm, UI_FORM_UPDATE_NODE, "<node name>")
    
       <node name>  ノード名称文字列
    
UI_FORM_UPDATE_NODE
フォーム内に含まれるノードを名前で検索し、サブコマンドで指定された操作を行う。
  • UI_FORM_UPDATE_NODE
       pForm = UI_Form(...)
       sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, <subcommand>, ... )
    
       <node identifier>  ノードの名称"<node name>"または、FORM_NODE_POINTER で取得される <node pointer> いずれか
    
    
       引数の数と意味は <subcommand> の値ごとに異なる。
    
       FORM_NODE_~: 全ノード共通処理
         <node pointer> = sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_NODE_POINTER)  ノードポインタ取得
    
          ※取得されるポインタは SceneGraph上に存在するノードのポインタであり、そのノードが持つタスクのポインタではないことに注意。
            タスクのポインタを取得する場合は、FORM_NODE_TASK サブコマンド(後述)を使用。
    
         sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_NODE_RECURSIVE, "<function name>") ノード再帰処理
    
           function <function name>(<parent task pointer>, <node pointer>, <index>, <level>)
             -- <parent task pointer>  呼び出し元UI_Formタスクのポインタ
             -- <node pointer>         再帰処理対象となるノードのポインタ
             -- <index>                アイテムインデックス。UI_Formでは常に0
             -- <level>                再帰呼び出しの階層。FORM_NODE_RECURSIVEで指定した<node identifier>に該当するものが0、以降、階層を子の側に辿るごとに+1される。
           end
    
         sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_NODE_TRANS, <x>, <y>)           移動
         sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_NODE_SCALE, <scaleX>, <scaleY>) 表示倍率指定
         sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_NODE_ROT, <rotation-degree>)    回転角指定。正の方向で時計回り。単位はdegree.
         sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_NODE_COLOR, <alpha>, <RGB> )    表示RGBおよびalpha指定
         sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_NODE_VISIBLE, <visible flag> )  表示/非表示切り替え
         sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_NODE_ORDER, <priority> )        表示プライオリティ指定
         <node order> = sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_NODE_GET_ORDER)  表示プライオリティ取得
         <task pointer> = sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_NODE_TASK)     指定した名称のノードを持つタスクポインタを取得
    
           ※FORM_NODE_TASK で取得できるのは、Compositeで指定され起動されたタスクのみであり、
             UI_GENERIC_RECONNECT_NODE 等を使用してスクリプトから後天的に接続したタスクについては対象とならない。
             そのようなタスクについては、別途スクリプタの責任においてタスクのポインタを保持すること。
    
           ※ Order property does not update (起動時のみ):
        (しかし、対応が出来るので相談してください)
    			- UIDragIcon
    			- UIPieChart
    			- UIGroup
    			- UIForm
    			- UIPolyline
    			- UIRubberBand
    			- UIScore
    			- UIMapGroup(Worldから正常に更新される)
    			- MapTask
    			- UIScrollbar (order property unused at all)
    
       FORM_UIE_~: CKLBUIElement型用
         sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_UIE_SET_ENABLED, <enabled flag> )           有効/無効切り替え
         <enabled flag> = sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_UIE_GET_ENABLED)           有効/無効状態取得
         sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_UIE_SET_ASSET, <asset path>, <asset type> ) 表示asset変更
         <asset type> は、form中で使用される目的別の分類。
    		FORM_ASSET_NORMAL    通常時
    		FORM_ASSET_DISABLED  無効時
    		FORM_ASSET_FOCUSED   フォーカス時(タッチパネルデバイスでは無意味)
    		FORM_ASSET_PUSHED    押された時
    
       FORM_UIS_~: CKLBUISelectable型用
         sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_UIS_SET_CLICK, <x>, <y>, <width>, <height> ) クリック範囲指定
         sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_UIS_SET_STICK, <stick flag> )                チェックボックス状態指定
         <sticked status> = sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_UIS_GET_STICK)            チェックボックス状態取得
         sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_UIS_SET_RADIO, <radio ID> )                  ラジオボタンID指定
         sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_UIS_SET_CALLBACK, <callback fct name> )      コールバック関数を実行に変更する
    
       FORM_CONT_~: CKLBUIContainer型用
         sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_CONT_VIEWOFFSET, <offsetX>, <offsetY> )      View内表示offset指定
         <radio value> = sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_CONT_GET_RADIO_VALUE)        ラジオボタン値取得
    
       FORM_TEXT_~: CKLBUITextBox型用
         sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_TEXT_SET, <text string> )                    テキストボックス文字列設定
         <text string> = sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_TEXT_GET)                    テキストボックス文字列取得
       
       FORM_WEB_~: CKLBUIWebView型用
         sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_WEB_SET_URI, <URI string> )                  WebView 表示 URI 指定
         <URI string> = sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_WEB_GET_URI)                  現在の URI 文字列取得
    
       FORM_LBL_~: CKLBLabelNode型用
         sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_LBL_SET_TEXT, "<new text>" )                ラベルテキスト変更
         <text string> = sysCommand(pForm, UI_FORM_UPDATE_NODE, <node identifier>, FORM_LBL_GET_TEXT)               ラベルテキスト取得
    
UI_FORM_INPUT_ENABLE
フォームの表示状態を変えずに操作を許可/禁止する。
  • UI_FORM_INPUT_ENABLE
       pForm = UI_Form(...)
       sysCommand(pForm, UI_FORM_INPUT_ENABLE, <enable flag>)
    
UI_FORM_ANIM_CALLBACK
フォームのアニメーションコールバックを指定する。
  • UI_FORM_ANIM_CALLBACK
       pForm = UI_Form(...)
       sysCommand(pForm, UI_FORM_ANIM_CALLBACK, "<callback name>")
    
       コールバックの型は下記の通り。
    
       function <callback name>(pForm, name, id)
       end
    
        pForm アニメーションを終了させたUI_Formタスクのポインタ
        name  終了したアニメーションの名前
        id    アニメーション起動時に与えたID(必ず0になる)
    
UI_FORM_ANIMATION
名前を指定して、formの持つアニメーションを開始させる。
  • UI_FORM_ANIMATION
       pForm = UI_Form(...)
       sysCommand(pForm, UI_FORM_ANIMATION, "<animation name>" [, <blend flag>])
    
         <animation name> アニメーションの名前
         <blend flag> Form中のアニメーションとの補間フラグ。指定しない場合はfalseと同じ扱いとなる。
                      trueであればこのコマンドで最初に指定した時にだけ再生を行い、
                      falseであれば指定される都度に再生される。
    
UI_FORM_SKIP_ANIM
指定された名称のアニメーションを中断し、終了時のフレーム状態にする。ループアニメーションの場合でも終了する。
  • UI_FORM_SKIP_ANIM
       pForm = UI_Form(...)
       sysCommand(pForm, UI_FORM_SKIP_ANIM, "<animation name>")
    
         <animation name> アニメーションの名前
    
UI_FORM_ANIM_ENTER
"enter" アニメーションを再生する。
  • UI_FORM_ANIM_ENTER
       pForm = UI_Form(...)
       sysCommand(pForm, UI_FORM_ANIM_ENTER)
    
UI_FORM_ANIM_LEAVE
"leave" アニメーションを再生し、終了と同時にタスクを殺す。
  • UI_FORM_ANIM_LEAVE
       pForm = UI_Form(...)
       sysCommand(pForm, UI_FORM_ANIM_LEAVE)
    
UI_FORM_IS_ANIM
現在アニメーションが再生されているか否かをbooleanで返す。
  • UI_FORM_IS_ANIM
       pForm = UI_Form(...)
       <result> = sysCommand(pForm, UI_FORM_IS_ANIM [, "<animation name>" ] )
    
       <animation name> で指定された名称のアニメーションについて、現在動いているノードがあれば true, 再生が終了していれば false を返す。
       <animation name> を指定しない、または nil を指定することで全てのアニメーションについて確認できる。
          この場合、trueであればいずれかのアニメーションが再生中、falseであれば全てのアニメーションが終了している。
    
UI_FORM_SET_GROUP
フォームにグループ名を与える。同じグループ名を持つ UI_Form および UI_List は同一のグループに所属すると見做され、

操作の排他制御が行われる。

   pForm = UI_Form(...)
   sysCommand(pForm, UI_FORM_SET_GROUP, "<group-name>")