Flex框架中样式的实现原理与AS3中的原型链继承

在Flex中setStyle这个特性特别好用,当一个容器Group的样式时,那么这个容器的子项的样式也会跟着起作用。比如设置Application的fontSize这个样式为20,那么如果不显式设置子项的fontSize,子项的字体大小就都会是20,而不用每次子项再去重复设置了,这个特性对于开发者来讲是至关重要的,能减少很多重复的代码。而这个特性的实现,离不开原型链继承这个重要概念。

分享一个小巧的快捷键管理工具类

最近要完成软件中的快捷键模块。基本需求就是能做到让用户自由设置。基本之前的所有按键都是写死在代码中的,就像下面这样糟糕:

this.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDown);

private function onKeyDown(event:KeyboardEvent):void
{
    if(event.keyCode==Keyboard.S&&event.ctrlKey)
    {
        ...dosomething
    }
}

框架包结构的设计

这里的框架拿Flex或者FlexLite以及Egret做例子。框架的包结构划分应该是以调用关系为依据划分的,尽量把需要相互调用的类放在一个包下面。这样最终得到的结果就是各个包之间相互独立,理想情况下即使你删除一个包,其他的也不受影响。但是现实肯定不是理想的,包之间总是还有依赖。这些有依赖的东西,大部分就是框架里面核心的东西了。这时候就把这些公共依赖的部分抽出来,放到一个核心包下,比如叫core。 从另一种角度上来讲,所谓的框架”核心类”,实际上就是一些公共耦合的类。这样其他的包都和这个核心包有依赖关系,但是他们彼此之间没有依赖关系。

解读DXML编译器

DXML就是FlexLite中由FlexLiteStdio生成的皮肤文件,类似于Flex中的MXML。实际上区别没多少,可能最大的区别就是MXML支持Script脚本。DXML架构设计对编写各类UI编辑器,各类代码生成工具都有很好的参考价值。这里主要分析DXML编译器是如何将DXML文件转换为as代码。

使用egret开发2048

2048是最近很火的一个小游戏,原版 就是用JavaScript写的。恰巧最近Egret PublicBeta,观望和学习了一阵后,发现egret正好适合开发这类游戏。Egret使用TypeScript作为开发语言,最终编译为JavaScript,正好和原始版本PK一下。

游戏预览:点我体验

在路上

博客建站以来也快有一个月了,每次想写点什么都不得而终。究其原因还是自己太懒了。所以现在趁自己不懒的时候,记录自己在前端开发路上的点滴。 希望此文能做一个好的开始,以此共勉。

Flash开发到了如今,也到了日落西山,穷途末路的时候吧。从官方上来看,Adobe已经对Flash力不从心了,停止了移动端的FP的更新 ,把Flex捐给了Apache 。从开发者来看,大量新技术如Html5,Cocos2d,Unity3D的出现让开发者有了更多的选择,好多Flash老程序员都转行了,这似乎成了一个趋势 。 从市场上来看,如今的页游市场,已经不复当年的辉煌了,前篇一律的感觉玩家会卖账么?而且各种坑爹的运营导致Flash游戏的名声越来越臭。总之,对于即将毕业的我选择Flash开发这条路显然不是一个明智的选择。