2010-12-06 7 views
1

私はTextFlowからデータを読み込み、Spark:TextAreaにロードします。 TextFlowでは、私は 'a href'要素を持っています。問題は 'リンク'要素のアドレスにあります。それらのうちのいくつかはページ外に出ます(これらは何もせずに残します)、他のものは私のサイトの他のサブページに行きます(これらは私が捕捉してコードで処理しなければなりません)。FLEX: 'a href'イベントをキャッチするには

私は何をすべきかを決めるために 'リンクをクリックする'イベントをキャッチすることを計画しましたが、私はこれを行うことができません。古いMXでのイベント:TextAreaのが、私はここにこれを行うカント私は

<a href="event:page_adress"> 

を書き込むことによって、私は、リンク上でイベントをキャッチすることができることを読みました。

addEventListener(TextEvent.Link, functionName) 
が、それは仕事をdoesntの:私は追加てmanualyしてみました。 私はMOUSE_CLICKイベントを捕まえることに変更するとき、私はイベントをキャッチしていますが、必要なアドレスを取得するために解析できません。

誰もそれを行う方法を知っていますか?私はTextAreaに固執する必要はありませんが、コンポーネントはコンテンツフォームTextFlowをダウンロードする必要があります。 PS2のTextFlowがインポートされ

...リンクは(それはそれはおそらくイベントを投げ始めた意味)動作を停止し、私はそれをキャッチ傾ける「のhref」にpage_adress:私はイベントを追加したときに気づい

PS

TextFlowUtil.importFromXML 

と外部データベースから、私は、イベントをクリックして、link要素で使用してみましたが、それは仕事をdoesntの:

<a click="myClickHandler(event)"> 

myClickHandlerは、LINをクリックした後に実行さdoesntの私はこのブログで答えたOKのk ...

答えて

2

は:http://flexdevtips.blogspot.com/2010/10/displaying-html-text-in-labels.html

Bassiclyを私は、全体のテキストフローを検索し、リンクを設立する場合にしなければならなかった - それに手動でイベントを追加します。

flexdevtipsのブログは、将来的にダウンしている可能性がありという場合には私のコードを掲示イム:

/** 
* Finds the first LinkElement recursively and returns it. 
*/   

private function findLinkElement(group:FlowGroupElement):void 
{ 
    var childGroups:Array = []; 
    // First check all the child elements of the current group, 
    // Also save any children that are FlowGroupElement 
    for (var i:int = 0; i < group.numChildren; i++) { 
     var element:FlowElement = group.getChildAt(i); 
     if (element is LinkElement) 
     { 
      linksArray.push(element as LinkElement); 
     } else if (element is FlowGroupElement) 
     { 
      childGroups.push(element); 
     } 
    } 
    // Recursively check the child FlowGroupElements now 
    for (i = 0; i < childGroups.length; i++) { 
     var childGroup:FlowGroupElement = childGroups[i]; 
     findLinkElement(childGroup); 
    } 

    } 

と私はこのような私のコードでそれを使用していた:

TTがある
linksArray = []; 

findLinkElement(tt.textFlow); 

var iter:int=0; 
for (iter = 0 ; iter<linksArray.length ; iter++) 
{ 
       linksArray[iter].addEventListener(FlowElementMouseEvent.MOUSE_DOWN,linkSelect, false, 0, true); 
} 

インポートされたテキストフロー

0

と私のテキストエリアはちょうど元の文字列を取得する方法を発見:

あなたはパラメータのポストのための

感謝を取得するために解析することができるように

これは、タグの内容を返しますが、それは私に たくさん助け。少なくとも私はさらに一歩進んで、 私は実際にイベントを聞くことができます。

が、私はまだ問題を抱えている、私は私のRichEditableText に設定されたHTML のコードは次のようになります。Flex3の

<a href='event:n," + id + "'>Name</a> 

iが その「テキストで引数を取得TextEvent.LINK を使用することができます'プロパティを開き、必要なIDデータを に取得します。しかし今は 私たちはFlex4で私は これを行う方法を理解することはできません開発しています。 FlowElementMouseEventをキャッチすると、 は、 のHTMLコードを送信する引数ではなく、 というリンクテキスト( 'Name')しか取得できません。

あなたはどうすればいいですか? これを行うにはどうすればよいですか?

1

おそらくこれが役に立ちます。私はこのようなHTMLリンクを使用します:

<a id="link_1"> Click me </a> 

htmlファイルは外部に保存されます。私はimportToFlowを使用してのTextFlowにHTMLをインポートすると、このように、Flexでリスナーを追加します。私が使用したリンクのID-プロパティを取得するには

myTextFlow.addEventListener(FlowElementMouseEvent.ROLL_OVER, showMe); 

event.flowElement.id 
関連する問題