リンククリックのイベントを取る

FlexのTextコンポーネントは、htmlTextプロパティにHTML入りの文字列を入れると、フォントを大きくしたり、改行したり、リンクを貼ったりできます。

で、リンクは通常のリンク(http://www.nekobean.comとか)に貼ると、クリック時にそのURLに遷移しますが、その他にもイベントを飛ばすことが出来ます。


例えば、次のように記述します。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
  <mx:Script>
    <![CDATA[
      public function handleClick(e:TextEvent):void{
    //イベント名出力
        trace(e.text);
      }
    ]]>
  </mx:Script>
  <mx:Text id="linkText" link="{handleClick(event)}">
    <mx:htmlText>
      <![CDATA[
        <a href='event:linkClick!'>リンク</a>
      ]]>
    </mx:htmlText>
  </mx:Text>
</mx:Application>

これを実行してリンクをクリックすると、「linkClick!」と出力されます。

htmlTextのhref属性に、「event:イベント名」という感じで書くと、そのテキストのlinkイベントハンドラでそのイベント名が取れます。
イベント名は、TextEventのtext属性に入っています。


これを応用して、次のようなものを作ってみました。
こちら


文字を入力して、指定の文字が入っているとそれをリンクにします。で、そのイベントを取って適切な表示をします。
簡単な用語説明とかには使えると思います(というより元々は用語説明を作るために作ったサンプルですが)