タブスライダー

基本形

  <tabslider>
    <tabelement>・・・</tabelement>
    <tabelement>・・・</tabelement>
    <tabelement>・・・</tabelement>
  </tabslider>

<tabslider>と<tabelement>

<tabslider>タグで、複数の<tabelement>タグを囲みます。<tabslider>は幅widthと高さheightの設定は必須です。これらの設定がないと画面に表示されません。

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

<?xml version="1.0" encoding="UTF-8"?>
<canvas proxied="false" bgcolor="0xeeeeee"> 
  <tabslider width="150" height="200">
    <tabelement text="サンプル1"/>
    <tabelement text="サンプル2"/>
    <tabelement text="サンプル3"/>
  </tabslider>
</canvas>

タイトルにグラフィック追加

タイトルに任意のオブジェクトを配置するには、placement=“header”を設定します。ついでにボーダーのサイズや色を任意のものに設定しています。

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

<?xml version="1.0" encoding="UTF-8"?>
<canvas proxied="false" bgcolor="0xeeeeee"> 
  <tabslider width="200" height="160" bordersize="2" 
             spacing="2" bordercolor="0x3A75A3" mintabheight="20">
      <tabelement text="サンプル1" selected="true" text_x="20">
         <view bgcolor="0xDD9C1E" placement="header" 
               width="10" height="12" x="5" y="5"/>
         <view bgcolor="0xDD9C1E" x="10" y="10" width="50" height="50"/>
      </tabelement>
 
      <tabelement text="サンプル2" text_x="20">
         <view bgcolor="0x3A75A3" placement="header" 
               width="10" height="12" x="5" y="5"/>
         <view bgcolor="0x3A75A3" x="10" y="10" width="50" height="50"/> 
      </tabelement>
 
      <tabelement text="サンプル3" text_x="20">
         <view bgcolor="0x6BAC6B" placement="header" 
               width="10" height="12" x="5" y="5"/>
         <view bgcolor="0x6BAC6B" x="10" y="10" width="50" height="50"/> 
      </tabelement>
  </tabslider>
</canvas>

タブの開閉を他から実行する

タブの開閉を、タブスライダーのタブのクリックではなく、他のコンポーネントあるいはイベントから実行できます。それには<tabslider>のselectNext()メソッド、selectPrev()メソッドを実行します。

サンプルではタブ内外のボタンクリック時にタブの開閉をしています。

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

<?xml version="1.0" encoding="UTF-8"?>
<canvas proxied="false" bgcolor="0xeeeeee"> 
  <tabslider name="t" width="120" height="200">
    <tabelement text="サンプル1" selected="true">
      <button onclick="parent.parent.selectNext();">次へ</button>
    </tabelement>
    <tabelement text="サンプル2">
      <simplelayout axis="x" spacing="2"/>
      <button onclick="parent.parent.selectPrev();">前へ</button>
      <button onclick="parent.parent.selectNext();">次へ</button>
    </tabelement>
    <tabelement text="サンプル3">
      <button onclick="parent.parent.selectPrev();">前へ</button>
    </tabelement>
  </tabslider>
  <simplelayout axis="x" spacing="10"/>
  <button onclick="t.selectNext()">次へ</button>
  <button onclick="t.selectPrev()">前へ</button>
</canvas>

データ数に応じてタブを動的に生成

http://forum.openlaszlo.org/showthread.php?t=9955から拾ってきたものです。

tabelementを固定的に設定するのではなく、データバインディングの機能を利用してデータセットから動的に生成しています。つまりタグの記述を変更しなくても、データの数に応じて自動的にタブが増減することになります。

サンプルではXMLデータを元にタブスライダーを完成させています。

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

<?xml version="1.0" encoding="UTF-8"?>
<canvas proxied="false" bgcolor="0xeeeeee">
  <dataset name="ds" >
    <root>
      <node text1="サンプル1" text2="これはサンプル1です"/>
      <node text1="サンプル2" text2="これはサンプル2です"/>
      <node text1="サンプル3" text2="これはサンプル3です"/>
      <node text1="サンプル4" text2="これはサンプル4です"/>
      <node text1="サンプル5" text2="これはサンプル5です"/>
    </root>
  </dataset>
 
  <tabslider width="150" height="200" >
    <tabelement datapath="ds:/root/node" text="$path{'@text1'}" >
      <handler name="oninit" >
        <![CDATA[
          if (this['cloneManager'] && 
          this.clonenumber == this.cloneManager.clones.length-1) {
              this.cloneManager.clones[0].setAttribute("selected", true);
          }
        ]]>
      </handler>
      <text text="$path{'@text2'}" />
    </tabelement>
  </tabslider>  
</canvas>

理屈が難しいですが、<tabelement>のoninitイベントハンドラ内で何をしているかというと、<tabelement>の最後のcloneが生成された時点で、最初のclone(=最初の<tabelement>)にselected=“true”を設定しています。

選択したタブの色を変える

http://forum.openlaszlo.org/showthread.php?t=8002からの拾い物です。

<tabelement>を継承した独自クラスを作り、選択時(onselected)のスタイルを変更するようにしてあります。

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

<?xml version="1.0" encoding="UTF-8"?>
<canvas proxied="false" bgcolor="0xeeeeee">
  <greenstyle name="stylegreen" />
  <silverstyle name="stylesilver" isdefault="true" />
 
  <class name="mytabelement" extends="tabelement" >
    <handler name="onselected" >
      this.setAttribute( "style", selected ? stylegreen : stylesilver );
    </handler>
  </class>
 
  <tabslider width="200" height="200">
    <mytabelement text="サンプル1" />    
    <mytabelement text="サンプル2" />
    <mytabelement text="サンプル3" />   
  </tabslider>
 
</canvas>
タブスライダー.txt · 最終更新: 2009/10/18 03:36 (外部編集)
Copyright © 2008~ずっと ason(minamotonoason@gmail.com)

chuumap 中小企業ツイッターマップ 製造、加工、卸などB2B主体の個人事業者、中小企業のツイッターを、グーグルマップの住所の位置に正確に表示。
tentwi 店舗でツイート 飲食店、販売店など、一般消費者向けの店舗を構えるお店ツイッターを、グーグルマップの住所の位置に正確に表示。
廃句ったー あなたのツイッターの最近のツイートから廃句もとい俳句を生成。
みかけったー 超人気!あなたのツイッターの最近のツイートからみかけの年齢と性別を診断。
キキキーったー 最近のツイートからキーの使用回数をしらべます。
SLOTTER(すろったー) あなたのツイッターのタイムラインのアイコンでスロット。FLASHゲーム。
MultiLangTweet 一度に48ヶ国語に翻訳してツイート。
英訳ったー 英訳または日本語訳してツイート。
バンドメンバー募集サイト シンプルなバンドメンバー募集サイト。
CMS総合デモサイト 有名オープンソースCMS、EC、SNS、Wikiを一度に全部体験できる総合デモサイト
ビズロック BizRock(ビズロック)~音楽ライブでプレゼン!情熱型ビジネス交流会