Implement an Interface : Interface : Class Flash / Flex / ActionScript examples


Flash / Flex / ActionScript examples » Class » Interface »

 

Implement an Interface


 

package{
  import flash.display.Sprite;
  
  public class Main extends Sprite{
    public function Main(){

        var srcInstance:ShapeContainer = new ShapeContainer(200200);
        
        var cirA:Circle = new Circle(0050);
        var cirB:Circle = new Circle(00400);
        var sqA:Square = new Square(00100);
        var sqB:Square = new Square(00200);
        
        var bAdded:Boolean;
        
        bAdded = srcInstance.addShape(cirA);
        trace(bAdded);
        bAdded = srcInstance.addShape(cirB);
        trace(bAdded);
        bAdded = srcInstance.addShape(sqA);
        trace(bAdded);
        bAdded = srcInstance.addShape(sqB);
        trace(bAdded);
    }
  }
}
interface IShape {

  function getDimensions():Object;

}

class Circle implements IShape{

  private var _nX:Number;
  private var _nY:Number;
  private var _nRadius:Number;

  public function Circle(nX:Number, nY:Number, nRadius:Number) {
    nX = nX;
    nY = nY;
    nRadius = nRadius;
  }

  public function getDimensions():Object {
    return {width: 2* _nRadius, height: 2  * _nRadius};
  }

}
class Square implements IShape {

  private var _nX:Number;
  private var _nY:Number;
  private var _nSide:Number;

  public function Square(nX:Number, nY:Number, nSide:Number) {
    _nX = nX;
    nY = nY;
    nSide = nSide;
  }

  public function getDimensions():Object {
    return {width: _nSide, height: _nSide};
  }

}
class ShapeContainer {

  private var _aShapes:Array;
  private var _nWidth:Number;
  private var _nHeight:Number;

  public function ShapeContainer(nWidth:Number, nHeight:Number) {
    _nWidth = nWidth;
    _nHeight = nHeight;
    _aShapes = new Array();
  }

  public function addShape(shObject:IShape):Boolean {
    if(shObject.getDimensions().height > _nHeight) {
      return false;
    }

    var nSum:Number = 0;
    for(var i:Number = 0; i < _aShapes.length; i++) {
      nSum += _aShapes[i].getDimensions().width;
    }

   
    if(nSum + shObject.getDimensions().width > _nWidth) {
      return false;
    }
    else {
      _aShapes.push(shObject);
      return true;
    }
    }

}

        



Leave a Comment / Note


 
Verification is used to prevent unwanted posts (spam). .


Flash / Flex / ActionScript examples

 Navioo Class
» Interface