开发者

How can I provide links to items in a Spark list in Flex 4?

开发者 https://www.devze.com 2023-02-15 02:08 出处:网络
<s:List id=\"lst\" labelField=\"@label\" change=\"lst_changeHandler(event)\" horizontalCenter=\"0\" verticalCenter=\"0\">
<s:List id="lst"
            labelField="@label"
            change="lst_changeHandler(event)"
            horizontalCenter="0" verticalCenter="0">
        <s:dataProvider>
            <s:XMLListCollection>
                <fx:XMLList xmlns="">
                    <node label="One" />
                    <node label="Two" />
                    <node label="Three" />
                    <node label="Four" />
                    <node label="Five" />开发者_开发知识库
                    <node label="Six" />
                    <node label="Seven" />
                    <node label="Eight" />
                    <node label="Nine" />
                </fx:XMLList>
            </s:XMLListCollection>
        </s:dataProvider>
    </s:List>

protected function lst_changeHandler(event:IndexChangeEvent):void
            {
               Alert.show(event.target.selectedItem); 

        }

I want to extend the list with hyperlinks. For example in every node I should have an href attribute also. Then I need to redirect users to the selected item. I know Flash has the URLRequest class.

The little problem I have now is to get the selected item. It propably is because of the dataprovider is xml and I haven't done the correct casting. Or maybe some more enlightened than me can help me.


<fx:Script>
    <![CDATA[
        import flash.net.navigateToURL;

        import spark.events.IndexChangeEvent;

        protected function lst_changeHandler(event:IndexChangeEvent):void
        {
            navigateToURL(new URLRequest(lst.selectedItem.@url));
        }

    ]]>
</fx:Script>

<s:List id="lst"
        labelField="@label"
        change="lst_changeHandler(event)"
        horizontalCenter="0" verticalCenter="0"
        >
    <s:dataProvider>
        <s:XMLListCollection>
            <fx:XMLList xmlns="">
                <node label="One" url="www.internet.com" />
                <node label="Two" url="www.internet2.com" />
                <node label="Three" url="www.internet3.com" />
                <node label="Four" url="www.bla.com" />
            </fx:XMLList>
        </s:XMLListCollection>
    </s:dataProvider>
</s:List>


 var item:XML = event.target.selectedItem as XML; 
                   var label:String = item.@label; 
                   var url:String = item.@url; 
                   if(url != null) {
                    var ur:URLRequest = new URLRequest(url); 
                    navigateToURL(ur); 
                   }

It was really real simple!

0

精彩评论

暂无评论...
验证码 换一张
取 消