0


一言で言えば、私はフラッシュアプ​​リケーションを持っています(フラッシュライト用に作られました-actionscript2 )。アプリケーションにXMLファイルをロードし、それをオブジェクトで処理する場合。テキストフィールドに正しいhtml入力を取得します。
ただし、オブジェクトをハードコーディングすると、すべてのhtmlタグが.htmlText属性から消え、テキストの前にコードが配置されます。読み込みはxmlよりもはるかに高速であるため、オブジェクトをハードコーディングすることが私の意図です。

簡単string.html = true;に言うと、すべてのスパンタグを削除しますが、必要な場合は削除します。テキストフィールドのhtmlTextでスパンタグを取得するにはどうすればよいですか?

以下の詳細情報

私のアプリケーションでは、テキストフィールドを作成してテキストを入力し、正しいx値とy値を設定して、すべてが互いにうまく配置されるようにします。

関数内:

//ABOVE I CREATE TEXTFIELD USING THE .CREATETEXTFIELD FUNCTION
this["text" + this._textFieldCounter].html = true;
this["text" + this._textFieldCounter].multiline = true;
this["text" + this._textFieldCounter].wordWrap = true;
this["text" + this._textFieldCounter].autoSize = true;
this["text" + this._textFieldCounter].styleSheet = this._styleSheet;
this["text" + this._textFieldCounter].condenseWhite = true;
this["text" + this._textFieldCounter].htmlText = "<span class=\"page\">" + strHtmlText + "</span>";
//trace(this["text" + this._textFieldCounter].htmlText);

htmlTextをトレースすると、

<P ALIGN="LEFT">
<FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">
//here comes the strHtmlText
</FONT>
</P>

Flashは、これらのpタグとフォントタグをテキストの前に自動的に配置します。そのため、私のスタイルシートには正しいスタイルが表示されません。最初の整列タグとフォントタグを削除し、テキストフィールドをhtmlのままにするにはどうすればよいですか?

編集
テキストフォーマット を設定することで、この問題を回避する方法を見つけました...しかし
、新しい問題
があります。strHtmlTextにスパンタグ(<span class="text-in">blabla</span>)がありますが、これは除外されます。なんで?私のスタイルシートは、それらのスタイルなしでは何もしません。

(テキストは配列からロードされます)

4

1 に答える 1

1

これは、プロパティをTextFieldに割り当てる順序と関係がある必要があります。1.に設定field.htmltrue2。割り当てstyleSheet、3。に設定しhtmlTextます。htmlTextを割り当てる前にstyleSheetを設定する必要があります-私はもともとas3ドキュメントへのリンクを投稿しましたが、これはAS2とAS3の両方に当てはまります。

これを試してください:新しいAS2FLAのステージにTextFieldを配置します。タイプを動的に設定します。「」という名前を付け_textFieldます。フォントをVerdana、16px、Blackに設定します。「エラー」と入力します。またはTextFieldに似たものを使用して、テキストを含めます。[埋め込みフォント]をクリックします。ASCIIやLatin-1など、十分な量の文字を含めるようにしてください。タイムラインで、このコードをムービーの最初のフレームに入力します。

var style:TextField.StyleSheet = new TextField.StyleSheet();
style.parseCSS("p {font-family:Verdana; font-size:12px; color:#FF0000;}");
_textField.html = true;
_textField.styleSheet = style
_textField.htmlText = "<p>This is a test.</p>";
trace (" new text:"+_textField.htmlText);

これで、プログラムを実行すると、テキストが「これはテストです」に、色が赤に、フォントサイズが12ピクセルに変更されます。それは私のコンピューターで行います。また、トレースは、に割り当てられているのとまったく同じテキストを出力しhtmlTextます。

ここで戻って、プロパティstyleSheethtmlTextプロパティを割り当てる行を交換します。プログラムを再実行します。それはあなたが不平を言っていたすべての余分なタグを持っています。

于 2010-12-19T18:07:11.437 に答える