Давайте посмотрим на написание класса документа.
Шаг 1: Объявление пакета - пакет представляет место, где хранится класс .fla вашего документа. Если ваш класс документов находится в том же каталоге, что и .fla, вам просто нужно написать:
package
Если это в папке, вам нужно добавить это после package
. Допустим, ваш класс документов находился в каталоге с именем src
:
package src
Теперь, когда это отсортировано, у вас должно быть что-то вроде этого:
package
{
//
}
Следующее, что вам нужно сделать, это импортировать классы, которые вам понадобятся в вашем классе документов. Вы захотите расширить MovieClip
в своем классе документов, поэтому давайте импортируем это:
package
{
import flash.display.MovieClip;
}
Это все, что нам нужно, чтобы охватить ваш пример, так что теперь мы переходим к третьему необходимому элементу, объявлению класса. В данном случае он состоит из трех частей:
- Пространство имен класса - может быть либо
internal
(если вы хотите, чтобы ваш класс был доступен только для классов в одном пакете), либо public
(доступно в любом месте проекта).
- Ваше имя класса.
- Что будет расширять ваш класс - в данном случае MovieClip.
Все вместе, ваше будет выглядеть так:
public class Document extends MovieClip
Теперь у вас будет что-то похожее на приведенное ниже, что означает, что вы можете начать добавлять properties
и methods
:
package
{
import flash.display.MovieClip;
public class Document extends MovieClip
{
//
}
}
Первое, что вам нужно сделать, - это создать constructor
для вашего класса. Конструктор вызывается, когда создается экземпляр этого класса, или, в вашем случае, являющийся классом документа, немедленно.
Конструкторы определяются путем создания метода с тем же именем, что и содержащий его класс. Конструкторы также должны быть public
и ничего не возвращать. Вот ваш новый код с пустым конструктором:
package
{
import flash.display.MovieClip;
public class Document extends MovieClip
{
// Constructor
public function Document()
{
//
}
}
}
Следующим шагом будет создание ваших свойств, которые будут принадлежать вашему классу. В вашем примере вы использовали strGlobal:String
, так что давайте добавим это. Свойства обычно принадлежат непосредственно под объявлением класса и над конструктором. Свойства состоят из четырех частей:
- Пространство имен - это определяет доступность вашей собственности. Если вы пропустите это, по умолчанию будет
internal
. На данный момент это основы:
public
- Ваша собственность доступна из любого места, где есть ссылка на экземпляр вашего класса.
private
- Ваша собственность доступна только из класса - сначала это кажется бесполезным, но в конечном итоге вы обнаружите, что в первую очередь используете это.
protected
- Ваша собственность доступна в классах, расширяющих ваш класс.
internal
- Ваша собственность доступна из классов в одном пакете.
- Название вашей собственности.
- Тип Вашей недвижимости.
- Стоимость вашей недвижимости.
В вашем случае strGlobal
будет выглядеть примерно так:
public var strGlobal:String = "Global";
Давайте добавим это к вашему классу документов:
package
{
import flash.display.MovieClip;
public class Document extends MovieClip
{
// Properties
public var strGlobal:String = "Global";
// Constructor
public function Document()
{
//
}
}
}
Далее, вы захотите создать свой метод scopeTest()
в соответствии с вашим вопросом. Методы состоят из 5 частей:
- Пространство имен - методы используют те же пространства имен, что и свойства (см. Выше).
- Имя метода.
- Аргументы метода.
- Тип возврата.
- содержание. * * 1092
scopeTest()
не имеет аргументов и ничего не возвращает, поэтому будет выглядеть так:
public function scopeTest():void
{
trace(strGlobal);
}
Методы обычно располагаются где-нибудь ниже вашего конструктора, поэтому давайте теперь добавим их:
package
{
import flash.display.MovieClip;
public class Document extends MovieClip
{
// Properties
public var strGlobal:String = "Global";
// Constructor
public function Document()
{
//
}
// Output the value of strGlobal
public function scopeTest():void
{
trace(strGlobal);
}
}
}
Теперь, когда все готово, вы сможете вызывать scopeTest()
из вашего конструктора. Поскольку конструктор вызывается немедленно, вы должны увидеть Global
, напечатанный на вашей панели вывода (при условии, что вы правильно связались с ним в Flash IDE).
Надеюсь, это поможет.