miércoles, 9 de septiembre de 2009

Como definir una propiedad en flex actionscript

  1. En este artículo vamos a ver como definir una propiedad en flex, pero primero debemos conocer ¿qué es una propiedad?.

Una propiedad es una variable que define a una clase, es decir, son variables que se definen al momento de crear una clase para que formen parte de esta, por ejemplo: Si definimos la clase Mesa probablemente le definamos las propiedades altura, anchura, profundidad, etc.

Este concepto se aplica a todos los lenguajes de programación orientada a objetos, vamos a ver como sería la definición de esta clase ejemplo en actionscript:



public class Mesa
{
public function Mesa()
{
}

public var profundidad: String;
public var altura : Number;
public var anchura : Number;

}


Otra cosa que debemos saber es la utilizacion de los metodos get y set para tener mucho mas control sobre las propiedades de una clase.

¿Qué son los metodos get y set?
En el lenguaje de la programacion orientada a objetos se estila mucho la utilización de metodos que te permitan asignar y obtener valores a las propiedades, para explicar mejor les explico implementando los metodos get y set para la clase mesa:


public class Mesa
{
public function Mesa()
{
}

private var _color : String;
private var _altura : Number;
private var _anchura : Number;

public function get color() : String
{
return this._color;
}

public function set color(value : String) : void
{
this._color = value;
}

public function get altura() : String
{
return this._altura;
}

public function set altura(value : String) : void
{
this._altura = value;
}

public function get anchura() : Number
{
return this._anchura;
}

public function set anchura(value : String) : void
{
this._anchura = value;
}
}


¿Qué ventajas tiene utilizar los métodos get set?
  1. Puedo controlar el acceso a las variables de la clase, por ejemplo pudiera no definir un metodo "set" para una de las variables y de esta manera cualquier instancia de este tipo de clase tendria esa variable de solo lectura.
  2. Puedo colocar propiedades calculadas, por ejemplo cuando en un arreglo hacemos arreglo.length, a nosotros nos devuelve el numero de elementos del arreglo pero en realidad lo que hace la clase es recorrer todos los items y los cuenta para luego decirnos cuantos fueron. En esta clase Mesa un ejemplo de propuedad calculada seria la propiedad "volumen", que viene siendo la multiplicacion de ancho * alto * profundidad.
  3. Puedo realizar acciones cuando cambie la propiedad. Como la unica manera de modificar el varlor de esta variable es a través del metodo set, entonces puedo contruir el metodo con sentencias extra o validaciones antes de asignar el valor recibido a la variable, por ejemplo:



public function set altura(value : String) : void
{
if(value>0)
this._altura = value;
}


En este caso solo asignamos el valor introducido por el usuairo a esta varible, en el caso en que sea mayor a cero, despues de todo, una altura no puede ser menor que 0, ya que sino la mesa no se visualizaria.

No hay comentarios:

Publicar un comentario