2011-03-04 6 views
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); 

     } 

ハイパーリンクを使用してリストを拡張したいとします。たとえば、すべてのノードで、href属性も必要です。次に、ユーザーを選択したアイテムにリダイレクトする必要があります。私はFlashがURLRequestクラスを持っていることを知っています。Flex 4のSparkリストのアイテムへのリンクを提供するにはどうすればよいですか?

私が今問題にしているのは、選択したアイテムを取得することです。それはpropibleですdataproviderのxmlと私は正しいキャスティングを行っていないためです。あるいは、私よりも啓発された方が助けになるかもしれません。

+0

詳細を入力する必要があります。あなたは具体的に何を達成しようとしていますか? –

+0

リンク付きの簡単なリストを作ってみたい。 htmlのように、リンクタグ付きのul-list。 – marko

答えて

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

     import spark.events.IndexChangeEvent; 

     protected function lst_changeHandler(event:IndexChangeEvent):void 
     { 
      navigateToURL(new URLRequest([email protected])); 
     } 

    ]]> 
</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> 
+0

実際には本当に簡単でしたが、xml属性値に@を使用するのを忘れてしまいました。それはしばらく前に私はAS3を書いた。 – marko

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

それは本当に本当の簡単でした!

関連する問題