Implement an Interface : interface « Class « Flash / Flex / ActionScript

Home
Flash / Flex / ActionScript
1.Animation
2.Array
3.Class
4.Data Type
5.Development
6.Function
7.Graphics
8.Language
9.Network
10.Regular Expressions
11.Statement
12.String
13.TextField
14.XML
Flash / Flex / ActionScript » 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;
    }
    }

}

        
Related examples in the same category
1.Interface Syntax and Use
2.Creating Interfaces
3.Extends an interface
4.Interface Inheritance
5.Implementing an Interface
6.Implement interface
7.Implement two interface
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.