1

htmlText を設定して初期化する TextField があります。テキストにはアンカー タグ (ハイパーリンク) があります。ユーザーがハイパーリンクをクリックすると、段落の 2 行目以降のインデントが変更されます。なんで?どうすれば止められますか?

私のhtmlには、行の先頭に画像があり、その後にタグが続き、さらにテキストが続きます。ハイパーリンクのスタイルを常に青く表示し、マウスが上にあるときに下線を引くには、次のようにします。

var css:StyleSheet = new StyleSheet();
css.parseCSS("a {color: #0000FF;} a:hover {text-decoration: underline;}");
stepText.styleSheet = css;  
stepText.htmlText = textToUse;
stepText.visible = true;

以下は html テキストの一部です (読みやすくするために改行と exrta 空白が追加されています - 元々は 1 つの長い行でした)。

<textformat indent="-37" blockindent="37" >
    <img src="media/interface/level-1-bullets/solid-circle.png" 
         align="left" 
         hspace="8" 
         vspace="1"/> 
    American Dental Association. (n.d.). <i>Cleaning your teeth and gums (oral hygiene)</i>. 
    Retrieved 11/24/08, from 
        <a href="http://www.ada.org/public/topics/cleaning_faq.asp" 
           target="_blank">http://www.ada.org/public/topics/cleaning_faq.asp
        </a>
</textformat>
<br/>

結局のところ、テキスト フィールドは折り返されるような幅で、2 行目は "Retrieved 11/24/08" で始まります。ハイパーリンクをクリックすると、この特定の行がインデントされます。後続の段落は影響を受けません。

補足: 画像は、幅約 37 ピクセルの箇条書きリストです。(Flash ではネストされたリストが許可されていないため、li タグの代わりに画像を使用しました。そのため、3 レベルのインデントをシミュレートするために、さまざまな量の空白を含む一連の画像を使用して偽装しました。)

IDEA: すべてのハイパーリンクを変更して、URL プロトコルとして「event:」を使用するように変更することを考えていました。これにより、リンクをたどる代わりに TextEvent.LINK イベントがトリガーされます。次に、2 回目の呼び出しでブラウザを開く必要があります。このイベント ハンドラーを使用して html テキストをそれ自体に設定すると、問題が解決する可能性があります。(アプリケーションでページを切り替えてからそのページに戻ると、すべて問題ありません。)

問題: "event:" プロトコルを使用していて、ユーザーがマウスの右ボタンをクリックしようとすると、エラーが発生するか、そう言われます。( http://www.blog.lessrain.com/as3-texteventlink-and-contextmenu-incompatibility/を参照してください) 私はこのトレードオフが好きではありません。

4

1 に答える 1