弱引用 addEventListener

2010年6月27日 5 条评论

之前只是知道尽量用强引用,不要用弱引用,因为弱引用会被垃圾回收. 对于flash.utils.Dictionary倒是没有什么疑问.但EventDispatcher.addEventListener就不明白具体是侦听器被回收了,还是侦听者被回收了。
昨天有看了一些文章,又想起这个问题,就想要理解透彻,于是又仔细看了下API文档.

Class-level member functions are not subject to garbage collection, so you can set useWeakReference to true for class-level member functions without subjecting them to garbage collection. If you set useWeakReference to true for a listener that is a nested inner function, the function will be garbge-collected and no longer persistent. If you create references to the inner function (save it in another variable) then it is not garbage-collected and stays persistent.

原来这里的弱引用是对侦听器的(侦听器函数),跟侦听者没有关系. 为了验证这个观点,我做了个小Demo。
OK,让我们来一边享受引用,一边学习吧。
阅读全文...

Flex工程里TextField在fp10.1下不能输入中文的解决办法

2010年6月26日 10 条评论

前段时间项目测试突然发现中文输入不正常,有时IME会失效,反复测试后发现这是fp10.1的一个bug. 然后提交到http://bugs.adobe.com/jira/browse/FP-4813,可是正式版的flashplayer已经发布了,要修复这个bug也要等到下个flashplayer版本。
我们的项目可等不了那么久,于是找找其他解决办法, Google,百度后都没有提到过类似的问题.
设置IME.enabled = true也不管用。
仔细测试后发现:Flex的TextInput可以输入中文,既然flex的可要输入,那么TextField也应该可要输入中文的。
于是翻开mx.controls.TextInput的源码仔细查看. 几经测试后终于在一处注释处发现了一点线索.

We don't call IME.conversionMode here. We call it only on focusIn. Thus fringe cases like setting imeMode dynamically without moving focus, through keyboard events, wouldn't change the mode. Also getting imeMode asynch. from the server which gets delayed and set later after focusIn is not handled as having the text partly in one script and partly in another is not desirable.

既然说在获得焦点后设置imeMode,那么我是不是也应该在focuseIn后设置IME.enabled呢。
说干就干,马上做了一个测试,果然成功了。困扰我多时的问题终于解决了。
阅读全文...

googleCode的另类用法之免费资源服务器

2010年6月15日 3 条评论

大家都知道googleCode是开源项目托管用的,然后允许发布项目完整版本供大家下载,并且直接有文件地址,支持外链,现在已经提供了2G的空间,记不记得我们到处找网络U盘,空间等等... , 来存放一些falsh,MP3,Image文件,以供我们在某些地方引用,现在有了googleCode,这些问题一下子都迎刃而解了,太棒了,google的空间还是很快的,放在google大可以放心,唯一担心的是googleCode不要被墙了 :mrgreen: (googleCode, good luck! 阿门 :idea: ) 我自己做了个资源点 http://lite3.googlecode.com 现在只是放了一些mp3文件,以后会放跟多东西的

阅读全文...

标签:
回到顶部