| Пакет | Верхний уровень |
| Класс | public dynamic class Class |
| Наследование | Class Object |
| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
new.
Некоторые методы, например flash.net.getClassByAlias(), возвращают объект типа Class. Другие методы (например, flash.net.registerClassAlias()) могут иметь параметр типа Class.
Имя класса – это ссылка на объект Class, как показано в данном примере:
class Foo {
}
Инструкция class Foo{} является определением класса, создающим объект Class с именем Foo. Кроме того, инструкция new Foo() создаст новый экземпляр класса Foo. Результат также будет принадлежать типу Foo.
Для объявления классов воспользуйтесь инструкцией class. Объекты Class полезны в случае применения таких расширенных методов, как присвоение классов существующему объекту экземпляра при исполнении (см. раздел «Примеры» ниже).
Любые статические свойства и методы класса, относящиеся к текущему объекту Class класса. Сам класс при этом объявляет прототип.
Как правило, объявлять или создавать переменные типа Class вручную не требуется. Однако в следующем коде класс присваивается в качестве свойства общедоступного класса circleClass, и на это свойство можно ссылаться как на свойство основного класса Library:
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);
}
}
Другой SWF-файл может загрузить итоговый файл Library.swf, а затем создать экземпляры объектов типа Circle. В следующем примере показан способ получения доступа к ресурсам нижестоящего элемента SWF-файла. (Помимо этого можно выбрать flash.utils.getDefnitionByName() или импортировать определения заглушек нижестоящего элемента SWF-файла).
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);
}
}
}
В ActionScript 3.0 можно создавать встроенные классы для внешних ресурсов (например, изображений, звуков или шрифтов), которые компилируются в SWF-файлы. В более ранних версиях ActionScript эти ресурсы связывались с помощью идентификатора связи с методом MovieClip.attachMovie(). В ActionScript 3.0 каждый встроенный ресурс представлен уникальным встроенным классом ресурсов. Поэтому можно воспользоваться оператором new, чтобы создать экземпляр связанного класса ресурса, а затем вызвать методы и свойства по отношению к этому ресурсу.
Связанные элементы API
- Объявите два класса как
ClassAиClassB. - Объявите одну переменную типа Class
classToConstruct, а другую типа BooleanchooseClassA, для которой в данном случае выбрано значениеtrue. Однако в вашем коде может применяться пользовательское тестовое выражение, устанавливающее значение этой переменной.
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, 11:34 AM Z
Скрыть унаследованные общедоступные свойства
Показать унаследованные общедоступные свойства