摘要: 最近做的一个flash程序要上线了,QA测试出某些浏览器显示有问题,主要是一些基于IE内核的国内浏览器,例如360等。最后调试发现问题是从js获取参数都是空,也就是ExternalInterface.call都返回null。网上找到的一个简单的方法是延迟初始化,就像下面这样: public function TestMain() { super(); setTimeout(startInit, 50); } private function startInit():void { var p:Object = ExternalInterface.call("... 阅读全文
posted @ 2011-08-12 18:22 李土鳖 阅读(998) 评论(0) 推荐(0) 编辑
摘要: 这个问题困扰了我很久。我一开始用TextField显示文字,大部分情况下是正常的,但是显示某些长字符串或者里面有些特殊标点符号的时候显示的很难看。想换字体,可惜TextFormat里面的font设置了根本没用。网上搜了很多都说要嵌入字体,这个很不靠谱,我flash本来就几十K,再来个几M的字体,那页面不得拖死。搜索了很多文章,有推荐用设备字体,研究了一下果然可以了。当然不支持跨平台,不过这个也够了。下面是一个示例代码,里面的字体可以设置成楷体、微软雅黑等,只要系统带了这个字体就行。 package{ import flash.display.Sprite; import flash.tex.. 阅读全文
posted @ 2011-08-10 17:28 李土鳖 阅读(804) 评论(0) 推荐(0) 编辑
摘要: 加密解密 DES .Net Flex 阅读全文
posted @ 2011-05-09 10:01 李土鳖 阅读(1603) 评论(4) 推荐(0) 编辑
摘要: 在flex里面TitleWindow的拖动范围默认是不控制的,但是我们经常需要将其约束在整个应用程序的主窗口内,我找了半天也没有找到相关属性设置,只能重写,下面是重写的代码: override protected function startDragging(event:MouseEvent):void { regX = event.stageX - x; regY = event.stageY - y; var sbRoot:DisplayObject = systemManager.getSandboxRoot(); sbRoot.addEventListener( MouseEvent. 阅读全文
posted @ 2011-05-05 20:03 李土鳖 阅读(1558) 评论(1) 推荐(1) 编辑
摘要: 这两天正在做一个项目,我的Flex客户端需要和.Net通讯,令人不爽的是.Net的字典(IDictionary)在序列化时都会转化成一个键值对的列表,而不是json最普通的对象。DataContractJsonSerializer会将每一个键值对折腾成{"Key":"age","Value":10},我希望的是"age":10。网上搜了很久,没什么好方法,想到了开源,下了个fastJson来玩,发现也一样,只不过变成了{"K":"age","V":10}, 阅读全文
posted @ 2011-03-21 10:20 李土鳖 阅读(1165) 评论(0) 推荐(0) 编辑
摘要: 1. 问题:Data store space exhausted,Permanent data partition free space insufficient to allocate 5500 bytes of memory 原因:查询语句中可能用到索引,多个查询语句同时执行导致表锁死,最后使得临时区大小狂涨。 今天给自己写的一个从TT导出大量数据的程序加了个排序,也就是查询语句后面都加了order by 【主键】。程序是多线程并发读取数据的,本来想应该没什么问题的,结果执行一段时间久抛出问题中所指的错误,大体意思就是临时区占用超过上限了。我用dssize看了一下,TEMP_IN_USE_ 阅读全文
posted @ 2011-01-27 17:07 李土鳖 阅读(550) 评论(0) 推荐(0) 编辑
摘要: 很多时候我们需要对数据库进行增量更新,比如从TimesTen数据库导入数据到MySql数据库中。为了保证导入是增量的,我们必须跳过那些没有被修改过的数据,现在比较流行的方法是使用时间戳, 也就是定义一个类型为timestamp的新列。当我们对这个表增加或删除行时,必须更新这个列的数据,以反映行被更新过了。以TimesTen为例,我们可以用下面的方式创建一个表:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->CREATETABLE PEOPLE 阅读全文
posted @ 2011-01-11 16:57 李土鳖 阅读(1062) 评论(0) 推荐(0) 编辑
摘要: 我们有时候需要向数据库大量插入数据,这种情况下效率成了个关键问题。如果是数据进行转移,我们可以使用SqlBulkCopy类,还有一个很傻的办法就是将insert语句拼装一下,比如将100个sql语句连起来构成一个sql,然后执行。前面一种办法只适合转移数据,如果直接插入就不行了,后面那个办法有的数据库不支持。 其实在.Net里我们可以用DataAdapter解决这个问题,不过方法比较土鳖。大体思路是用一个条件恒定不满足的select语句先获取表结构,Fill一个空的DataTable。然后用CommandBuilder构建增删改语句,最后批量的先将数据插入到这个DataTable里面,然后用. 阅读全文
posted @ 2011-01-10 20:20 李土鳖 阅读(2390) 评论(4) 推荐(0) 编辑
摘要: 1. 调用ensureIndex创建索引时,必须保证以前没有在对应键上建立过索引,否则语句不执行,索引将保留旧版本。 例子:我们可以给people建立一个普通索引: db.people.ensureIndex({"age" : 1}); 然后我们可以再次给age键建立一个唯一索引: db.people.ensureIndex({"age" : 1}, {"unique" : true}) 如果原来的数据里age键有重复,按照道理这次建立会失败并报错,但是我们不会遇到这种情况,语句会很快返回。2. 创建索引选项:db.collectio 阅读全文
posted @ 2011-01-05 16:36 李土鳖 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 1. 切换控制台:开始菜单键+F1~F7。就是上面有微软窗口标志的那个键。2. 安装vmware Tools。 a. 先点击VM下的install Vmware Tools 菜单。 b. 创建/mnt/cdrom目录,然后挂载cdrom。 sudo mkdir /mnt/cdrom mount -t auto /dev/cdrom /mnt/cdrom c. 切换到挂载目录(cd /mnt/cdrom)。 d. 将VMWare*.tar.gz 拷贝到当前用户的一个目录下,然后解压(tar -zxf VM*.tar.gz)。 e. 切换到解压好的目录,然后sudo ./vmware-in... 阅读全文
posted @ 2010-12-31 18:51 李土鳖 阅读(251) 评论(0) 推荐(0) 编辑