PaqueteNivel superior
Clasepublic dynamic class Object
Subclases Accessibility, AccessibilityProperties, ActionScriptVersion, AntiAliasType, ApplicationDomain, arguments, Array, Back, Back, BezierEase, BezierSegment, BitmapData, BitmapDataChannel, BitmapFilter, BitmapFilterQuality, BitmapFilterType, BlendMode, Boolean, Bounce, Bounce, ButtonLabelPlacement, ByteArray, Capabilities, CapsStyle, Circular, Class, ColorTransform, ContextMenuBuiltInItems, CSMSettings, Cubic, CuePointType, CustomActions, CustomEase, DataChangeType, DataGridColumn, DataGridEventReason, Date, Dictionary, DisplacementMapFilterMode, Elastic, Elastic, Endian, Error, Event, EventDispatcher, EventPhase, Exponential, ExternalInterface, FileFilter, FocusManager, Font, FontStyle, FontType, FrameLabel, Function, FunctionEase, GradientType, Graphics, GridFitType, ID3Info, IMEConversionMode, int, InteractionInputType, InterpolationMethod, InvalidationType, JointStyle, Keyboard, Keyframe, KeyLocation, Linear, LineScaleMode, ListData, LoaderContext, Math, Matrix, MatrixTransformer, Motion, Mouse, Namespace, NCManager, None, Number, ObjectEncoding, PixelSnapping, Point, PrintJobOptions, PrintJobOrientation, ProgressBarDirection, ProgressBarMode, Proxy, QName, Quadratic, Quartic, Quintic, Rectangle, RegExp, Regular, Responder, RotateDirection, Scene, ScrollBarDirection, ScrollPolicy, Security, SecurityDomain, SecurityPanel, SharedObjectFlushStatus, SimpleCollectionItem, SimpleEase, Sine, SliderDirection, SliderEventClickTarget, SoundLoaderContext, SoundMixer, SoundTransform, Source, SpreadMethod, StageAlign, StageDisplayState, StageQuality, StageScaleMode, String, Strong, StyleManager, SWFVersion, System, TextColorType, TextDisplayMode, TextFieldAutoSize, TextFieldType, TextFormat, TextFormatAlign, TextLineMetrics, TextRenderer, TextSnapshot, TileListCollectionItem, Transform, Tweenables, uint, URLLoaderDataFormat, URLRequest, URLRequestHeader, URLRequestMethod, URLVariables, VideoAlign, VideoScaleMode, VideoState, XML, XMLList, XMLNode, XMLNodeType, XMLUI

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

La clase Object se encuentra en la raíz de la jerarquía de clases de ActionScript. Los objetos se crean mediante constructores, empleando la sintaxis de operador new, y se le pueden asignar propiedades dinámicamente. Los objetos también pueden crearse mediante la asignación de un literal de objeto como, por ejemplo:
var obj:Object = {a:"foo", b:"bar"}

Todas las clases que no declaran una clase base explícita amplían la clase Object incorporada.

Puede emplear la clase Object para crear matrices asociativas. En el fondo, una matriz asociativa es una instancia de la clase Object y cada par clave-valor se representa mediante una propiedad y su valor. Otra razón para declarar una matriz asociativa como tipo Object es que permite utilizar un literal de objeto para llenar la matriz asociativa (pero sólo en el momento en que se declara). El ejemplo siguiente crea una matriz asociativa utilizando un literal de objeto, accede a los elementos empleando el operador de punto y el operador de acceso a matriz y, a continuación, añade un nuevo par clave-valor creando una propiedad nueva:

 var myAssocArray:Object = {fname:"John", lname:"Public"};
 trace(myAssocArray.fname);     // Output: John
 trace(myAssocArray["lname"]);  // Output: Public
 myAssocArray.initial = "Q";
 trace(myAssocArray.initial);   // Output: Q

ActionScript 3.0 tiene dos tipos de herencia: herencia de clase y herencia de prototipo:

