PacchettoPrimo livello
Classepublic dynamic class Object
Sottoclassi 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

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

La classe Object è alla radice della gerarchia delle classi ActionScript. Gli oggetti vengono creati dalle funzioni di costruzione mediante la sintassi dell'operatore new e le proprietà possono essere assegnate loro dinamicamente. Gli oggetti possono essere creati anche assegnando un valore letterale di Object. Ad esempio:
var obj:Object = {a:"foo", b:"bar"}

Tutte le classi che non dichiarano una classe base esplicita estendono la classe Object incorporata.

È possibile utilizzare la classe Object per creare array associativi. Un array associativo è un'istanza della classe Object e ciascuna coppia chiave-valore è rappresentata da una proprietà e dal relativo valore. Un altro motivo per dichiarare un array associativo usando il tipo di dati Object consiste nel fatto che è possibile utilizzare un valore letterale di oggetto per compilare un array associativo (ma solo nel momento in cui viene dichiarato). L'esempio seguente crea un array associativo mediante un valore letterale di oggetto, accede agli elementi sia mediante l'operatore dot sia mediante l'operatore di accesso agli array, quindi aggiunge una nuova coppia chiave-valore mediante la creazione di una nuova proprietà:

 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 ha due tipi di ereditarietà: quella di classe e quella di prototipo.

Entrambi i tipi di ereditarietà possono esistere contemporaneamente, come mostrato nell'esempio seguente:

 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

Se si utilizzano le funzioni anziché le classi, è possibile creare delle strutture di ereditarietà di prototipo personalizzate. Con le classi, la struttura di ereditarietà di prototipo rispecchia la struttura di ereditarietà di classe. Tuttavia, dal momento che gli oggetti prototipo sono dinamici, è possibile aggiungere ed eliminare le proprietà basate su prototipo in fase di runtime.

Vedere gli esempi

Vedere anche

prototype
Descrizione dei tipi di dati


Proprietà pubbliche
 ProprietàDefinito da
  constructor: Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto.
Object
  prototype: Object
[statico] Un riferimento all'oggetto prototipo di un oggetto classe o funzione.
Object
Metodi pubblici
 MetodoDefinito da
  
Crea un oggetto Object e memorizza un riferimento al metodo della funzione di costruzione dell'oggetto nella proprietà constructor dell'oggetto.
Object
  
Indica se per un oggetto è definita una proprietà specifica.
Object
  
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro.
Object
  
Indica se la proprietà specificata esiste ed è enumerabile.
Object
  
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche.
Object
  
Restituisce la rappresentazione in formato stringa dell'oggetto specificato.
Object
  
Restituisce il valore di base dell'oggetto specificato.
Object
Descrizione delle proprietà
constructorproprietà
public var constructor:Object

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto. Se un oggetto è un'istanza di una classe, la proprietà constructor contiene un riferimento all'oggetto classe. Se un oggetto viene creato con una funzione di costruzione, la proprietà constructor contiene un riferimento alla funzione di costruzione. Non confondere le funzioni di costruzione con i metodi di costruzione di una classe. Una funzione di costruzione è un oggetto Function utilizzato per creare oggetti ed è alternativo all'utilizzo della parola chiave class per la definizione delle classi.

Se si utilizza la parola chiave class per definire una classe, all'oggetto prototipo della classe viene assegnata una proprietà di nome constructor che contiene un riferimento all'oggetto classe. Un'istanza della classe eredita questa proprietà dall'oggetto prototipo. Ad esempio, il codice seguente crea una nuova classe, A, e un'istanza di classe di nome 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

