您好我浏览了网页和此网页以获得答案,但似乎找不到解决我问题的方法。我创造了一个打字机效果。它通过动态文本框(tekst_txt)显示。我想要实现的是能够使用html标签将特定单词的字体改为粗体或斜体,只需包括ie< b>和< / b>但我似乎无法拉动这一点。我真的很感激一些建议。
这是在第一帧中显示的代码(该帧上不存在文本框): import flash.events.MouseEvent;
stop();
var tekst:String = "";
var i:uint = 0;
var licznik:Timer = new Timer(20);
tekst_txt.htmlText = tekst_txt.text;
stage.addEventListener(MouseEvent.CLICK, klikaj);
function klikaj(event:MouseEvent):void
{
if (licznik.running == true)
{
tekst_txt.htmlText = tekst;
licznik.stop();
}
else if (licznik.running == false || licznik == null)
{
nextFrame();
tekst_txt.text = "";
}
}
这是下一帧的代码(文本框已存在于此框架中):
import flash.events.MouseEvent;
import flash.utils.Timer;
import flash.events.TimerEvent;
stop();
tekst="Tekst1Tekst1<i>Tekst1</i>Tekst1Tekst1Tekst1Tekst1Tekst1Tekst1Tekst1";
licznik.start();
licznik.addEventListener(TimerEvent.TIMER, odpalaj);
function odpalaj(e:TimerEvent):void
{
//tekst_txt.htmlText = tekst_txt.text;
tekst_txt.appendText(tekst.charAt(i));
//tekst_txt.htmlText=tekst_txt.text;
i++;
if (i >= tekst.length)
{
licznik.stop();
}
}
答案 0 :(得分:0)
您面临的问题是任何形式的HTML格式都需要超过1个字符来描述,因此当您尝试逐个字符进行此动画时,您实际上只是将原始html标记设置为文本。
这看起来有点乱,但是你可以尝试一下......
您将创建一个临时文本字段并首先将整个html标记文本设置为其htmlText值,然后您可以getTextFormat在您追加时复制每个字符的格式...这允许Flash为您处理html。
import flash.events.MouseEvent;
import flash.utils.Timer;
import flash.events.TimerEvent;
stop();
tekst="Tekst1Tekst1<i>Tekst1</i>Tekst1Tekst1Tekst1Tekst1Tekst1Tekst1Tekst1";
// shove your html markup text into the htmlText of a textfield
// this allows Flash to deal with parsing the html
var myTextField:TextField = new TextField();
myTextField.htmlText = tekst;
licznik.start();
licznik.addEventListener(TimerEvent.TIMER, odpalaj);
function odpalaj(e:TimerEvent):void
{
// get the text directly from the temp textfield
// you want to do this because it will have already processed the html markup
// and will give you the correct indexes and length of your text
tekst_txt.appendText(myTextField.text.charAt(i));
// copy the textformat
var format:TextFormat = myTextField.getTextFormat(i, i+1);
tekst_txt.setTextFormat(format, i, i+1);
i++;
if (i >= tekst.length)
{
licznik.stop();
}
}