首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

[转]AS3中的恒量

2012-12-21 
[转]AS3中的常量as3中常量通常是使用的字符串,比如说TextFieldType.INPUT、StageAlign.TOP_LEFT,有些时候这

[转]AS3中的常量
as3中常量通常是使用的字符串,比如说TextFieldType.INPUT、StageAlign.TOP_LEFT,有些时候这样使用没什么大碍,而有些时候如果随意传入一个字符串就可能出现运行异常,解决的办法就是使用if…else…来判断,如果不是允许的字符串则抛出异常,提醒调用者。

今天想到了一个代替的方法,能够很好的避免if…else…的长串判断,并且是强类型的,类似于枚举。缺点就是必须创建对象。

package {import flash.errors.IllegalOperationError;public class MapType{// 常量 apublic static const RECTANGLE_MAP_RECTANGLE_TILE:MapType = createInstance(“rectangleMapRectangleTile”);// 常量 bpublic static const DIAMOND_MAP_DIAMOND_TILE:MapType = createInstance(“diamondMapDiamondTile”);// 常量 cpublic static const RECTANGLE_MAP_DIAMOND_TILE:MapType = createInstance(“rectangleMapDiamondTile”);// 常量 dpublic static const RECTANGLE_MAP_HEXAGON_TILE:MapType = createInstance(“rectangleMapHexagonTile”);// 记录常量的字符串形式private var _type:String = null;public function MapType(type:String){if (!_allowInstance){throw new IllegalOperationError();}_type = type;}// 只允许类内部创建对象private static var _allowInstance:Boolean = false;private static function createInstance(type:String):MapType{_allowInstance = true;var instance:MapType = new MapType(type);_allowInstance = false;return instance;}public function toString():String{return _type;}}}

热点排行