La herencia de clase y la herencia de prototipo pueden darse simultáneamente, como se muestra en el siguiente ejemplo:

 class A {
     var x = 1
     prototype.px = 2
 }
 dynamic class B extends A {
     var y = 3
     prototype.py = 4
 }

 var b = new B()
 b.x // 1 via class inheritance
 b.px // 2 via prototype inheritance from A.prototype
 b.y // 3
 b.py // 4 via prototype inheritance from B.prototype

 B.prototype.px = 5
 b.px // now 5 because B.prototype hides A.prototype

 b.px = 6
 b.px // now 6 because b hides B.prototype

Mediante el uso de funciones en lugar de clases, puede construir árboles de herencia de prototipo personalizados. Con las clases, el árbol de herencia de prototipo refleja el árbol de herencia de clase. Sin embargo, dado que los objetos prototipo son dinámicos, puede añadir y eliminar propiedades basadas en prototipos en tiempo de ejecución.

Ver los ejemplos

Véase también

prototype
Descripción de los tipos de datos


Propiedades públicas
 PropiedadDefinido por
  constructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada.
Object
  prototype : Object
[static] Una referencia al objeto prototipo de una clase u objeto de función.
Object
Métodos públicos
 MétodoDefinido por
  
Crea un objeto Object y almacena una referencia al método constructor del objeto en la propiedad constructor del objeto.
Object
  
Indica si un objeto tiene definida una propiedad especificada.
Object
  
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro.
Object
  
Indica si existe la propiedad especificada y si es enumerable.
Object
  
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle.
Object
  
Devuelve la representación de cadena del objeto especificado.
Object
  
Devuelve el valor simple del objeto especificado.
Object
Información sobre propiedades
constructorpropiedad
public var constructor:Object

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada. Si un objeto es una instancia de una clase, la propiedad constructor contiene una referencia al objeto de la clase. Si un objeto se crea con una función constructora, la propiedad constructor contiene una referencia a la función constructora. No debe confundir una función constructora con un método constructor de una clase. Una función constructora es un objeto Function empleado para crear objetos y es una alternativa al uso de la palabra clave class para definir clases.

Si utiliza la palabra clave class para definir una clase, se asigna al objeto prototipo de la clase una propiedad llamada constructor que contiene una referencia al objeto de la clase. Una instancia de la clase hereda esta propiedad del objeto prototipo. Por ejemplo, el código siguiente crea una nueva clase, A y una instancia de clase llamada myA:

  dynamic class A {}
  trace(A.prototype.constructor);      // [class A]
  trace(A.prototype.constructor == A); // true
  var myA:A = new A();
  trace(myA.constructor == A);         // true

Los usuarios avanzados pueden optar por utilizar la palabra clave function en lugar de la palabra clave class para definir un objeto Function que puede utilizarse como plantilla para crear objetos. Dicha función se denomina función constructora porque puede utilizarse conjuntamente con el operador new para crear objetos. Si utiliza la palabra clave function para crear una función constructora, se asigna a su objeto prototipo una propiedad llamada constructor que contiene una referencia a la función constructora. Si posteriormente utiliza la función constructora para crear un objeto, el objeto heredará la propiedad constructor del objeto prototipo de la función constructora. Por ejemplo, el código siguiente crea una nueva función constructora, f, y un objeto llamado myF:

  function f() {}
  trace(f.prototype.constructor);      // function Function() {}
  trace(f.prototype.constructor == f); // true
  var myF = new f();
  trace(myF.constructor == f);         // true

Nota: la propiedad constructor es de escritura, lo que significa que el código del usuario puede cambiar de valor con una sentencia de asignación. No es recomendable el cambio de valor de la propiedad constructor, pero, si escribe código que dependa del valor de la propiedad constructor, deberá asegurarse de que el valor no se restablece. El valor sólo puede cambiar cuando se accede a la propiedad mediante el objeto prototipo (por ejemplo, className.prototype.constructor).

Véase también