Gli utenti più esperti possono decidere di utilizzare la parola chiave function anziché la parola chiave class per definire un oggetto Function utilizzabile come modello per la creazione degli oggetti. Una funzione di questo tipo viene definita funzione di costruzione perché può essere utilizzata in combinazione con l'operatore new per creare gli oggetti. Se si utilizza la parola chiave function per creare una funzione di costruzione, all'oggetto prototipo della classe viene assegnata una proprietà di nome constructor che contiene un riferimento alla funzione di costruzione. Se quindi si utilizza la funzione di costruzione per creare un oggetto, l'oggetto eredita la proprietà constructor dall'oggetto prototipo della funzione di costruzione. Ad esempio, il codice seguente crea una nuova funzione di costruzione, f, e un oggetto di nome 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 proprietà constructor è scrivibile, cioè il codice utente può modificare il valore con un'istruzione di assegnazione. Non è consigliabile modificare il valore della proprietà constructor, tuttavia se si scrive del codice che dipende dal valore della proprietà constructor, è necessario assicurarsi che il valore non venga reimpostato. Il valore può essere modificato solo quando si accede alla proprietà attraverso l'oggetto prototipo (ad esempio, className.prototype.constructor).

Vedere anche

prototypeproprietà 
public static var prototype:Object

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Un riferimento all'oggetto prototipo di un oggetto classe o funzione. La proprietà prototype viene creata automaticamente e associata a qualsiasi oggetto classe o funzione creato. Questa proprietà è di tipo statico ed è specifica della classe o della funzione creata. Se, ad esempio, si crea una classe, il valore della proprietà prototype viene condiviso da tutte le istanze della classe ed è accessibile solo come proprietà della classe. Le istanze della classe non possono accedere direttamente alla proprietà prototype.

L'oggetto prototipo di una classe è un'istanza speciale di tale classe che fornisce un meccanismo per condividere lo stato tra tutte le istanze di una classe. In fase di runtime, quando una proprietà non viene trovata in un'istanza di classe, la proprietà viene cercata nel delegato, cioè nell'oggetto prototipo della classe. Se l'oggetto prototipo non contiene la proprietà, il processo continua con la ricerca del delegato dell'oggetto prototipo in livelli sempre più elevati della gerarchia fino a quando Flash Player non trova la proprietà.

Nota: in ActionScript 3.0, l'ereditarietà di prototipo non è il meccanismo di ereditarietà principale. L'ereditarietà di classe, che comanda l'ereditarietà delle proprietà fisse nelle definizioni di classe, è il meccanismo di ereditarietà principale in ActionScript 3.0.

Vedere anche

Descrizione della funzione di costruzione
Object()Funzione di costruzione
public function Object()

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Crea un oggetto Object e memorizza un riferimento al metodo della funzione di costruzione dell'oggetto nella proprietà constructor dell'oggetto.

Vedere anche

Descrizione dei metodi
hasOwnProperty()metodo
AS3 function hasOwnProperty(name:String):Boolean

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Indica se per un oggetto è definita una proprietà specifica. Questo metodo restituisce true se all'oggetto target è associata una proprietà che corrisponde alla stringa specificata dal parametro name; false in caso contrario. I seguenti tipi di proprietà fanno in modo che questo metodo restituisca true per gli oggetti che sono istanze di una classe (diversamente dagli oggetti classe):

I seguenti tipi di proprietà fanno in modo che questo metodo restituisca false per gli oggetti che sono istanze di una classe:

ActionScript 3.0 ha anche degli oggetti classe che sono delle rappresentazioni dirette delle definizioni di classe. Quando viene chiamato sugli oggetti classe, il metodo hasOwnProperty() restituisce true solo se una proprietà è una proprietà statica definita in tale oggetto classe. Ad esempio, se si crea una sottoclasse di Array di nome CustomArray e si definisce una proprietà statica in CustomArray di nome foo, una chiamata a CustomArray.hasOwnProperty("foo") restituisce true. Tuttavia, per la proprietà statica DESCENDING definita nella classe Array, una chiamata a CustomArray.hasOwnProperty("DESCENDING") restituisce false.

Nota: i metodi della classe Object vengono creati dinamicamente sul prototipo di Object. Per ridefinire questo metodo in una sottoclasse di Object, non utilizzare la parola chiave override. Ad esempio, una sottoclasse di Object implementa function hasOwnProperty():Boolean anziché utilizzare un override della classe base.

Parametri

name:String — La proprietà dell'oggetto.

