|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
1) import это не include, он не добавляет код импортируемого, смешивая его с текущим кодом. В AS3 используется концепция Объектно-ориентированного программирования, базирующаяся на понятии Объект. То есть код разделен на модули-объекты, каждый из которых имеет свою собственную Ответственность, определяемую кодом, который оформлен в Класс. То есть Класс — это код, который может быть выделен (абстрагирован) в отдельный набор свойств и методов, связанных по смыслу и прямо взаимодействующих для решения неких конкретных задач. Так вот импорт импортирует такие Классы, законченные осмысленные оформленные по правилам модули, а не просто строки кода или отдельные команды.Сама по себе директива import всего-лишь указывает компилятору, где найти текстовый файл с описанием конкретного Класса, который программа собирается использовать. Чтобы использовать Класс, программа должна создать его Экземпляр с помощью команды new. То есть Вы заявляете компилятору: "я буду здесь использовать класс животные.млекопитающие.ЧеловекРазумный". Если далее в коде компилятор встречает что-то типа var Петя:ЧеловекРазумный = new ЧеловекРазумный(); то он знает, где найти класс для создания этого экземпляра — в пакете "животные" есть пакет "млекопитающие", а в нем нужный Класс ЧеловекРазумный. Но если, просмотрев код программы перед компиляцией, компилятор ни разу не встретит использование класса, заявленного в импорте, он даже не станет включать его код в конечныйй файл swf — зачем, если класс не используется? В Вашем случае такой класс — SampleCode. Он нигде в коде не используется.
2) Вероятно, часть действий скрыта от меня, так как Вы используете код в кадрах (что вообще-то в AS3 не принято, хотя и допустимо для простых вещей вроде банера), и, возможно, добавляете экземпляр SampleCode "руками" на таймлайн. Однако, что дальше? Из своего menu Вы пытаетесь обращаться к root.nameB, но ведь у root, то есть класса основной флэшки, нет такого свойства — оно есть у класса SampleCode, а его экземпляр — не root.
3) При оформлении Класса требуется указывать модификатор доступа перед объявлением метода и тип возвращаемого методом значения, то есть в Вашем случае не "function functionBat1()", а " public function functionBat1():void". Если модификатор не указан, он автоматически считается как internal, а не public, и тогда методы "видны" только для классов из этого же пакета.
Последний раз редактировалось Wolsh; 04.11.2014 в 00:07.
|