Во-первых, причина, по которой вам не нужно специально импортировать файл GLOBAL.as, заключается в том, что он находится в той же папке пакета, что и другой класс. Если бы он был в другой упаковке, его нужно было бы импортировать.
Мне нравится думать о классе как о шаблоне, в котором вы определяете свои данные и функции. Затем вы создаете экземпляр этого объекта. Экземпляр инкапсулирует эти данные и предоставляет только определенные общедоступные функции. Идея в том, что другие внешние экземпляры могут взаимодействовать с другим экземпляром через предопределенный интерфейс, например, контракт, в котором говорится, что если вы вызовете эту функцию и передадите ее, я верну это. Фактическая реализация того, как этот класс делает это, скрыта, таким образом, легко изменить внутреннюю работу, не затрагивая остальную часть системы.
Расширение класса также называется наследованием. Если классу нужны общие функции и данные, вместо двух отдельных классов с некоторыми похожими функциями и несколькими различными функциями, мы можем вместо этого иметь базовый класс, который имеет функции, общие для обеих. Затем подкласс может расширить это, поэтому он имеет эти функции, а также добавляет свои собственные. Таким образом, если вы измените функцию в базовом классе, то все классы, расширяющие ее, будут автоматически использовать эту недавно измененную функцию, тем самым уменьшая обслуживание и ошибки.
Что касается использования классов в другом каталоге, мы используем синтаксис пакета, чтобы определить, где находится класс.
Например: com.shaz.physics.MyClass
У вас будет папка с именем com. Внутри этой папки будет папка Shaz, внутри этой физики папки, а внутри этого файла MyClass.as. В этом файле MyClass.as пакет будет package com.shaz.physics
. Другие классы в других папках, затем нужно будет импортировать ваш класс как: import com.shaz.physics.MyClass
Наконец, если вам нужны вспомогательные классы, то сделать статические функции может быть хорошим способом. Например, если у вас есть класс Math, чтобы сделать что-то, вы можете определить его следующим образом:
public class Math
{
public static function doSomething():void
{
}
}
Тогда вместо создания экземпляра объекта вы можете просто сделать Math.doSomething();