標籤雲

搜尋此網誌

2009/10/08

為 TextField 的 html 超連結加入事件機制

在 Flash 裡,文字欄位可以直接在屬性面板裡面設定超連結與目標視窗(target)
這樣做的話滑鼠移動到該文字欄位時會變成手指圖示

那麼若是超連結需要動態指定時,如何使用 ActionScript 3 達到相同效果呢?

昨天我就遇到了這個問題
一開始我在 TextField 監聽 MouseEvent.CLICK 事件,並指定處理函式負責連結到不同位置的功能
功能上是沒問題,但這樣一來滑鼠游標就不是原本想要的手指圖案,而是文字的" I "圖示了
本來想直接在文字上面放一個透明 MovieClip 就解決了
但今天還是不甘心查了一下,想知道 Flash IDE 是怎麼做的
往 TextField 的 htmlText 屬性去查,果然一查就查到了!!
原來要在 TextField 的 htmlText 指定 <a> 標籤裡的 href 去發出 TextEvent.LINK
趕快記下來:

(前略)...您可以使用 link 事件,讓連結執行 SWF 檔中的 ActionScript 函數,而不是開啟 URL。 若要指定 link 事件,請使用事件結構,而不是您的 href 特質中的 http 結構。 例如使用 href="event:myText",而不是 href="http://myURL"。當使用者按一下包含事件配置的超文字連結時,文字欄位會傳送其 text 屬性設定為 "myText" 的 link TextEvent。 接著,您可以建立於傳送 link TextEvent 時執行的 ActionScript 函數。 您也可以使用樣式表,定義錨點標籤的 a:link、a:hover 及 a:active 樣式。

之前都沒有接觸過 TextEvent,這下子學到了!!
以後可不能什麼都習慣用 MouseEvent 阿.....

沒有留言: