Справочник по ActionScript® 3.0 для платформы Adobe® Flash®
Домашняя страница  |  Скрыть список пакетов и классов |  Пакеты  |  Классы  |  Что нового  |  Указатель  |  Приложения  |  Почему по-английски?
Фильтры: Получение данных с сервера...
Получение данных с сервера...
Верхний уровень 

Class  - AS3

ПакетВерхний уровень
Классpublic dynamic class Class
НаследованиеClass Inheritance Object

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9, Flash Lite 4

Для каждого определения класса в программе создается объект Class. Каждый объект Class – это экземпляр класса Class. Объект Class содержит статические свойства и методы класса. Объект класса создает экземпляры класса, когда вызывается с помощью оператора 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



Общедоступные свойства
 СвойствоОпределено
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
Общедоступные методы
 МетодОпределено
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
 Inherited
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали.
Object
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
Class.1.as

В следующем примере показано, как использовать объекты Class, чтобы отложить до момента выполнения выбор класса, для которого следующим образом создаются экземпляры:
  1. Объявите два класса как ClassA и ClassB.
  2. Объявите одну переменную типа Class classToConstruct, а другую типа Boolean chooseClassA, для которой в данном случае выбрано значение 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 {
}




[ X ]Почему по-английски?
Содержимое Справочника ActionScript 3.0 отображается на английском языке

Не все части Справочника ActionScript 3.0 переводятся на все языки. Если какой-то текстовый элемент не переведен, он отображается на английском языке. Например, компонент ga.controls.HelpBox не переведен ни на один из языков. Это значит, что в русской версии справки компонент ga.controls.HelpBox будет отображаться на английском языке.