flash聊天框 表情+文字 图文混排 (思路)
space.flash8.net/bbs/viewthread.php?tid=363077
在as2里面实现文图混排很麻烦(在as3里面就很容易解决了),文本框中,html标签的方式实现图文混排,图片的的位置总是不理想。
想自己手工写程序完成个效果,创建textField,把文本显示出来,然后获得表情符号出现的位置(x,y),在这里显示表情的MC。
但把as2关于textFied的部分看了一遍,竟然没有获得具体文本,所在位置坐标的办法……
唯一的办法只有textFormat.getTextExtent获得文字信息,但是多行的时候,第二行的字符宽度就无法获得了。
最后…… 想到的办法是这样:
1. my_txt 是要显示的字符串。
2. 创建一个TextField,名为 my_txetField,宽度为100,高度为20
my_txetField的autoSize属性为true
createTextField("my_txetField", 1, 0, 0,100,20);
my_txetField.autoSize = true;
3. my_txt2 是一个内容为空的字符串
做一个循环,把my_txt中的字符一个个的加入到my_txt2中
然后在my_txetField中显示字符,
因为 my_txetField.autoSize = true;
这时可以随时获得字符串最后一个字符的x坐标
4. my_txetField的宽度_width超过 显示框宽度时。
my_txt相应位置加入"\n"换行符号。my_txt2内容清空,行数增加。
然后再逐一往my_txt2 中输入字符。获得第二行每个字符的x坐标。
5 在这个循环中,遇到表情符号就记录下来这个表情字符 所在的x,y坐标。
6 最后显示出来就行了。
:( 不知道as2中 还有没有更好的办法获得字符的坐标位置。
PS:具体实现代码 public function addEmo(param1:TextField, param2:String, param3:Rectangle) { var xml:*; var emo:*; var img:*; var emo_mc:*; var ename:*; var emoreg:RegExp; var text:*; var space:*; var len:*; var i:*; var c:*; var l:*; var txt:* = param1; var emoName:* = param2; var rectangle:* = param3; var _loc_6:int; var _loc_7:* = this.emoXML.emotion; var _loc_5:* = new XMLList(""); for each (_loc_8 in _loc_7) { // label var _loc_9:* = _loc_7[_loc_6]; with (_loc_7[_loc_6]) { if (phrase == emoName) { _loc_5[_loc_6] = _loc_8; }// end if }// end with }// end of for each ... in xml = _loc_5; if (xml.length() == 0) { return; }// end if emo = new MovieClip(); img = String(xml[0].url); Image.loadGif(img, emo); emo.x = rectangle.x + txt.x - 2; emo.y = rectangle.y + txt.y - 6; emo_mc = txt.parent.getChildByName("emo_mc"); emo_mc.addChild(emo); ename = emoName.substr(1, emoName.length - 2); emoreg = new RegExp("\\[" + ename + "\\]", "i"); text = txt.htmlText; space; len = ename.length; i; while (i < len) { // label c = ename.substr(i, 1); l = Text.byteLength(c); space = space + (l == 2 ? (" ") : (" ")); i = i++; }// end while space = space + " "; text = text.replace(emoreg, space); txt.htmlText = text; xml; return; }// end function
发表评论
-
第四章 字符串和格式化输入/输出
2012-07-06 09:52 812C语言没有字符串类型,而是把它存储在char数组中,字符串 ... -
读《精通正则表达式》:标准量词是匹配优先的
2012-07-06 09:45 592正则字符:^.*([0-9]+) 待测字符:Copyr ... -
正则表达式
2012-07-06 09:37 641正则表达式 1. ... -
asp.net的treeview右键菜单Context Menus on the TReeView - IE Specific
2012-07-06 09:30 910原文网址:http://blogs.msdn.com/b/ ... -
JS中记住用户名 密码的COOKIE实现方式
2012-07-05 20:45 869HTML: 用户名: 密码: 记住密码 ... -
GridView组件详细文档
2012-07-03 13:43 639一、结构 public ... -
Flex的通信方式(三)――HTTPService_1
2012-07-02 10:49 526MXML代码: {username.text ... -
Flex4 AdvanceDataGrid去掉排序中竖线
2012-07-02 10:48 924网上资料说:Flex4中想要去除AdvancedDataG ... -
Flex 数据绑定
2012-07-02 10:48 508//Task.as package { public cl ... -
图灵2011年6月书讯【误区】【软件调试修炼之道】即将上市
2012-07-01 00:28 597- 误区:思维中常犯的6个基本错误 --本书 ... -
ActionScript3.0学习之路(1)――ActionScript3.0初体验
2012-07-01 00:28 587最近换了一家公司,由于业务需要,要使用Flex,而Acti ... -
转写QTP学习资料
2012-07-01 00:28 10861、 QTP专业网站 2 ... -
MAX2010主题微博:第二天
2012-07-01 00:27 605Adobe Flash Builder 4 简体中文正式版 ... -
一个创业者眼中的技术
2012-07-01 00:27 564(本人文采不行, ...
相关推荐
CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器).docx
flash图文混排,flash聊天表情,很好的表情。
聊天界面的图文混排功能,主要是表情和文字的混排!
完美解决Flex3 中 实现 图文混排 。
完美解决 Flex 4 中 实现 图文混排
as3.0编写的图文混排组件,值得学习。
为了让做AS3的朋友,不在同一个功能花掉人生最宝贵的时间. 把一些可以重复利用的代码奉献出来. 这个程序是关于AS3的图文混排,即聊天内容里插入表情. 希望给有需要的朋友.
这个是Adobe的官方用Flex4新的Text Layout Framework框架做的demo,demo演示:http://labs.adobe.com/technologies/textlayout/demos/。
ios 富文本(图文混排):支持图片,文字,GIF表情
2、聊天表情:这一部分是我精心制作的,使用GDI处理各种图片使得程序支持各种格式图片的预览、插入、保存。使用XML技术,方便快捷管理表情数据。自动释放表情图片资源(程序所在目录)及QQ表情组件(放到\System32\...
一个很漂亮的flex图文混排的控件,省的大家做自己定义控件时间
轻量级图文混排 , 实现图片文字混排 , 可显示常规链接比如网址,@,话题等 , 可以自定义链接字,设置关键字高亮等功能 . 适用于微博,微信,IM聊天对话等场景 . 实现这些功能仅用了几百行代码,耦合性也较低 Github地址 :...
NULL 博文链接:https://xiaoa7.iteye.com/blog/290496
支持gif图文混排
flash富文本图文混排swc文件,导入后可直接使用!
AS3编写的图文混排,AS3编写的图文混排,AS3编写的图文混排
图文混排聊天 能看懂js代码 编译一下引擎文件 导出js接口就可以直接用
开发知乎的第一步,首先熟悉看知乎的API以及Json数据的解析,才能进行下一步。
现实actionscript3.0聊天图文混排效果
在TextView中要显示HTML文字是比较轻松的事,但是在其中混上网络图片就变的复杂了起来。本文通过重写getDrawable方法得到drawable实现图文混排效果!