prototypepropiedad 
public static var prototype:Object

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Una referencia al objeto prototipo de una clase u objeto de función. La propiedad prototype se crea y asocia automáticamente a cualquier clase u objeto de función que cree. Esta propiedad se considera estática porque es específica de la clase o función que usted crea. Por ejemplo, si crea una clase, todas las instancias de la clase compartirán el valor de la propiedad prototype y sólo será accesible como propiedad de clase. Las instancias de la clase no pueden acceder directamente a la propiedad prototype.

El objeto prototipo de una clase es una instancia especial de dicha clase que proporciona un mecanismo para compartir el estado entre todas las instancias de una clase. En tiempo de ejecución, cuando se encuentra una propiedad en una instancia de clase, se comprueba dicha propiedad en el delegado (delegate), que es el objeto prototipo de la clase. Si el objeto prototipo no contiene la propiedad, el proceso continúa con la comprobación del delegado del objeto prototipo en niveles superiores sucesivos en la jerarquía, hasta que Flash Player encuentra la propiedad.

Nota: en ActionScript 3.0, la herencia de prototipo no es el mecanismo principal de herencia. La herencia de clase, a través de la cual se heredan propiedades fijas en las definiciones de clases, es el principal mecanismo de herencia en ActionScript 3.0.

Véase también

Información sobre constructores
Object()constructor
public function Object()

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Crea un objeto Object y almacena una referencia al método constructor del objeto en la propiedad constructor del objeto.

Véase también

Información sobre métodos
hasOwnProperty()método
AS3 function hasOwnProperty(name:String):Boolean

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Indica si un objeto tiene definida una propiedad especificada. Este método devuelve true si el objeto de destino tiene una propiedad que coincide con la cadena especificada por el parámetro name, y false en caso contrario. Los siguientes tipos de propiedades provocan que este método devuelva true para objetos que son instancias de una clase (en lugar de objetos de clase):

Los siguientes tipos de propiedades provocan que este método devuelva false para objetos que son instancias de una clase:

ActionScript 3.0 también tiene objetos de clase que son representaciones directas de las definiciones de clase. Cuando se le llama en objetos de clase, el método hasOwnProperty() devuelve true sólo si una propiedad es estática y está definida en dicho objeto de clase. Por ejemplo, si crea una subclase de Array denominada CustomArray y define una propiedad estática en CustomArray denominada foo, una llamada a CustomArray.hasOwnProperty("foo") devolverá true. No obstante, en el caso de la propiedad estática DESCENDING definida en la clase Array, una llamada a CustomArray.hasOwnProperty("DESCENDING") devolverá false.

Nota: los métodos de la clase Object se crean dinámicamente en el prototipo de Object. Para redefinir este método en una subclase de Object, no utilice la palabra clave override. Por ejemplo, una subclase de Object implementa function hasOwnProperty():Boolean en lugar de utilizar una sustitución de la clase base.

Parámetros

name:String — La propiedad del objeto.

Valor devuelto
Boolean — Si el objeto de destino tiene la propiedad especificada por el parámetro name, este valor es true; en caso contrario es false.
isPrototypeOf()método 
AS3 function isPrototypeOf(theClass:Object):Boolean

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro. Este método devuelve true si el objeto está presente en la cadena de prototipo del objeto especificado por el parámetro theClass. El método devuelve false si el objeto de destino no está presente en la cadena de prototipo del objeto theClass y también si el parámetro theClass no es un objeto.

Nota: los métodos de la clase Object se crean dinámicamente en el prototipo de Object. Para redefinir este método en una subclase de Object, no utilice la palabra clave override. Por ejemplo, una subclase de Object implementa function isPrototypeOf():Boolean en lugar de utilizar una sustitución de la clase base.

Parámetros

theClass:Object — La clase a la que puede referirse el objeto especificado.

Valor devuelto
Boolean — Si el objeto está presente en la cadena de prototipo del objeto especificado por el parámetro theClass, este valor es true, en caso contrario este valor es false.
propertyIsEnumerable()método 
AS3 function propertyIsEnumerable(name:String):Boolean

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Indica si existe la propiedad especificada y si es enumerable. Si su valor es true, la propiedad existe y puede enumerarse en un bucle for..in. La propiedad debe existir en el objeto de destino porque este método no comprueba la cadena de prototipo del objeto de destino.

