var nombre:tipo = valor; class nombre {
accesivilidad var nombre: tipo;
accesivilidad function nombreClase (nombre:tipo, ...) : tipo
{}
accesivilidad function nombre (nombre:tipo, ...) // constructor
{}
}
class SpaceShip { public var speed:Number; private var damage:Number; private static var inited:Boolean = false; public function SpaceShip ( ) { } public function fireMissile ( ):Void { } public function thrust ( ):Void { } private static function init( ):Void { } }
var nombre:nombreClase = new nombreClase (parámetros);
for (var i:Number = 0; i < 10; i++) trace(i);
Null es variable o objeto (sí, en AS los tipos primitivos pueden ser null) que no está asignado, undefined significa que esa variable no ha sido definida.
En flash existen una serie de clases que no lanzan error, sino que crean la propiedad o la función al ser llamadas, estas son:
Array, ContextMenu, ContextMenuItem, Function, FunctionArguments (el objeto que se corresponde con los argumentos de una función), LoadVars, MovieClip, Object, TextField.
Por ejemplo podríamos hacer:
var dataSender:LoadVars = new LoadVars( ); dataSender.firstName = "Rebecca";''
Son variables sin tipo definido, podemos meter un int, un string… Y luego podremos cambiarles el tipo:
var i; i = 4; i = "Hola!";
Las variables globales en AS no pueden tener tipos, para crear una variable global no debemos siquiera usar var, únicamente debemos añadir _global. delante del nombre y ya podremos usarla:
_global.autor = "Tupadre";
Son accesibles en todo el ensamblado, pero no es recomendable usarlas (rompen la estética de la programación orientada a objetos).
Podemos añadir propiedades a objetos (no a clases) usando los corchetes:
var song:Sound = new Sound( ); song.url = "track3.mp3"; // Daría error song["url"] = "track3.mp3"; trace(song["url"]); // Mostraría: 'track3.mp3'
var doc:XML = new XML("<P>hello world</P"); var items:Array = new Array( );
Los elementos de los arrays no tienen un tipo concreto…
items.push(doc);
… por lo tanto, para acceder a ellos debemos hacer un cast:
var otherDoc:XML = XML(items[0]);
dynamic - Si lo añadimos delante de la declaración de una clase, esta será dinámica.
intrinsic - Se añade delante de la declaración de la clase, los métodos de esta no podrán tener cuerpo y las propiedades valores, ya que este atributo indica que el código fuente de la clase está enlazado en otro compilado:
dynamic intrinsic class LoadVars { var contentType:String; var loaded:Boolean; function load(url:String):Boolean; function send(url:String,target:String,method:String):Boolean; }
class Box { public var width:Number = 15; public var height:Number = 15; } var b:Box = new Box(); for (var prop:String in b) { trace("property name: " + prop); trace("property value: " + b[prop]); }
Si la declaración del bucle hubiese sido: for (var prop:String in Box) … Se mostrarían las variables estáticas, es decir, en este caso ninguna.
accesivilidad function nombre(parámetro:tipo):TipoDevuelto { cuerpo }
public function convertCurrency():void { }
accesivilidad const nombre:tipo = valor;
private const ON_MESSAGE:String = “Busy Cursor ON”;
var nombre:tipo = ObjetoIndefinido as tipo;
var btn:Button = e.target as Button;
if (typeof msg == “string”) …if (msg instanceof XML) …tipo(variable)var doc:XML = XML(msg);
Podemos castear un String a Integer (Number(valorStr)) o lo contrario (String(valorInt))