目次

idとname

タグに名前をつけるための属性としてid属性name属性の2種類があります。この名前を使って、そのタグが生成するオブジェクトにアクセスすることができます。

idとnameの違い

idname
意味一つのLZXソースで一つのみ。同一階層内で一つのみ。階層が異なればLZXソース内で同じ名前を使っても良い。
アクセス方法id名のみでソースのどこからでも直指定可能。階層構造に従った相対パス指定。

<canvas>直下のタグのname属性

<canvas>直下のタグのname属性に関しては、id属性を使ったときと同じように直接指定できます。

記述例

下記のソースにある3つのボタンA、B、Cは、すべて赤四角v2のanmを指定して一回転(onclick属性内の記述のことです)させています。そのanmにアクセスするために、3通りの指定をしています。

ボタンA・・・ onclick="parent.parent.v2.anm.doStart();"
ボタンB・・・ onclick="canvas.v.v.v2.anm.doStart();"
ボタンC・・・ onclick="v.v.v2.anm.doStart();"
<?xml version="1.0" encoding="UTF-8"?>
<canvas proxied="false" bgcolor="0xeeeeee"> 
  <view name="v" width="300" height="300" bgcolor="0xff00ff">
     <simplelayout spacing="10" axis="x"/>
     <view name="v" width="200" height="100" bgcolor="0xffcccc">
        <simplelayout spacing="30" />
        <view name="v1">
           <simplelayout spacing="10" axis="x"/>
           <button onclick="parent.parent.v2.anm.doStart();">A</button>
           <button onclick="canvas.v.v.v2.anm.doStart();">B</button>
           <button onclick="v.v.v2.anm.doStart();">C</button>
        </view>
        <view name="v2" align="center" width="30" height="30" bgcolor="0xff0000">
           <animator name="anm" attribute="rotation" 
                     from="0" to="360" duration="500" start="false"/>
        </view>
     </view>
  </view>
</canvas>

この内容を表示するためには Adobe Flash Plugin が必要です。

一方、id属性で名づければ(id=“anm”)、パスは必要なく、anm.doStart(); 一発ですみます。

<?xml version="1.0" encoding="UTF-8"?>
<canvas proxied="false" bgcolor="0xeeeeee"> 
  <view name="v" width="300" height="300" bgcolor="0xff00ff">
     <simplelayout spacing="10" axis="x"/>
     <view name="v" width="200" height="100" bgcolor="0xffcccc">
        <simplelayout spacing="30" />
        <view name="v1">
           <simplelayout spacing="10" axis="x"/>
           <button onclick="anm.doStart();">A</button>
           <button onclick="anm.doStart();">B</button>
           <button onclick="anm.doStart();">C</button>
        </view>
        <view name="v2" align="center" width="30" height="30" bgcolor="0xff0000">
           <animator id="anm" attribute="rotation" 
                     from="0" to="360" duration="500" start="false"/>
        </view>
     </view>
  </view>
</canvas>

idとnameの使い分け

複数の開発者でいくつものソースを作って大きなアプリを作る場合、オブジェクト名の重複による不具合を避けるために、nameだけを使うほうが望ましいでしょう。

個人で作る小さなアプリなら、パス指定の簡便さのメリットもありidでも問題ないと思います。

ちなみに、メモリ負荷はidのほうが大きいといわれています。