写as已经有3个月多了,第三个项目进行中。
也正是从第三个项目开始,抛弃了臃肿缓慢的mx库,只用纯flash库,开发环境也转到了FlashDevelop。
通过这几月的时间,我终于对OO有了一点点认识。虽然之前我写了3年的C#代码,但都是自己小打小闹,没有上升到项目的程度。OO还是不OO都是自己说了算。
以下仅为我对OO的一点点小小的认识,不足之处还请大侠们指出。
私有字段:用于储存状态。
属性:获取或修改状态,在修改前可以进行验证,改变状态的同时,意味着发生行为(必要时)。可以设置访问权限:只读是最常见的一种。
as中最核心的类应该就是显示对象类了吧。Sprite做为最轻量级的容器当然是最常被使用的对象之一。
但是,相信很多人都发现仅仅通过属性和Sprite自身的方法来写代码实在是太麻烦了。
如果用过JQuery,你一定知道连缀,极大的减少代码量及出错可能性。
由于as3不支持泛型,也不像DOM那么简单可以全部包装成JQuery对象,于是我想了一个折中的办法来返回自己用来实现连缀。那就是--接口。
仿mx,写一个类叫Canvas,继承自Sprite,实现ICanvas接口。其他所有的显示对象均继承自Canvas即可。
public interface ICanvas
function appendTo(parent : DisplayObjectContainer, x : Object = null, y : Object = null) : ICanvas;
function removeAllChildren() : ICanvas;
function removeChildEx(child : DisplayObject) : ICanvas;
function setHandCursor(handCursor : Boolean) : ICanvas;
function hide() : ICanvas;
function show() : ICanvas;
function setPosition(x : Number, y : Number) : ICanvas;
function setSize(width : Object = null, height : Object = null) : ICanvas;
function setScale(scaleX : Number = 1.0, scaleY : Number = 1.0) : ICanvas;
function onEvent(event : String, func : Function) : ICanvas;
function click(onClick : Function) : ICanvas;
}
这样的话使用起来就很方便了。
var canvas : Canvas = new Canvas();
canvas.setSize(100, 100)
.show()
.appendTo(this, 20, 20)
.setHandCursor(true)
.click(function(e : Event) : void {
canvas.hide();
});
也正是从第三个项目开始,抛弃了臃肿缓慢的mx库,只用纯flash库,开发环境也转到了FlashDevelop。
通过这几月的时间,我终于对OO有了一点点认识。虽然之前我写了3年的C#代码,但都是自己小打小闹,没有上升到项目的程度。OO还是不OO都是自己说了算。
以下仅为我对OO的一点点小小的认识,不足之处还请大侠们指出。
私有字段:用于储存状态。
属性:获取或修改状态,在修改前可以进行验证,改变状态的同时,意味着发生行为(必要时)。可以设置访问权限:只读是最常见的一种。
as中最核心的类应该就是显示对象类了吧。Sprite做为最轻量级的容器当然是最常被使用的对象之一。
但是,相信很多人都发现仅仅通过属性和Sprite自身的方法来写代码实在是太麻烦了。
如果用过JQuery,你一定知道连缀,极大的减少代码量及出错可能性。
由于as3不支持泛型,也不像DOM那么简单可以全部包装成JQuery对象,于是我想了一个折中的办法来返回自己用来实现连缀。那就是--接口。
仿mx,写一个类叫Canvas,继承自Sprite,实现ICanvas接口。其他所有的显示对象均继承自Canvas即可。
public interface ICanvas
{
//部分
function appendTo(parent : DisplayObjectContainer, x : Object = null, y : Object = null) : ICanvas;
function removeAllChildren() : ICanvas;
function removeChildEx(child : DisplayObject) : ICanvas;
function setHandCursor(handCursor : Boolean) : ICanvas;
function hide() : ICanvas;
function show() : ICanvas;
function setPosition(x : Number, y : Number) : ICanvas;
function setSize(width : Object = null, height : Object = null) : ICanvas;
function setScale(scaleX : Number = 1.0, scaleY : Number = 1.0) : ICanvas;
function onEvent(event : String, func : Function) : ICanvas;
function click(onClick : Function) : ICanvas;
}
这样的话使用起来就很方便了。
var canvas : Canvas = new Canvas();
canvas.setSize(100, 100)
.show()
.appendTo(this, 20, 20)
.setHandCursor(true)
.click(function(e : Event) : void {
canvas.hide();
});