LZXの基本文法
LZXとはOpenLaslzoの独自のプログラミング言語の名称です。LZXで書くプログラムソースファイルはXMLです。LZXの基本的な文法はXMLに準拠します。
まず、
終了タグが必須
開いたタグは必ず終了タグで閉じます。閉じなくても動くHTMLと違って厳格です。
<view></view>
<view>
</view>
タグが1行で完結する場合はリスト2のように書きます。囲むべき要素がないので空要素タグといいます。空要素タグはたとえばXHTMLでよく使われる<br />です。
<view />
入れ子は正しく
タグは入れ子にできますが、
正しい例:
<view><button>ボタン</button></view>
間違った例:
<view><button>ボタン</view></button>
コメントの書き方
LZXはXMLとスクリプトの2本立てで構成されており、
<!-- XMLのコメント(1行) -->
<!--
XMLのコメント(複数行)
XMLのコメント(複数行)
XMLのコメント(複数行)
-->
XMLのコメント文では、
<!--
<!-- コメント -->
<text>Hello</text>
<!-- コメント -->
<text>World</text>
-->
<?ignore
<!-- コメント -->
<text>Hello</text>
<!-- コメント -->
<text>World</text>
?>
スクリプトのコメントはリスト7のとおり。スクリプトは<script>、
<script>
// スクリプトのコメント(1行)
/* スクリプトのコメント(1行) */
/* スクリプトのコメント(複数行)
スクリプトのコメント(複数行)
スクリプトのコメント(複数行) */
</script>
大文字小文字の区別あり
タグ名は大文字小文字の区別があります。たとえば<view>、
属性名も同じく大文字小文字の区別があります。たとえば<view width="100">、
タグの中に < や > を使いたい場合
LZXはXMLなので、
リスト8とリスト9は同じ処理をするスクリプトです。<![CDATA[ ~ ]]> の有無と、
<handler name="onclick">
for (var i=0; i < 3; i++) {
v.animate('rotation',360,1000,true,{'motion':'linear'});
}
</handler>
<handler name="onclick"><![CDATA[
for (var i=0; i < 3; i++) {
v.animate('rotation',360,1000,true,{'motion':'linear'});
}
]]></handler>
LZXの基礎
LZXでは独自のタグを使用します。OpenLaszloのリファレンスを見ながら1つずつ習得する必要があります。いくつか基本的なものを簡単に紹介します。
※OpenLaszloリファレンスはダウンロードした中に入っており、
<canvas>
<canvas>はLZXの最上位に位置するルート要素のタグです。1つのアプリに1つだけ必要です。HTMLでいう<html>みたいなものですが、
※<canvas>のあるメインファイル以外のインクルード用のファイルのルート要素はすべて<library>になります。
<canvas>で指定できる属性のうち、
proxied | プロキシモードにするかどうか。true:プロキシモード、 |
---|---|
bgcolor | アプリの背景色。色は(0x)で始まる16進数表記。たとえば青だと0x0000ff。 |
width | アプリの幅。ピクセル数値あるいは%指定。 |
height | アプリの高さ。ピクセル数値あるいは%指定。 |
fontsize | アプリのデフォルトのフォントサイズ。 |
<canvas proxied="false" bgcolor="0x0000ff" width="100%" height="50" fontsize="12">
・・・
</canvas>
<text>
文字列を表示するタグです。
<canvas proxied="false" bgcolor="0xffffcc">
<text>こんにちは</text>
</canvas>
<button>
ボタンを表示するタグです。サンプルはボタンの表示だけですが、
<canvas proxied="false" bgcolor="0xffffcc">
<button>こんにちは</button>
</canvas>
<checkbox>
チェックボックスを表示するタグです。
<canvas proxied="false" bgcolor="0xffffcc">
<checkbox>こんにちは</checkbox>
</canvas>
<radiobutton>
ラジオボタンを表示するタグです。ラジオボタンは複数の選択肢のうちどれか1つを選択するためのものなので1つだと機能しません。ラジオボタンを使うときは複数の<radiobutton>を<radiogroup>で囲みます。
<canvas proxied="false" bgcolor="0xffffcc">
<radiogroup>
<radiobutton>こんにちは</radiobutton>
<radiobutton>こんばんは</radiobutton>
</radiogroup>
</canvas>
<view>
<view>はLZXの中でも基本中の基本のタグで、
<view>には表示物に必要な色、
<canvas proxied="false" bgcolor="0xffffcc">
<view width="200" height="100" bgcolor="0xccccff">
<button>ボタン</button>
</view>
</canvas>
<window>
ドラッグアンドドロップで移動することが可能なウインドウです。リスト15の<view>を<window>に置き換えただけで単なる四角がウインドウに変わります。
<canvas proxied="false" bgcolor="0xffffcc">
<window width="200" height="100" bgcolor="0xccccff">
<button>ボタン</button>
</window>
</canvas>
もちろん<window>にはサイズ変更
<canvas proxied="false" bgcolor="0xffffcc">
<window width="200" height="100" bgcolor="0xccccff"
resizable="true" closeable="true" title="ウインドウデモ">
<button>ボタン</button>
</window>
</canvas>