アプリケーションの駆動シナリオ

nexacro platformアプリが実行されるプロセスは、以下のとおりです。

bootstrap

Applicationをロードするために関連情報を処理し、必要なリソースを取得するプロセスを説明します。このプロセスをブートストラップと表現します。


WRE

NRE

1

index.html

start.json

start_android.json

start_ios.json

2

get bootstrap info

3


update engine

4

update resource (data)

5

load framework files

6

load component modules

7

load Application

一般的に、ブートストラップは、コンピュータが外部入力なしで、自ら開始する準備をするプロセスを意味します。主にメモリに含まれる情報に基づいて動作し、起動(booting)と表現することもあります。

https://en.wikipedia.org/wiki/Bootstrapping

nexacro platform アプリの実行プロセスで使用されるブートストラップという用語は、アプリを開始する準備をする過程という表現を含んでいます。

Applicationロード

アプリケーションを実行するためにApplicationに接続されたフォームをロードするプロセスは、下記のとおりです。


ロード順序

イベント発生

1

Environmentロード


2

Screen選択(Screen情報が2つ以上である場合)


3

Screen環境情報ロード


- 選択されたScreen情報をscreenidプロパティ値として指定したAppの確認


- Applicaitonオブジェクト生成


4

Environment設定処理(Typedefinition、プロパティ、Variables)


Environment.onload

5

テーマロード(css、map.jsファイル)


6

Initvalueファイルロード


7

Applicationロード(*.xadl.jsファイル)


- Applicationプロパティ設定


Application.onloadingappvariables

- Mainframe生成と初期化


MainFrame.onactivate

- Frame生成と初期化


ChildFrame.onactivate

Application.onload

8

Formロード(*.xfdl.jsファイル)


Form.oninit

Form.onload

Form.onactivate

Application.onloadforms

ロード順序によって生成されていない項目は使用できません。

たとえば、onloadtypedefinitionイベント関数内にてAppVariablesにアクセスした場合、undefinedに表示されます。

this.Environment_onload = function(obj:nexacro.Environment,e:nexacro.LoadEventInfo)
{
	trace(nexacro.getApplication().all['Variable0']); //undefined
}

フォームロード

前項で説明したApplicationのロード項目で「Formロード」から「Form.onloadイベント発生」との間のプロセスの詳細は以下の通りです。

  1. Formロード

  2. Form実行

  3. サブファイルのダウンロードと実行

  4. Form初期化

  5. Form Styleプロパティ設定

  6. Formプロパティ設定

  7. オブジェクト、コンポーネント、バインドアイテム(BindItem)の生成

  8. エンジン内部で処理するスクリプトを実行

  9. イベントハンドラの登録

  10. オブジェクト、コンポーネントメソッド呼び出し:Object.createComponent

  11. イベント発生: Form.oninit

  12. メソッド呼び出し:Form.on_created

  13. オブジェクト、コンポーネントメソッド呼び出し:Object.on_created

  14. イメージロード、transaction処理

  15. イベント発生: Form.onload

サブファイルは、include方式で接続されるスクリプトファイルなどを意味します。

Formに含まれたオブジェクト、コンポーネントは指定された Z-Order順に生成します。

div、tabコンポーネントは、urlプロパティにリンクされている Formを取得するネットワーク速度によってロードが終わる時点が異なることがあります。