随笔分类 - As3.0实验室
摘要:MVC(Model View Controller)模型-视图-控制器 M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。这是网站开发经常用到的一种模式,最重要的一点是多个视图能共享一个模型。模型图:MVC流程...
阅读全文
摘要:这次先把ActionScript 3.0 事件机制总结一下先吧,这里只说一下自定义类发送事件的3中方式,因为在设计模式中是比较常用的。例如MVC。关于自定义事件,主要由于两个类:事件类(Event),事件发送类(EventDispatcher)。我们讨论的自定义发送事件,就是如何使对象能够发送事件。方式一:继承EventDispatcher类只要继承EventDispatcher类,就可以直接用E...
阅读全文
摘要:【实例演示】为了能看到每步的效果,我将每秒的帧数设置为6,调慢物体移动的速度,效果如上。本来A*算法的核心算法不是很复杂,但是实现起来的代码比想象中多了很多,而且很多细节没有能够一一测试,放个DEMO上来,以后要用到,再每个环节都调试一遍吧。其实有本电子书上有A*的例子,不过是在我敲完代码的时候才发现,杯具……!关于A*算法的资料,可以参考A*寻路初探 GameDev....
阅读全文
摘要:这次把《ActionScript 3.0设计模式》里面的汽车装配例子敲一下,加深印象,最终效果如下,左边是汽车品牌,右边是要装配的功能,点击按钮可以实现计价。用装饰器模式,可以实现在不破坏原始类功能的情况下,实现新的功能。参考资料:《Actionscript 3.0 设计模式》
阅读全文
摘要:装饰器模式主要特征是用特殊的方式给对象添加功能职责,实际上,这个装饰器跟我们想象的装饰一棵圣诞树差不多,但又有不同之处。我的理解是,虽然增加了装饰物,但是这些装饰物不是直接add上去的,之前一直被这个概念搞混。因为这种模式是建立在一个超类的基础上的,例如下图的:Component,所有其他的类都是这个超类的子类,包括具体的组件和装饰类。因此我们装饰的对象,与被装饰的对象,是继承共同的超类的。这也是...
阅读全文
摘要:单态模式可以保证一个类只有一个实例存在,一般情况下,单态模式可以由以下方式实现:但是ActionScript 3.0不支持私有的构造函数,所以我们要采用其他折衷的方法实现私有的构造函数——包外类。【包外类】通常情况下,一个.as类文件package{}内只可以定义一个类,而且必须与文件名相同,这个类对外是可见的,而在package{}还可以定义多个类,这些类与文件名不同,并...
阅读全文
摘要:研究了一段时间工厂模式,顺便把书里面的例子敲一下,大概效果就是这样。【示例效果】【代码说明】运用了两个工厂模式,一个是简单工厂(ShipCreator.as)创建飞行器,一个是工厂方法(Weapon.as)创建武器子弹。飞机装载的武器过于耦合,如果要开发成小游戏,还要改善。用这个例子说明工厂方法实在适合不过,飞机工厂创建5个飞行器产品,而这五个飞行器装载的武器又是对应的5个武器工厂,不断发射的子弹...
阅读全文
摘要:我们在编写AS3.0的代码时,有时候需要在事件上执行函数传参,例如:像上面的情况,有一个事件响应的函数,需要传参数,i就是我们希望传的值,但是这种做法,编写响应函数是没法通过编译的,我在网上看过可以解决编译的响应函数:这样就可以解决传参的问题了,测试可以trace到i的传值,真实太神奇了,具体原理是怎么实现的,当时不是很明白,在我研究javascript闭包的时候,终于发现了两者的相似之处。用闭包...
阅读全文
摘要:这段时间用flash做了一个项目,其中用到了flash slider滚动条的功能,本来想用官方的组件,无奈修改样式过于麻烦,也不好用,所以自己制作了一个,可以实现相类似的功能。【实例演示】代码结构如下:mySlider是slider的主类,通过setMc(mc:ISlider);控制传入的操作接口,控制影片剪辑。rotateMc,Resize是操作方法,继承接口ISlider,以后要扩展各种功能,...
阅读全文
摘要:1、改进算法 无论对于那一种程序,好的算法总是非常重要的,而且能够极大地提高程序性能,所以任何性能的优化第一步就是从算法或者说程序逻辑的优化开始,检查自己的程序是否有多余的运算,是否在没有必要的时候做了无用功,往往从这些方面就能找到那些导致性能低下的地方。2、优化细节代码 针对细节总是好的,有一些小技巧比如: 用 var obj:Object = {}; 要比 var obj:Object = n...
阅读全文
摘要:在Adobe Flash Player 10中,AS3的内部垃圾回收机制是怎样的?程序员可以强制FP回收内存吗?答案是否定的,但有方法。强制垃圾内存回收的代码AS3程序员没有办法强制Flash Player进行垃圾回收。MoonSpirit在天地会撰写过一篇关于强制垃圾回收的文章:[as hack技术]垃圾回收机强制执行。文中例证,使用LocalConnection连接非法地址,并捕获导常,可以强...
阅读全文
摘要:Flash Player的garbage collection(GC)分两种运行方式,一种是“引用计数法”(Reference Counting),一种是“标记-清除法”(Mark Sweeping)。引用计数法是通过计算指向某个对象的引用的数量来确定是否清除该对象。如果一个对象的引用数量为0,表示程序无法再访问到该对象,则清除该对象;如果引用计数不...
阅读全文