| Pacchetto | Primo livello |
| Classe | public dynamic class Class |
| Ereditarietà | Class Object |
| Versione linguaggio: | ActionScript 3.0 |
| Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
new.
Alcuni metodi, ad esempio flash.net.getClassByAlias(), restituiscono un oggetto di tipo Class. Altri metodi possono avere un parametro di tipo Class, ad esempio flash.net.registerClassAlias().
Il nome della classe è il riferimento all'oggetto Class, come mostra l'esempio seguente:
class Foo {
}
L'istruzione class Foo{} è la definizione di classe che crea l'oggetto Class Foo. Inoltre, l'istruzione new Foo() crea una nuova istanza della classe Foo e il risultato è di tipo Foo.
Utilizzate l'istruzione class per dichiarare le classi. Gli oggetti Class sono utili per tecniche avanzate quali l'assegnazione delle classi a un oggetto istanza esistente in fase di runtime, come mostrato nella sezione "Esempi" più avanti.
Tutte le proprietà statiche e i metodi di una classe si trovano nell'oggetto Class della classe. Class dichiara prototype.
In genere, non è necessario dichiarare o creare le variabili di tipo Class manualmente. Tuttavia, nel codice seguente una classe viene assegnata come proprietà Class pubblica circleClass e potete fare riferimento a questa proprietà Class come proprietà della classe Library principale:
package {
import flash.display.Sprite;
public class Library extends Sprite {
public var circleClass:Class = Circle;
public function Library() {
}
}
}
import flash.display.Shape;
class Circle extends Shape {
public function Circle(color:uint = 0xFFCC00, radius:Number = 10) {
graphics.beginFill(color);
graphics.drawCircle(radius, radius, radius);
}
}
Un altro file SWF può caricare il file Library.swf risultante e successivamente creare le istanze degli oggetti di tipo Circle. L'esempio seguente mostra un modo per ottenere l'accesso alle risorse di un file SWF secondario. In alternativa, è possibile utilizzare flash.utils.getDefnitionByName() o importare le definizioni stub del file SWF secondario.
package {
import flash.display.Sprite;
import flash.display.Shape;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
public class LibaryLoader extends Sprite {
public function LibaryLoader() {
var ldr:Loader = new Loader();
var urlReq:URLRequest = new URLRequest("Library.swf");
ldr.load(urlReq);
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);
}
private function loaded(event:Event):void {
var library:Object = event.target.content;
var circle:Shape = new library.circleClass();
addChild(circle);
}
}
}
In ActionScript 3.0, potete creare delle classi incorporate per le risorse esterne (quali immagini, suoni o caratteri) che vengono compilate nei file SWF. Nelle precedenti versioni di ActionScript, tali risorse venivano assegnate mediante un identificatore di concatenamento con il metodo MovieClip.attachMovie(). In ActionScript 3.0, ogni risorsa incorporata è rappresentata da una classe di risorsa incorporata univoca. Pertanto, potete utilizzare l'operatore new per creare le istanze della classe associata della risorsa e chiamare i metodi e le proprietà sulla risorsa.
Elementi API correlati
- Dichiarate due classi come
ClassAeClassB. - Dichiarate una variabile di tipo Class denominata
classToConstructe una di tipo BooleanchooseClassAche in questo caso è impostata sutrue, ma il cui valore potrebbe essere impostato nel codice mediante un'espressione di test personalizzata.
package {
import flash.display.Sprite;
public class ClassExample extends Sprite {
public function ClassExample() {
var classToConstruct:Class;
var classInstance:Object;
classToConstruct = ClassA;
classInstance = new classToConstruct();
trace(classInstance); // [object ClassA]
classToConstruct = ClassB;
classInstance = new classToConstruct();
trace(classInstance); // [object ClassB]
}
}
}
class ClassA {
}
class ClassB {
}
Tue Jun 12 2018, 02:44 PM Z
Nascondi proprietà pubbliche ereditate
Mostra proprietà pubbliche ereditate