Restituisce
Boolean — Se all'oggetto target è associata la proprietà specificata dal parametro name, il valore è true, in caso contrario è false.
isPrototypeOf()metodo 
AS3 function isPrototypeOf(theClass:Object):Boolean

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro. Il metodo restituisce true se l'oggetto si trova nella catena di prototipi dell'oggetto specificato dal parametro theClass. Il metodo restituisce false non solo se l'oggetto target è assente dalla catena di prototipi dell'oggetto theClass, ma anche se il parametro theClass non è un oggetto.

Nota: i metodi della classe Object vengono creati dinamicamente sul prototipo di Object. Per ridefinire questo metodo in una sottoclasse di Object, non utilizzare la parola chiave override. Ad esempio, una sottoclasse di Object implementa function isPrototypeOf():Boolean anziché utilizzare un override della classe base.

Parametri

theClass:Object — La classe a cui può fare riferimento l'oggetto specificato.

Restituisce
Boolean — Se l'oggetto si trova nella catena di prototipi dell'oggetto specificato dal parametro theClass, il valore è true; in caso contrario è false.
propertyIsEnumerable()metodo 
AS3 function propertyIsEnumerable(name:String):Boolean

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Indica se la proprietà specificata esiste ed è enumerabile. Se true, la proprietà esiste e può essere enumerata in un ciclo for..in. La proprietà deve esistere nell'oggetto target, poiché questo metodo non controlla la catena di prototipi dell'oggetto target.

Le proprietà create dall'utente sono enumerabili, mentre le proprietà incorporate, in genere, non lo sono.

Nota: i metodi della classe Object vengono creati dinamicamente sul prototipo di Object. Per ridefinire questo metodo in una sottoclasse di Object, non utilizzare la parola chiave override. Ad esempio, una sottoclasse di Object implementa function propertyIsEnumerable():Boolean anziché utilizzare un override della classe base.

Parametri

name:String — La proprietà dell'oggetto.

Restituisce
Boolean — Se la proprietà specificata dal parametro name è enumerabile, il valore è true; in caso contrario è false.
setPropertyIsEnumerable()metodo 
public function setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche. La proprietà deve esistere nell'oggetto target, poiché questo metodo non controlla la catena di prototipi dell'oggetto target.

Parametri

name:String — La proprietà dell'oggetto.
 
isEnum:Boolean (default = true) — Se impostata su false, la proprietà dinamica non viene visualizzata nei cicli for..in e il metodo propertyIsEnumerable() restituisce false.

Vedere anche

toString()metodo 
public function toString():String

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Restituisce la rappresentazione in formato stringa dell'oggetto specificato.

Nota: i metodi della classe Object vengono creati dinamicamente sul prototipo di Object. Per ridefinire questo metodo in una sottoclasse di Object, non utilizzare la parola chiave override. Ad esempio, una sottoclasse di Object implementa function toString():String anziché utilizzare un override della classe base.

Restituisce
String — La rappresentazione in formato stringa dell'oggetto.
valueOf()metodo 
public function valueOf():Object

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Restituisce il valore di base dell'oggetto specificato. Se l'oggetto non ha un valore di base, viene restituito l'oggetto stesso.

Nota: i metodi della classe Object vengono creati dinamicamente sul prototipo di Object. Per ridefinire questo metodo in una sottoclasse di Object, non utilizzare la parola chiave override. Ad esempio, una sottoclasse di Object implementa function valueOf():Object anziché utilizzare un override della classe base.

Restituisce
Object — Il valore di base dell'oggetto o l'oggetto stesso.

Vedere anche

Esempi Come utilizzare gli esempi
ObjectExample.as

L'esempio seguente utilizza le classi ObjectExample e Circle per dimostrare la natura dinamica della classe Object e come sia possibile trasformare gli oggetti valore in oggetti Shape e quindi aggiungerli nello stage in corrispondenza delle coordinate x/y specificate.

L'esempio crea gli oggetti valore firstInitObj e secondInitObj. La classe personalizzata Circle accetta l'oggetto valore, ne esegue elaborazioni cicliche e ne imposta le proprietà interne su quelle definite nell'oggetto valore.

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();
    }
}




 

Inviami un messaggio e-mail quando vengono aggiunti dei commenti a questa | Rapporto sui commenti

Pagina corrente: http://livedocs.adobe.com/flash/9.0_it/ActionScriptLangRefV3/Object.html