htmlText 超链接的使用。


这个的用处还是蛮多的,普通的就是链接一个网址。直接用:eg:

txt.htmlText=<a href=\”http://www.vini123.com/chatroom/\” target=\”_blank\”> “FLASH聊天室” </a>


还可以自己去编写自己想要的字符串协议,让字符串包含不同的信息行为。html中,超链接必须以”event:”开头,将超链接要发送的信息放置在它的后边,以字符串的形式变现。这样,当用户单节超连接时,会发出一个事件。是flash.events.TextEvent类的实例,事件类型是TextEvent.LINK。”event:”后面的字符串信息会包裹在这个时间对象的text属性中,供监听器使用。
给字符串定义相当于一个编码的过程,点击链接触发时间,进行字符串的处理,相当于一个解码的过程。在”event:”后边,你可以定义更多自己想做的事情。


最近,自己在做一个聊天室。聊天室当然有人发言。一般都是以“某某人”+”时间“+”所说的话“的形式展现在对话框中。很多人聊天,就出现很多人的名字和他们说的话。要想点击某个人的名字就可以和某个人私聊。用上边这个做法就不错。你可以将链接的类型(有的不一定是聊天,比如我想点击链接加载一个swf,就是另外一个类型了),人物的昵称,人物的id等你所需要的信息编码进来。当点击链接触,根据自己的需要去处理。


还有一点,这里的应用也离不开字符串的处理。其实,有时候,我们可以把信息编在一个xml里边,也可以编在一串字符串里边。xml自然有它处理的规则。而字符串的”split“方法才是爽。很多时候都用到它。
好了,看下边的源码吧:



import flash.net.URLRequest;
import flash.text.TextField;


var txt:TextField=new TextField();
txt.autoSize = TextFieldAutoSize.LEFT;
var isname = getUser("七月羽歌");
txt.htmlText = isname;
txt.x = stage.stageWidth / 2 - txt.textWidth / 2;
txt.y = stage.stageHeight / 2 - txt.textHeight / 2;
addChild(txt);
txt.addEventListener(TextEvent.LINK,textHandler);

function getUser(isname:String):String
{
    var str:String = "<font color='#ff0000'><b><a href='event:chat|" + isname + "'>【 " + isname + " 】</a> </b></font>";
    return str;
}

function textHandler(e:TextEvent)
{
    var cmdArray:Array = e.text.split("|");
    switch (cmdArray[0])
    {
        case "chat" :
            if (cmdArray[1] == "七月羽歌")
            {
                navigateToURL(new URLRequest("http://www.vini123.com/chatroom/"),"_blank");
            }
            break;
        default :
            break;
    }
}