從後端的資料庫取得 xml,裡面有 title, url, date 等欄位。有多筆資料。每次取出時,筆數不一定。

現在將它以兩欄的方式顯示,第一欄顯示日期,第二欄,顯示標題。這個標題底下是一個超連結。 mouse click 時,會轉到 url 所指向的網址。

現在用兩個控制項來作。第一個欄位用 label,第二個欄位用 linkbutton。

label 只要設定 label.text = date 就完成了。
第二欄位要用 linkbutton 的 data 屬性。這個屬性可以放入你想放的資料。後面再把它取出來。

用 for each 來跑筆數的迴圈。courseCol 是取得 xml 後資料所存放的陣列物件。addACourse 在迴圈裡,逐筆呼叫,以便產生一列列的項目出來。

            for each (var c:Object in courseCol){
               addACourse(c);
            }  
             

關鍵在底下。將 url 的值放入 linkbutton 物件的 data 屬性裡。並且要把 click 事件的處理程式掛到它身上。
         
            private function addACourse(o:Object):void{
                var myHBox:HBox = new HBox();
                var myLabel:Label = new Label();
                var myLB:LinkButton = new LinkButton();
                myLabel.text = o.date;
                myLB.label = o.title;
                myLB.data = o.url;
                myLB.addEventListener(MouseEvent.CLICK, goto_url);
                myHBox.addChild(myLabel);
                myHBox.addChild(myLB);
                myPanel.addChild(myHBox);
            }

處理程式宣告如下:在事件發生時,從 e 取得發生的對象物身上的資料。然後把視窗轉過去就行了。

            private function goto_url(e:Event):void{
                var url:String = e.currentTarget.data ;
                navigateToURL(new URLRequest(url), "_self");                  
            }

    全站熱搜

    cactis 發表在 痞客邦 留言(0) 人氣()