草根也讲品味

高山仰止,虽不能至,然心向往之

订阅

  • 可牛影像在线版http://www.keniu.com/online/online.html是一个可以在线编译图片的web程序
    前台是flash,后台web服务器用的是 php, 后台图片处理程序未知
    利用firebug跟踪,发现这个前台总共有三个swf (都在http://www.keniu.com/online)
    CoSkin.swf     一些皮肤背景,简单素材,无代码
    Wrapper.swf   加载器,包含一个进度条动画,就加载ConewEditor.swf这个文件
    ConewEditor.swf 图片编辑操作的代码都在这个swf里(未细看,等研究完发文章)

    Read the rest of this entry »

    No Comments
  • 第一部分
    命名
    良好的命名是代码易用性和易理解性的关键。你应该花些时间选择合适的命名,特别是对外提供的API。
    缩写
    避免缩写成为一个规则。全称比缩写好。代码的清晰比命名的精简更重要。不是每个开发者都知道你缩写的含义。
    缩写词
    在AS3中缩写词很普遍,例如AIR,CSS, URL, XML等。缩写词要么全大写,要么全小写。
    词间隔
    驼峰式或下划线式
    类型指定命名
    如果你想把类型合并到命名中,那将这个类型作为最后一个单词追加在命名上。
    包名
    小写字母开头,一般是名词或动名词,不推荐动词,形容词和副词。
    如果一个包里类实现很多相似东西,那么这个包名最好用复数。
    文件名
    对于重要的API,文件名里最好有公开API在里面。

    Read the rest of this entry »

    No Comments
  • No Comments
  • 重构pureMVC,提高其效率(待验证)
    pureMVC为了跨语言,使用了设计模式的观察者模式实现其消息机制;如使用虚拟机内置优化的事件机制的话,虽少了跨语言的优势,但感觉效率是高些。提一下adobe推的框架cairngorm就是使用flash内置事件的框架,我现在做的其实就把两个整合下而已,技术含量不高。
    具体细节:
    1. 把MVC里的array改成dictionary,优化检索和垃圾回收
    2. 把里面的notification观察者模式改成flash内置的事件机制

    Read the rest of this entry »

    No Comments
  • 最近工作一直在忙一个webgame,网页版的MMORPG,在开发过程中遇见几个问题。
    IE6,IE7等刷新页面,原有页面里的flash的socket链接还保持着,在后台进程与socket服务器连接没断,刷新页面后又新建socket链接。火狐不存在这问题,也许flash在两种浏览器上运行方式不一样。
    解决方案有2种:一是客户端做心跳机制,二是浏览器刷新时触发js脚本,js去调用as3,主动手动关闭上次socket 链接。

    在做pk战斗时发现的问题,针对某些含有事件监听的对象时,不用时最好手动去除那些事件监听。就像c++里的析构函数一样,做一些清理工作。因为虚拟机的垃圾回收并不是即时的,你不用的对象也许还在内存中。而这时你发出一个那个舍弃对象感兴趣的事件,那就会发生意想不到的问题。

    No Comments