Aunque las propiedades que se crean son enumerables, las propiedades incorporadas no suelen ser enumerables.

Nota: los métodos de la clase Object se crean dinámicamente en el prototipo de Object. Para redefinir este método en una subclase de Object, no utilice la palabra clave override. Por ejemplo, una subclase de Object implementa function propertyIsEnumerable():Boolean en lugar de utilizar una sustitución de la clase base.

Parámetros

name:String — La propiedad del objeto.

Valor devuelto
Boolean — Si la propiedad especificada por el parámetro name es enumerable, este valor es true, en caso contrario, el valor es false.
setPropertyIsEnumerable()método 
public function setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Establece la disponibilidad de una propiedad dinámica para operaciones de bucle. La propiedad debe existir en el objeto de destino porque este método no comprueba la cadena de prototipo del objeto de destino.

Parámetros

name:String — La propiedad del objeto.
 
isEnum:Boolean (default = true) — Si se define como false, la propiedad dinámica no aparece en los bucles for..in y el método propertyIsEnumerable() devuelve false.

Véase también

toString()método 
public function toString():String

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Devuelve la representación de cadena del objeto especificado.

Nota: los métodos de la clase Object se crean dinámicamente en el prototipo de Object. Para redefinir este método en una subclase de Object, no utilice la palabra clave override. Por ejemplo, una subclase de Object implementa function toString():String en lugar de utilizar una sustitución de la clase base.

Valor devuelto
String — Una representación de cadena del objeto.
valueOf()método 
public function valueOf():Object

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Devuelve el valor simple del objeto especificado. Si este objeto no tiene un valor simple, se devuelve el propio objeto.

Nota: los métodos de la clase Object se crean dinámicamente en el prototipo de Object. Para redefinir este método en una subclase de Object, no utilice la palabra clave override. Por ejemplo, una subclase de Object implementa function valueOf():Object en lugar de utilizar una sustitución de la clase base.

Valor devuelto
Object — El valor simple de este objeto o el propio objeto.

Véase también

Ejemplos Cómo utilizar los ejemplos
ObjectExample.as

El siguiente ejemplo utiliza las clases ObjectExample y Circle para demostrar la naturaleza dinámica de la clase Object y para ver cómo se pueden transformar los objetos de valor en objetos Shape y, después, añadirlos en el escenario en las coordenadas x/y especificadas.

El ejemplo crea los objetos de valor firstInitObj y secondInitObj. La clase personalizada Circle acepta el objeto de valor y ejecuta un bucle mientras define sus propiedades internas coincidentes según las definidas en el objeto valor.

package {
    import flash.display.Sprite;

    public class ObjectExample extends Sprite {
        public function ObjectExample() {
            var firstInitObj:Object = new Object();
            firstInitObj.bgColor = 0xFF0000;
            firstInitObj.radius = 25;
            firstInitObj.xCenter = 25;
            firstInitObj.yCenter = 25;

            var firstCircle:Circle = new Circle(firstInitObj);
            addChild(firstCircle);
            firstCircle.x = 50;
            firstCircle.y = 50;

            var secondInitObj:Object = {bgColor:0xCCCCCC, radius:50, xCenter:50, yCenter:50};

            var secondCircle:Circle = new Circle(secondInitObj);
            addChild(secondCircle);
            secondCircle.x = 100;
            secondCircle.y = 100;
        }

    }
}

import flash.display.Shape;

class Circle extends Shape {
    public var bgColor:Number = 0xFFFFFF;
    public var radius:Number = 0;
    public var xCenter:Number = 0;
    public var yCenter:Number = 0;

    public function Circle(initObj:Object) {
        for(var i:String in initObj) {
            this[i] = initObj[i];
        }
        draw();
    }

    public function draw():void {
        graphics.beginFill(bgColor);
        graphics.drawCircle(xCenter, yCenter, radius);
        graphics.endFill();
    }
}




 

Enviarme un mensaje de correo electrónico cuando se añadan comentarios a esta página | Informe de comentarios

Página actual: http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/Object.html