⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit.as

📁 actionscript3 cookbook 源代码S3CBLibrary
💻 AS
字号:
package ascb.units {
	
  public class Unit {
    private var _sUnitName:String;
    private var _sUnitCategory:String;
    private var _uBaseUnit:Unit;
    private var _nMultiplier:Number;
    private var _sLabelSingular:String;
    private var _sLabelPlural:String;

    public static function getCategories():Array {
      return ["angle", "temperature", "weightmass", "distance", "volume"];
    }

    public static function getUnits(sCategory:String):Array {
      var aAngle:Array = ["DEGREE", "RADIAN", "GRADIAN"];
      var aTemperature:Array = ["CELCIUS", "FAHRENHEIT", "KELVIN"];
      var aWeightMass:Array = ["OUNCE", "POUND", "TON", "MILLIGRAM", "GRAM", "KILOGRAM"];
      var aDistance:Array = ["CENTIMETER", "METER", "KILOMETER", "INCH", "FOOT", "MILE", "YARD"];
      var aVolume:Array = ["LITER", "GALLON"];
      aAngle.sort();
      aTemperature.sort();
      aWeightMass.sort();
      aDistance.sort();
      aVolume.sort();
      var aSum:Array = aAngle.concat(aTemperature, aWeightMass, aDistance, aVolume);
      switch (sCategory) {
        case "angle":
          return aAngle;
        case "temperature":
          return aTemperature;
        case "weightmass":
          return aWeightMass;
        case "distance":
          return aDistance;
        case "volume":
          return aVolume;
        default:
          return aSum;
      }
    }

    public static function get DEGREE():Unit {
      return new Unit("degree", "angle");
    }

    public static function get RADIAN():Unit {
      return new Unit("radian", "angle");
    }

    public static function get GRADIAN():Unit {
      return new Unit("gradian", "angle");
    }

    public static function get CELCIUS():Unit {
      return new Unit("celcius", "temperature", null, null, "celcius", "celcius");
    }

    public static function get FAHRENHEIT():Unit {
      return new Unit("fahrenheit", "temperature", null, null, "fahrenheit", "fahrenheit");
    }

    public static function get KELVIN():Unit {
      return new Unit("kelvin", "temperature", null, null, "kelvin", "kelvin");
    }

    public static function get OUNCE():Unit {
      return new Unit("ounce", "weightmass", POUND, 1/16);
    }

    public static function get POUND():Unit {
      return new Unit("pound", "weightmass");
    }

    public static function get TON():Unit {
      return new Unit("ton", "weightmass", POUND, 2000);
    }

    public static function get MILLIGRAM():Unit {
      return new Unit("milligram", "weightmass", GRAM, .001);
    }

    public static function get GRAM():Unit {
      return new Unit("gram", "weightmass");
    }  

    public static function get KILOGRAM():Unit {
      return new Unit("kilogram", "weightmass", GRAM, 1000);
    }

    public static function get LITER():Unit {
      return new Unit("liter", "volume");
    }

    public static function get GALLON():Unit {
      return new Unit("gallon", "volume");
    }

    public static function get INCH():Unit {
      return new Unit("inch", "distance", FOOT, 1/12, "inch", "inches");
    }

    public static function get FOOT():Unit {
      return new Unit("foot", "distance", null, null, "foot", "feet");
    }

    public static function get YARD():Unit {
      return new Unit("yard", "distance", FOOT, 3);
    }

    public static function get MILE():Unit {
      return new Unit("mile", "distance", FOOT, 5280);
    }

    public static function get CENTIMETER():Unit {
      return new Unit("centimeter", "distance", METER, .01);
    }

    public static function get METER():Unit {
      return new Unit("meter", "distance");
    }

    public static function get KILOMETER():Unit {
      return new Unit("kilometer", "distance", METER, 1000);
    }

    public function get name():String {
      return _sUnitName;
    }

    public function get category():String {
      return _sUnitCategory;
    }

    public function get baseUnit():Unit {
      return _uBaseUnit;
    }

    public function get multiplier():Number {
      return _nMultiplier;
    }

    public function get label():String {
      return _sLabelSingular;
    }

    public function get labelPlural():String {
      return _sLabelPlural;
    }

    public function Unit(sUnitName:String, sUnitCategory:String, uBaseUnit:Unit = null, nMultiplier:Number = 1, sLabelSingular:String = null, sLabelPlural:String = null) {
      _sUnitName = sUnitName;
      _sUnitCategory = sUnitCategory;
      _uBaseUnit = (uBaseUnit == null) ? this : uBaseUnit;
      _sLabelSingular = (sLabelSingular == null) ? sUnitName : sLabelSingular;
      _sLabelPlural = (sLabelPlural == null) ? _sLabelSingular + "s" : sLabelPlural;
      _nMultiplier = nMultiplier;
    }

    public function getConverterTo(uUnit:Unit):Converter {
      if(uUnit.category != _sUnitCategory) {
        return null;
      }
      else {
        return new Converter(this, uUnit);
      }
    }

    public function getConverterFrom(uUnit:Unit):Converter {
      if(uUnit.category != _sUnitCategory) {
        return null;
      }
      else {
        return new Converter(uUnit, this);
      }
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -