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