1

JSON を使用して、Flex でカスタマイズされた html タグを使用して HTML データを解析しています。HTML に対する Flex のサポートはごくわずかなので、これらのリンクで単純なフォントの色変更のロールオーバー効果を実行できるかどうか疑問に思っています。現在、Flex はいくつかの HTML タグしかサポートしていませんが、Flex の wack CSS メソッドを介して CSS もサポートしていることがわかりました。

JSON ファイルに記述された HTML を、外部 CSS ファイルを介して操作できますか? それとも、JSON ファイルで単純なタグを使用したほうがよいでしょうか?

4

2 に答える 2

0

私は Flex をあまり使用しないので、フレームワークに関する深い知識はあまりありませんが、似たようなことが必要だったと思います。

シンプルなフォントの色変更のロールオーバー効果を行う

ここにスニペットがあります:

var linkRegEx:RegExp = new RegExp("(https?://)?(www\\.)?([a-zA-Z0-9_%]*)\\b\\.[a-z]{2,4}(\\.[a-z]{2})?((/[a-zA-Z0-9_%]*)+)?(\\.[a-z]*)?(:\\d{1,5})?","g");
var link:String = 'generic links: www.google.com http://www.yahoo.com  stackoverflow.com';
link = addLinks(linkRegEx,link);
textField.htmlText = link;//textField is a TextField I have on stage

function addLinks(pattern:RegExp,text:String):String{
    var result = '';
    while(pattern.test(text)) result = text.replace(pattern, "<font color=\"#0000dd\"><a href=\"$&\">$&</a></font>");
    if(result == '') result+= text;//if there was nothing to replace
    return result;
}

私はインラインフォントタグを使用しました.cssの方が良いかもしれません. これが私の元の質問です。

HTH、ジョージ

于 2010-02-18T16:48:09.997 に答える
0

簡単な答え: これに対する特効薬はないと思います。それは多くの痛みになるでしょう。

静的な StyleSheet プロパティを追加する方法で Text クラスを拡張することから始めることができます (たとえば、styleSheet:StyleSheet = null)。次に、次のスタイルを含む配列を作成します。これは、Flex でサポートされているものだけです。

listOfStyles:Array = ['fontSize', 'color', 'fontWeight', 'fontFamily', 'fontStyle', 'textDecoration'];

次に、使用するセレクターの配列を作成して、StyleManager.selectors を初期化する必要があります。基本的に、「A」タグを見つけて、上記の listOfStyles を追加し、それらのスタイルごとに新しい CSSStyleDeclaration を作成します。

これにより、上記のスタイルを拡張クラスの htmlText プロパティに適用できます。ここまでは順調ですね。これにより、外部スタイルシートを使用して、ロード時にアンカー タグにさまざまなスタイルを設定できます。ただし、MouseEvent.MOUSE_OVER は、クラス内の個々の HTML 要素ではなく、クラス全体に適用されるため、HTML 内のロールオーバー時に各リンクの色が変わるロールオーバー効果を適用すると問題が発生します。マウスがその HTML テキスト内のアンカー上にあるかどうかを調べ (不可能ではありませんが、今はそれを解決する時間がありません)、その中のセレクターを変更する必要があります。テキスト範囲を取得する必要があり、それは常に多くの作業を意味します。クライアントが絵文字をテキスト フローに表示することを希望したとき、私はそれを台無しにしなければなりませんでした (別の Flex'

Flex 4 では、この種のサポートがネイティブで追加されると思いますが、具体的には調査していません。

申し訳ありませんが、魔法の弾丸はありませんが、これがトピックに少し光を当てることを願っています.

于 2010-02-18T16:24:52.333 に答える