japhonelk
japhonelk
2011-05-09 10:50
浏览 247
已采纳

关于动态设置字体样式的问题

最近在做一聊天室,其一个功能是客户端可以设置自己的字体样式,像:
[color=#009999]【张三】[/color]对[color=#009999]【李四】[/color]说:你好!
[color=#009999]【李四】[/color]对[color=#009999]【张三】[/color]说:[color=#0000ff][size=18px]你好![/size][/color]

类似的这种情况,包括文字的颜色、字体、大小、加粗、斜体、下划线等等,客户端都可以自己设置字体样式然后发送给服务器,服务器再发送给各客户端。

我的实现方式有两种,但这两种都没有完全解决我的问题:

1。利用HTML代码:
[code="java"]
【张三】对【李四】说:你好!
【李四】对【张三】说:你好!
[/code]
这种方式像字体的颜色,大小都可以正常显示,但我设置加粗、斜体、下划线时,样式根本就没加载;我想可能flex不是完全支持html代码,于是就实验第二种方式,flex自己的样式标签

2。利用FLEX标签:
[code="java"]
【张三】/s:span对【李四】/s:span说:你好!
【李四】/s:span对【张三】/s:span说:你好!/s:span
[/code]
这种方式在做测试的时候,即直截在textarea中写的时候,字体样式能正常显示,如:
[code="java"]

【张三】/s:span对【李四】/s:span说:你好!
【李四】/s:span对【张三】/s:span说:你好!/s:span
/s:textarea
[/code]
但当我用函数从服务器端取到string(我用的是JAVA)数据,然后将该数据写到textarea中的时候(showContent.text = "从服务器曾端取到的字符串"),textarea中竟然连代码都显示出来了:
[code="java"]
【张三】/s:span对【李四】/s:span说:你好!
【李四】/s:span对【张三】/s:span说:你好!/s:span
[/code]
请问这是为什么?

大家是怎么解决这种现象的?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • weixin_42518082
    weixin_42518082 2011-05-09 14:01
    已采纳

    [b]使用[/b][color=brown][b]TextFlowUtil.importFromString[/b][/color] :D

    [b]示例代码:[/b]
    [color=darkblue][b]fx:Script<![CDATA[
    import spark.utils.TextFlowUtil;

    var markup:String =
    "" +
    "

    " +
    " 【张三】对【李四】说:你好!" +
    "

    " +
    "

    " +
    " 【李四】对【张三】说:你好!" +
    "

    " +
    "

    " +
    " 【下划线】对【斜体】说:粗体文字!" +
    "

    " +
    ""
    ]]>/fx:Script

    editable="false" width="400" horizontalCenter="0" verticalCenter="0" />[/b][/color]

    点赞 评论
  • gelinaiyu
    gelinaiyu 2011-05-09 11:31

    showContent.value = "从服务器曾端取到的字符串"

    点赞 评论
  • cbcgkx
    cbcgkx 2011-05-09 11:32

    我没有楼主这样写过 但可以提几点建议

    可以使用text标签

    感觉这种方式更加面向对象

    一条聊天记录由三个text标签组成 每个标签的样式都是可以活改变的

    前两个标签是聊天的双方 第三个是聊天内容 可以对聊天内容 进行更详细的设置

    点赞 评论
  • cbcgkx
    cbcgkx 2011-05-09 12:58

    你所设置的属性 应该存入数据库 将文字的样式单独设置成一个pojo类
    作为聊天记录的一个属性

    点赞 评论

相关推荐