06 2011 档案

摘要:成为一个优秀的程序员和成为其他优秀的专业人员一样,需要尽可能多的做一些有质量的工作。有句很流行的话可以总结:做,正确做事,立马就做。(Do it. Do it right. Do it right now) 0. 将一天要做的事情列成清单 完成复杂活动(activity)的最好方法是将其拆分成简单的各项活动。每天早上,将你一天要完成的活动进行拆分,然后制定一个相应的日程安排表,这样能够帮助你:更好的理解这个活动。每天都有一个集中的目标。提高你的估计能力,几天之后,你会发现你能预测一天的工作量。 1. 一次只做一件事 集中于一项任务比同时做多项任务更多产,不同的研究已经证明这个观点,并且发布在不 阅读全文
posted @ 2011-06-28 14:33 子福当自强 阅读(178) 评论(0) 推荐(0)
摘要:加载形式FLASH加载文件有两种常规方式:一种是URLLoader,可以加载文本、二进制数据或 URL 编码变量形式的数据,然后转换成简单的文本形式或值对字符串形式;一种是Loader,可以将加载的图像文件转换成BitmapData,也可以解析SWF文件。(Socket, LocalConnection这些非常用类不在讨论范围)加载的资源应被统一管理以方便调用和重用,管理方式一般有两种:一种是将资源全部打包进SWF;一种是加载分散资源通过配置进行管理。我将对这两种管理方式进行介绍。资源打包成SWF在编辑FLA文件时,我们可以导入各种图片,并为其设置链接名。除手工逐个操作外,我们可以借助JSFL 阅读全文
posted @ 2011-06-24 14:52 子福当自强 阅读(356) 评论(0) 推荐(0)
摘要:一般程序开发完成后就进入了繁琐无趣的后期维护阶段,请不要以为一个不停更新的项目后期维护是一件轻松的事情,它会暴露出开发过程中的所有硬伤,不规范的写法、混乱的逻辑结构、高耦合导致地牵一发而动全身。虽然开发内容实际上减少了,但人力成本反而更高。要提高这方面效率有很多技巧,本文介绍的内容只是起点--如何快速找到项目中需要修改的代码。一般出现问题首先看到得是表现部分,例如对话框,关系到一些具体逻辑或某个服务端请求,即使不是很清晰的部分也一定有临近的区域。根据表现找到其对应代码,我将其称为定位。搜索关键字:泛用但低效搜索关键字是广泛使用的方法。例如,你在节目上看到某个图片,找到图片标志,在所有代码中搜索 阅读全文
posted @ 2011-06-24 14:52 子福当自强 阅读(228) 评论(0) 推荐(0)
摘要:GC和内存泄露无关垃圾回收,这次是一个被无数人讨论过的传统话题。Action Script使用的是和Java相似的内存管理机制,并不会即时回收废弃对象的内存,而是在特定时间统一执行一次GC(Gabage Collection)操作来释放废弃对象的内存,避免了重复判断是否需要回收产生的性能问题。但要注意,这只是决定回收的时机,而不是回收的内容。这个延迟执行内存回收也就是个表面的现象,不管什么时候执行GC,能够回收的内存最终都能回收,不能回收的肯定不能回收。唯一的影响是,因为回收是延迟执行的,你在查看内存的时候不能直观地看到因为一个对象被废弃而回收内存的过程,会产生迷惑。但这对于解决内存泄露是无关 阅读全文
posted @ 2011-06-24 14:51 子福当自强 阅读(331) 评论(0) 推荐(1)
摘要:FLASH与传统环境的不同点MVC最早在1979年的时候第一次被人提出。不过,当时还不存在网络应用的概念。之后当万维网诞生之后,又过了很长时间……它并不是自诞生就开始流行的,而改变的原因很简单——因为两个极其流行的开发框架包含了这种模式,它们就是:Struts 和 Ruby on Rails。之后,模仿者蜂拥而至。所以,在人们眼里看来,实际上是先有的Struts,然后才有的MVC,也无怪乎MVC的概念会始终沾染着Web概念,乃至和一些框架附加内容牵涉不清。因为Struts很好用,别的不说,至少让HTML显得干净了很多。所以很多人都在用Struts,这未必是因为需要MVC模式,而是因为他们需要S 阅读全文
posted @ 2011-06-24 14:47 子福当自强 阅读(233) 评论(0) 推荐(0)
摘要:透过现象看本质首先是个转场特效问题。其实我早想到做法了,只是当时还没实践。增加混合(BlendMode.ADD)只要关系到光效,泛用性就很高,叠加着画上去看起来应该就是这个效果。但是我还是先到群里问了下,然后一帮人就跟我说径向模糊。还有一帮人说以前搞过,拿我的原图上了个径向模糊发给我。但是径向模糊多慢用过PS都知道,怎么也不可能用在动画效果里的。这个东西的确有点像径向模糊,但是像什么就做什么,从表面着手,思考方式就有点单纯了。实际上做法再简单不过,调整Matrix缩放和旋转图形,一点点放大,然后用增加混合模式将原图叠加着画上去即可。var m:Matrix = new Matrix(); m. 阅读全文
posted @ 2011-06-24 14:46 子福当自强 阅读(330) 评论(0) 推荐(0)
摘要:最短路径原则,就是将复杂的问题简单化。达到目标并不是只有一条路,眼前的那条往往也不是最短的一条。所以,解决问题前的第一步,应该是要找实现目标的最短路线。虽然有些人可能会喜欢完成些复杂的算法来获得成就感,但这就是另一个话题了。要明白,我们是作为实现工具的工人,而不是授命在空中楼阁中研究的学者。魔术师视角,而不是观众视角首先是一个比较典型的例子。那位兄台提出这个问题的时候,问的是碰撞检测。而且是不规则形状,有凹的也有凸的碰撞检测。判断两个物体是否边缘匹配,可以拼在一起。最后还要在放下时自动检测周围的方块,并自动吸附。必须得说,这个课题真的很困难,倒不是说找不出方法,而是找不出效率可以接受的方法。优 阅读全文
posted @ 2011-06-24 14:45 子福当自强 阅读(413) 评论(0) 推荐(0)
摘要:【编者按】随着富互联网技术(RIA)的潮流,Flash技术在互联网中的应用越来越多,国内Flash开发者数量也在以惊人的数量增长。本专题——务实主义,将主要介绍如何在Flash开发过程中尽量提高自己的开发效率,不为花哨,只为务实。文章中会提及许多flash开发中的实用技巧,期望对各位看官能有所帮助。不需要的战争很早以前就有一种说法——技术行业里最无聊的莫过于语言战争。最典型的就是Java与.net之间旷日持久的战争与和平,期间掺杂着公司的宣传手腕,永不休止的针对细枝末节的口水战。一件事情要争论起来始终都有素材,问题在于这种大规模的嘴仗,即使产生了结论也难以被沉淀下来。而且,其结论往往也无法产生 阅读全文
posted @ 2011-06-24 14:42 子福当自强 阅读(262) 评论(0) 推荐(0)
摘要:D语言是一种由Digital Mars公司创造的系统编程语言,它专注于“把C和C++的能力和高性能与先进的语言——像Ruby和Python——的高生产力结合起来。” 尽管它仍然是一种静态类型的语言,可以直接编译成本地代码,而且语法看起来与Java或者C#非常类似,但是它做出了很多有意义的改进。这些改进包括明确地支持惰性参数。当我们使用关键字“lazy”标记一个形参时,就意味着相关的实参会被赋值0次或者多次。这与Haskell之类的语言不同,它会延迟对实参赋值0次或者1次,但不会再多。为了保证程序的正确性,特别是在并行以及多线程的领域中的正确性,D语言支持把“immutable”和“const” 阅读全文
posted @ 2011-06-24 14:33 子福当自强 阅读(505) 评论(0) 推荐(0)
摘要:如果只利用一套工具,就能够开发出适于各种平台运行的应用,是不是会让开发者感激涕零?Adobe公司今日发布的工具套件正在让这美好的愿景变成现实。Adobe今日更新了公司旗下两款制作工具,Adobe Flash Builder 4.5和Flex 4.5。此次更新后,开发者便可利用这套软件,针对Android、iPhone、iPad与黑莓PlayBook各种平台开发产品了。 按照Adobe在声明中的说法,开发者们现在可以使用一个单一工具,创建高质量的手机应用程序。利用Flash Builder 4.5开发的应用,可以做到与多种手机设备系统的无缝连接。Adobe称,使用Flash Builder,开发 阅读全文
posted @ 2011-06-21 22:55 子福当自强 阅读(224) 评论(0) 推荐(0)
摘要:当程序越来越大,我们需要把它拆分成多个swf,在需要的时候动态加载。拆分时应该尽量把不同的类编译进唯一的swf,避免因swf文件增多而使整个程序的文件尺寸增大。按此原则可以拆分出以下两种swf,借助 ApplicationDomain 共享其代码和资源。模块(Module)按照程序逻辑,可以拆分出多个“功能模块”,如“注册”、“管理”等等;按照游戏或社区类程序的关卡或场景,可以拆分出不同的“场景模块”。这些模块不是主程序运行必须的,只在需要的时候加载。 运行时共享库(RSL)主场景或者多个模块通用的资源,比如位图、声音、设计好的页面元素等,可作为“库”在主程序运行前加载。可以整套更换的皮肤(. 阅读全文
posted @ 2011-06-20 10:09 子福当自强 阅读(348) 评论(0) 推荐(1)
摘要:删除对对象的所有引用以确保触发垃圾回收。 在 Flash Player 的发行版中无法直接启动垃圾回收器。要确保将一个对象作为垃圾回收,请删除对该对象的所有引用。请记住,在 ActionScript 1.0 和 2.0 中使用的旧 delete 运算符在 ActionScript 3.0 中有不同的行为。它只能用于删除动态对象的动态属性。注: 在 Adobe® AIR® 和 Flash Player 的调试版中可以直接调用垃圾回收器。例如,以下代码将 Sprite 引用设置为 null:var mySprite:Sprite = new Sprite(); // Set t 阅读全文
posted @ 2011-06-20 02:35 子福当自强 阅读(322) 评论(0) 推荐(0)
摘要:问题我想把自定义类实例存储到LSO解决办法使用flash.net.registerClassAlias( )方法保留类型信息并把类实例添加到共享对象的data属性上。讨论LSOs 使用特殊的二进制格式,Action Message Format (AMF),当要在LSO中存储类实例时,实例会被编码为包含属性的普通的object。这样当重新从共享对象中读取实例时,已经不是原来的类实例了,因为已不能根据类型信息解码回来。flash.net包中的registerClassAlias( )方法就是为解决这个问题的,这个方法的使用是很简单的,在AS1.0和AS2.0中写法是Object.register 阅读全文
posted @ 2011-06-20 02:33 子福当自强 阅读(599) 评论(0) 推荐(0)
摘要:简介电影剪辑在运行时,大多数数据都存储在内容中,一旦电影剪辑关闭,那么这些数据也同时从内存中清除掉,如果想存储数据或者让客户端的 两个电影剪辑共享数据该怎么办呢,要想办法把数据存储在Flash播放器外面。ActionScript中,SharedObject类 实现了客户端机器数据的持久性存储。有两种类型的共享对象:本地和远程,这章集中讨论local shared objects (LSOs).Local shared objects 很类似于浏览器中cookies,LSOs 的功能也和cookies 很类似,如存储用户登陆网站的用户名, 这样不必每次登陆都要输入用户名了,不过LSOs 的功能不 阅读全文
posted @ 2011-06-20 02:33 子福当自强 阅读(817) 评论(0) 推荐(0)
摘要:近日,一项评测向人们证明了:HTML5在性能上仍远远落后于Flashplayer。测试使用了Droid X, Nexus One, Desire HD, Atrix, PlayBook, Galaxy Tab, Xoom 等设备,分别测试了位图,矢量图,数值运算,视频播放等项目。 位图:所有设备上Flash的位图性能都优于HTML5,平均而言Flash的速度是HTML5的2倍矢量图:所有设备上Flash的矢量图图性能都明显优于HTML5,Flash的速度是HTML5的3到4倍数值运算:AS3的确是一种很慢的语言,但那只是相对于Java和C#这些静态语言而言的。不论如今的js得到了多大的优化,都 阅读全文
posted @ 2011-06-16 10:05 子福当自强 阅读(733) 评论(0) 推荐(1)
摘要:1.- 所有的程序都写的很烂,除了我的。我要告诉你一个坏消息,兄弟,所有的程序都写的很烂,包括你的。无论你在上面花多少功夫,其他大多数程序员总是会认为你写的代码很烂、他们能写出比你好10倍的程序。 如何纠正:不要挑剔别人的程序,有一天也许你的程序会被人放在聚光灯下挑剔。要保持客观和专业的评论,不要轻易判断。要谦虚,从周围人哪里学习经验,警戒自己不要写出这么糟的程序。2.- 我几秒钟就能把它改好,不用走变更流程了。抄捷径充满诱惑,每个人都想抄捷径。有时候抄捷径是必要的,但总的来说,抄捷径是危险的,非常危险,应该避免这样做。走捷径也许会节省你数小时的时间,但如果走错了,它可能会给你带来数月的麻烦。 阅读全文
posted @ 2011-06-07 15:38 子福当自强 阅读(173) 评论(0) 推荐(0)

悟道