【游客模式】——注册会员,加入11RIA 闪客社区吧!一起见证Flash的再次辉煌……
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
转载:9RIA游戏开发者社区(天地会)
作者:iloveas(原天地会大神)
总目录:[原创]AS3游戏开发实用技巧汇总
这篇帖子本来不在iloveas的计划之内(毕竟用AIR做网游的朋友不算太多),但既然昨天有朋友在别的帖子里提到了这个问题,那我今天就先来写写。
与之前那篇帖子一样,使用FTE,TLF的大神可以无视,因为本帖讨论的依然是TextField。
使用TextField实现图文混排的时候,大家用得最多的,估计就是getCharBoundaries方法。因为它可以获取一个字符的位置和大小,如果这个字符是空格的话,那就可以通过上述方法来定位表情图片了。
不过在AIR里,这个方法有个Bug,如果你在AIR项目里进行如下的测试:
[Actionscript3] 纯文本查看 复制代码 var txt:TextField = new TextField();
txt.text = "abc";
trace(txt.getCharBoundaries(0));
addChild(txt);
trace(txt.getCharBoundaries(0));
就会发现,TextField在addChild前后,getCharBoundaries方法所得到的矩形相差甚远,addChild前的矩形要小得多。
这本来不是什么大问题,因为addChild后的结果依然准确,而且不addChild的情况下获取字符边界的需求也不多见(虽然iloveas在开发应用的时候遇到过),但如果那位朋友真的遇到类似的问题,就可以考虑通过如下的方法进行解决。很简单,在通过getCharBoundaries方法获取到矩形后,追加以下一行代码:
得到的矩形区域就准确了。
如果不是这样的问题,那可能是FP11跟FP10(此处针对发布版本)对TextField布局处理的差异所致,不过iloveas还没有具体测试过,所以暂不能给出解决方案。
这是一个很有规律的Bug,iloveas为了找出这个规律,曾经花费了将近半小时的时间,所以我设置了回复可见,希望大家可以抽出半分钟乃至半秒的时间回一下本帖,支持一下iloveas,谢谢大家啦~~
|