タグの動的生成

データや条件に合わせて動的にタグを生成するには new演算子を使います。

下記はforループでnameに連番を振った例。確認用にその名前を<text>で表示しています。

この内容を表示するためには Adobe Flash Plugin が必要です。
(OpenLaszlo4.6.1/swf8)

<?xml version="1.0" encoding="UTF-8"?>
<canvas proxied="false" bgcolor="0xeeeeee"> 
  <handler name="oninit"><![CDATA[
    for(var i=1;i<5;i++){
      var v = new lz.view(canvas);
      v.setAttribute('name','m_'+i);
      v.setAttribute('width',50);
      v.setAttribute('height',30);
      v.setAttribute('bgcolor',0xff0000);
      var t = new lz.text(v);
      t.setAttribute('text',v.name);
    }
  ]]></handler>
  <simplelayout axis="x" spacing="5"/>
</canvas>

上記コードは下記のように書いているのと同じことになります。

<?xml version="1.0" encoding="UTF-8"?>
<canvas proxied="false" bgcolor="0xeeeeee"> 
  <view name="m_1" width="50" height="30" bgcolor="0xff0000">
    <text text="${parent.name}"/>
  </view>
  <view name="m_2" width="50" height="30" bgcolor="0xff0000">
    <text text="${parent.name}"/>
  </view>
  <view name="m_3" width="50" height="30" bgcolor="0xff0000">
    <text text="${parent.name}"/>
  </view>
  <view name="m_4" width="50" height="30" bgcolor="0xff0000">
    <text text="${parent.name}"/>
  </view>
  <simplelayout axis="x" spacing="5"/>
</canvas>