Руководство по actionscript. часть 1, стр. 035
Import flash. media. Sound new Sound
Если импортировать класс на уровне пакета, то он будет доступен из любого места кода, принадлежащего телу пакета. Например, в следующем коде класс flash. media. Sound импортируется на уровне пакета, а затем создается экземпляр класса Sound в методе-конструкторе VirtualZoo:
package zoo { import flash. media. Sound
public class VirtualZoo { public function VirtualZoo ( ) { new Sound
}
}
}
В случае возникновения конфликта между неуточненными именами классов для них необходимо использовать уточненные имена. Например, если собственный класс Sound описан в пакете zoo, обязательным является использование следующего кода, создающего экземпляр предопределенного класса flash. media. Sound (обратите внимание на использование уточненного имени):
new flash. media. Sound
Для создания же экземпляра класса Sound из пакета zoo нам бы пришлось использовать следующий код:
new zoo. Sound
Использование неуточненного имени класса (то есть Sound) само по себе приводит к ошибке, которая не позволяет откомпилировать программу. Ошибки, которые препятствуют компиляции, называются ошибками этапа компиляции.
Чтобы получить доступ ко всем открытым классам в другом пакете, необходимо использовать следующий обобщенный код:
import имяПакета.*
Например, чтобы получить доступ ко всем открытым классам в пакете flash. media, используется такой код:
import flash. media.*
Обратите внимание, что классы, принадлежащие пакету без имени, помещаются в автоматически создаваемый пакет, который называется безымянным. Классы из безымянного пакета можно непосредственно использовать в любом месте кода программы, не применяя директиву import. Другими словами:
package {
// Классы, описанные здесь, принадлежат безымянному пакету // и могут быть непосредственно использованы // в любом месте кода программы
}
Тем не менее следует избегать размещения описаний классов в безымянном пакете, поскольку их имена могут конфликтовать с именами других классов (и других типов описаний), описанных в языке ActionScript, других программах или даже в других частях одной программы.
Говоря техническим языком, директива import открывает общедоступное пространство имен указанного пакета для текущей и всех вложенных областей видимости. Если вы новичок в программировании на языке ActionScript, то вам не стоит беспокоиться о техническом аспекте директивы import. Вся необходимая информация будет рассмотрена в следующих главах.
Теперь вернемся к нашей первоначальной задаче — созданию объектов в программе «Зоопарк». Вспомним следующий код, в котором создается новый объект класса
VirtualPet:
package zoo { public class VirtualZoo { public function VirtualZoo ( ) { new VirtualPet
}
}
}
В приведенном коде успешно создается новый объект класса VirtualPet, но при этом возникает проблема: после создания объекта программа не имеет никакой возможности обращаться к нему. В результате она не может использовать новое животное или управлять им. Чтобы предоставить ей такую возможность — обращаться к объекту класса VirtualPet, — используются специальные переменные.