2010-12-15 75 views
0

EN BREF
J'ai une application flash (faite pour flash lite - actionscript 2). Lorsque je charge dans mon application un fichier XML et que je le traite dans un objet. Je reçois l'entrée html correcte dans un champ de texte.
Cependant, si code en dur l'objet, toutes les balises html disparaissent de l'attribut .htmlText et du code est placé devant le texte. J'ai l'intention de coder en dur l'objet, car le chargement va beaucoup plus vite que xml. Longue histoire courte: string.html = true; supprime toutes les balises span, alors que j'ai besoin de ceux-ci. Comment puis-je obtenir les balises span dans le htmlText de mon champ de texte?Flash Lite: htmlText formatage

PLUS D'INFO CI-DESSOUS

Dans ma demande, je crée textfields mettre un texte en eux et puis définissez la valeur correcte x et y donc ils sont joliment mis sous eachother.

dans la fonction:

//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); 

Quand je trace le htmlText je reçois

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

flash mis automatiquement les balise p et la police devant mon texte. Donc, ma feuille de style ne montrera pas le style correct. Comment puis-je me débarrasser de la balise initiale align et police, mais gardez le champ de texte comme html?

EDIT
En définissant un textformat J'ai trouvé un moyen de contourner ce problème ... mais
J'ai un nouveau problème:
Dans mon strHtmlText il y a Span-tags (<span class="text-in">blabla</span>), mais cela devient filtré. Pourquoi ça ? ma feuille de style ne fait rien sans ces styles.

(texte est chargé à partir d'un tableau)

Répondre

1

Il doit avoir quelque chose à voir avec l'ordre dans lequel vous attribuez les propriétés à l'TextField. Il doit être: 1. définir field.html à true, 2. affecter styleSheet, 3. définir htmlText. La feuille de style doit être définie avant l'affectation de htmlText - j'ai initialement posté un lien vers la documentation as3, mais cela est vrai pour AS2 et AS3. Essayez ceci: Mettez un objet TextField sur la scène d'un nouvel objet FLA AS2. Définissez son type sur dynamique. Nommez le "_textField". Définir la police à Verdana, 16px, Black. Entrez "Erreur". ou quelque chose de similaire dans le TextField, de sorte qu'il contient du texte. Cliquez sur "Intégrer les polices", assurez-vous d'inclure une quantité suffisante de lettres, comme ASCII ou Latin-1. Sur le plan de montage chronologique, entrez ce code dans la première image du film.

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); 

Maintenant, lorsque vous exécutez le programme, il devrait changer le texte « Ceci est un test », la couleur rouge et la taille de la police à 12 px. Ca se passe sur mon ordinateur. En outre, la trace imprime exactement le même texte qui est affecté à htmlText.

Maintenant revenez en arrière et échangez les lignes affectant les propriétés styleSheet et htmlText. Redémarrez le programme. Il aura tous les tags supplémentaires dont vous vous plaigniez.

+0

Je travaille avec AS2 (comme défini dans les balises) ... cependant si je mets la propriété de feuille de style avant le htmlText, c'est toujours le même problème. – Jozzeh

+0

J'ai modifié le message original et fourni un exemple à la place. Je pense toujours qu'il y a un problème avec l'ordre dans lequel vous affectez styleSheet et htmlText. Ou peut-être que la feuille de style n'est pas correctement initialisée. Ce n'est pas un bug dans Flash, cependant. – weltraumpirat

+0

Je suis d'accord que vos arguments et exemples fonctionnent. Toutefois, lorsque je l'essaie dans mon application, les balises span sont quand même supprimées de la chaîne si le paramètre html est défini sur true. Je dirais même que tous les html normaux tels que les tags gras et italiques sont également supprimés. Il ne reste que la balise de police flash et les balises double br deviennent une balise de paragraphe fermée. – Jozzeh