如果在写代码的时候不知道这个代码在那个命名空间下,通过什么方法可以知道啊,麻烦写详细一点哈······作者: 无奈的我+.l 时间: 2014-2-8 15:14
一:私有变量与封装变量
平时我们学习写代码的时候所使用的命名空间基本就是以public、private、protected这三种为主,而在变量命名的技巧上则遵循驼峰命名法。但是碰到要封装的变量则会起一个和get/set差不多的变量名来表明他们之间的关系。比如一下代码
private var _x:Number;
public function get x():Number{
return this._x;
}
public function set x(value:Number):void{
this._x = value;
}
private var _y:Number;
public function get y():Number{
return this._y;
}
public function set y(value:Number):void{
this._y = value;
}
采用自定义命名空间的解决方案就是采用下面这种定义:
private namespace _;
_ var x:Number;
public function get x():Number{
return _::x;
}
public function set x(value:Number):void{
_::x = value;
}
_ var y:Number;
public function get y():Number{
return _::y;
}
public function set y(value:Number):void{
_::y = value;
}
其实就是把原来我们用来代表private变量的”_”定义成一个private的namespace。
二、事件函数区分与定义
写AS3自然会非常频繁的和事件机制打交道,那么在习惯了使用private、public命名空间使用的时候,事件回调函数的定义我以前基本都是用private function。而命名方面基本就是loader的名字后面加事件,比如:
private var xmlLoader:URLLoader = new URLLoader;
xmlLoader.addEventListener(Event.COMPLETE,xmlLoader_complete);
xmlLoader.addEventListener(IOErrorEvent.IO_ERROR,xmlLoader_ioError);
loader var xml:URLLoader = new URLLoader;
loader::xml.addEventListener(Event.COMPLETE,event::xml_complete);
loader::xml.addEventListener(IOErrorEvent.IO_ERROR, ioErrorEvent::xml_ioError);
event function xmlLoader_complete(e:Event):void{
//代码
}
ioErrorEvent function xml_ioError(e: IOErrorEvent):void{
//代码
}
基本就是以类型来定义一个命名空间,这样就可以很方便的区分函数的作用。在代码折叠函数的时候很容易区分函数,从而达到快速人肉寻找的目的。