flash中文本样式的编辑、生成与呈现


     flash中文本样式的编辑实现起来并不是很方便,如果对一个文本框整体的样式进行编辑那倒是没什么。但是如果要对一个文本框内的文本的不同部分设置不同的样式,在编辑中总会很麻烦。

    在flash中要设置一个文本框中的某个部分的文本的样式,需要使用TextField类的setTextFormat(...)方法。相应的,要获取某段文本的样式需要用getTextFormat(...)方法。假设要获取或设置可编辑文本框中已选中文本的样式,那仅仅需要使用TextField类的两个属性selectionBeginIndex和selectionEndIndex来获取选中的字符的范围,在通过设置或获取某段文本样式的方法来设置或获取选中文本的样式。

    假设你设置好了文本样式,而他又需要其它文本框来表现,那就需要将其表述为某种样式,以便传输,保存,再次被读取,再次被其他flash(或者其他应用)的文本框显示出来。如果说直接生成html格式就好了,我也不反对,毕竟这个格式表示的信息字符如果再次用flash的动态文本的htmlText属性来呈现是很方便的。但是有个问题,用html格式表示的话,他的样式描述信息太多了,甚至超过了文本内容的本身,如果这样的话传输的信息量就太大了,所以有时候需要自定义格式。

    下面这个演示就实现了flash同一个文本框中文本样式的编辑、生成与呈现。 

 
这个实例可以实现粗体,斜体,下划线,颜色这四种属性的设置更改和表现。
当你在输入框中输入文本,然后选中编辑此段文本,编辑完以后,按下发送按钮,就可以生成(html格式或精简格式的)字符串表示,这个字符串表示最终再输出框中呈现出来。
 
类文件说明:
      fheditor.vily.FHEditorMain:    FHEditorMain是文档类,本类用于集中测试相关文本的操作,此类中可以设置和呈现文本的新样式
      fheditor.vily.HTMLCreator:    本类是根据文本框中文本的内容和样式来产生对应样式的标准html描述。通过此类的create(...)方法生成的字符串可以直接用在TextField类的htmlText属性上表现出来。
      fheditor.vily.BriefStrCreator:  本类是根据文本框中文本的内容和样式来产生对应自定义样式的标描字符串。通过此类的create(...)方法产生的字符串是自定义的精简格式的字符串,适合在需要精简信息传输存储的地方。
      fheditor.vily.ParseBriefStr:     本类用于解析 fheditor.vily.BriefStrCreator 实例所产生的字符串,以便     
fheditor.vily.TextFieldFiller类 的实例将这些字符串内容以正确的形式添加到目标文本框中
      fheditor.vily.TextFieldFiller:    本类用于将 fheditor.vily.BriefStrCreator 实例所产生的字符串经过 fheditor.vily.ParseBriefStr 实例的解析得到的数据,以正确的形式添加到目标文本框中
 
这些类的综合应用体现在类:fheditor.vily.FHEditorMain中。如果需要详细了解,请查阅源文件。
 
posted @ 2009-10-21 09:48  vily_雷  阅读(507)  评论(0)    收藏  举报