Помогите пожалуйста разобратся в ActionScript 3.0
|
|
HSDima | Дата: Вторник, 30 Октября 2012, 18:08 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Помогите пожалуйста! Я только начал изучать ActionScript 3.0 и немного запутался. Читаю книгу Колина Мука. Не могу разобраться в одном коде: 1. Файл основного класса VirtualZoo Code //Содержимое файла VirtualZoo.as //Класс VirtualZoo package zoo { public class VirtualZoo { public function VirtualZoo () { var pet = new VirtualPet("Stan"); } } } 2. Файл класса VirtualPet Code //Содержимое файла VirtualPet.as //Класс VirtualPet package zoo { internal class VirtualPet { internal var petName; public function VirtualPet (name) { this.petName = name; } } } Не понятно только одно. Как вот эта переменная в первом файле класса VirtalZoo: Code var pet = new VirtualPet("Stan"); Может задавать значение конструктору второго файла класса VirtalPet:Code public function VirtualPet (name) { this.petName = name; } , а тот переменной класса "VirtualPet" Code internal var petName; Правда оба класса находятся в одном пакете Заранее спасибо за ответ! Помогите новичку! И будет вам
|
|
| |
triptix | Дата: Вторник, 30 Октября 2012, 18:41 | Сообщение # 2 |
постоянный участник
Сейчас нет на сайте
| первый кусок кода создает pet при помощи конструктора Code var pet = new VirtualPet("Stan"); а во втором срабатывает "точка входа" - функция, совпадающая с названием класса - VirtualPet (функция срабатывает при первом создании класса, тк ее имя== имя класса), и в ней прописано, что получив имя, она должна его присвоить.
Вообще мук очень заморочен, сразу в дебри кидается.
Рекомендую почитать статью про то как комрад делал первую игру на as3, все очень подробно расписано, и сразу практическое применение, а не теория http://etcs.ru/files/AsteroidStormSourceCode.rar
|
|
| |
noTformaT | Дата: Вторник, 30 Октября 2012, 18:58 | Сообщение # 3 |
Ukrainian independent game developer
Сейчас нет на сайте
| Директива internal показывает, что класс, переменная, константа или функция доступны для любой вызывающей программы в пределах того же пакета. Классы, свойства и методы принадлежат пространству имен internal по умолчанию.
мука не рекомендую если надо начинать с нуля... лучше офф документация... http://help.adobe.com/ru_RU/as3/learn/index.html
@noTformaT
|
|
| |
HSDima | Дата: Вторник, 30 Октября 2012, 19:36 | Сообщение # 4 |
был не раз
Сейчас нет на сайте
| triptix, noTformaT, Спасибо большое за ответы! Ценю общество форума, много отзывчивых и добрых людей. + Вам.
|
|
| |
Desert_Hunter | Дата: Вторник, 30 Октября 2012, 19:45 | Сообщение # 5 |
постоянный участник
Сейчас нет на сайте
| Классический пример инкапсуляции... С AS не знаком, но скажу, что могут быть ситуации, когда переменная petName может быть недоступна из другого класса, так называемая приватная переменная, а что бы получить данные извне и присвоить их данной переменной и пишется this.petName = name, где переменная name получает значение из другого класса и присваевает его данной переменной.
|
|
| |
HSDima | Дата: Вторник, 30 Октября 2012, 22:04 | Сообщение # 6 |
был не раз
Сейчас нет на сайте
| triptix, noTformaT, Desert_Hunter, Получается что Создания класса VirtualPet Quote (HSDima) var pet = new VirtualPet("Stan"); Автоматически выполняет инструкции приведённые в конструкторе? Quote (HSDima) public function VirtualPet (name) { this.petName = name; } То есть значение ("Stan") Автоматически передается конструктору потому что у них одинаковое название VirtualPet??
|
|
| |
Desert_Hunter | Дата: Вторник, 30 Октября 2012, 22:15 | Сообщение # 7 |
постоянный участник
Сейчас нет на сайте
| Quote (HSDima) Получается что Создания класса VirtualPet Точнее сказать создание экземпляра класса Quote (HSDima) Автоматически выполняет инструкции приведённые в конструкторе? Эээ... ну на то он и конструктор, не... Quote (HSDima) То есть значение ("Stan") Автоматически передается конструктору Ну не напишешь не передастся, вылетит с ошибкой, потому как у конструктора есть передаваемые параметры. В скобках написано name, помнишь?))) Quote (HSDima) потому что у них одинаковое название VirtualPet?? У имени класса и конструктора по определению одинаковое имя должно быть...
|
|
| |
|