Jim
30.03.2013, 23:38
Начал изучать AS3 по книге Колина Мука.
В этом деле я начинаю абсолютно с нуля, не имея за собой никакого опыта в программировании. И, не знаю, у всех ли новичков, кто начинал с Мука, воспринималось так же, но для меня - книга дотошно оперирует кучами разных терминов. Большими кучами! Не дает сопоставить между собой элементарное, постоянно в этих терминах запутывая; не позволяя сосредоточится на том, что, собственно, сам-то код делает!.
Поэтому, перечитывая по 5 раз (не преувеличиваю), одни и те же страницы, еле дополз дошел до 84'й...
Помогите, пожалуйста, разобраться. Ибо книга не дает.
Я выложу код и опишу, как я его понимаю, укажите, пожалуйста, на ошибки, если такие будут.
Прошу прощения, если столько писанины осиливать напряжно, но узнать нужно именно это - деваться мне не куда. Посоветоваться, чтобы разобраться, не с кем.
Сейчас такое дерево каталогов с файлами:
╚ virtualzoo
╚ src
╚ zoo
╠ VirtualZoo.as
╚ VirtualPet.as
VirtualZoo.as
package zoo {
public class VirtualZoo{
public function VirtualZoo ( ) {
var pet = new VirtualPet("Stan");
}
}
}
package zoo { -- Здесь мы указываем имя пакета и подчеркиваем имя поддериктории (по правилам компилятора), в которой этот as-файл расположен.
public class VirtualZoo{ -- Затем создаем класс, внутри этого пакета.
"public" - в этом месте это, своего рода, тоже стандарт компилятора, дает понять, что этот класс - основной в "zoo". Оно и понятно - "public" в принципе делает класс доступным за пределами дериктории, в которой находится.
"class" - задает класс
"VirtualZoo" - несет имя точно совпадающее с регистром букв файла VirtualZoo.as (так нужно описывать каждый класс, если я правильно понял)
public function VirtualZoo ( ) { -- Описываем функцию.
"public" - опять же делает функцию общедоступной, даже ЗА пределами директории "zoo",
"function" - описывает функцию,
"VirtualZoo" - так мы назвали функцию... судя по всему, могли назвать как угодно, на совпадения с именами файла и основного класса это никак не влияет и какой-нибудь "главной" функцию не делает.
var pet = new VirtualPet("Stan"); -- задаем значение функции, описанной в VirtualPet.as.
"var" - мы задаем новую переменную
"pet" - даем переменной имя
"new" - указываем, что она новая (тут не понял, зачем, естественно, они все новые, объясните, пожалуйста)
"VirtualPet("Stan")" - присваиваем значение name для функции VirtualPet, созданной в VirtualPet.as... судя по всему...
VirtualPet.as
package zoo {
internal class VirtualPet{
internal var petName;
public function VirtualPet (name){
this.petName = name;
}
}
}
package zoo { -- тоже, что и в предыдущий раз. Задаем имя пакета, соответствуя директории "zoo", чтобы в дальнейшем можно было вызвать через точку
internal class VirtualPet{ -- здесь мы прописываем класс уже "internal", давая понять, что это не основной класс и за пределами "zoo" он вызываться ничем не будет! Только внутренними классами.
internal var petName; -- задаем переменную petName. Не совсем понял, почему internal. Судя по всему, потому, что планируем использовать ее в другом классе. однако тоже в пределах "zoo"
public function VirtualPet (name){ -- объявляем функцию VirtualPet
"public" - доступна везде
"function" - описывает, что мы делаем функцию
"VirtualPet (name)" - функция называется VirtualPet, а ее значение мы называем "name" (или это одно из значений, которое можно дать функции, не знаю, запутался)
this.petName = name; -- ...
"this" - книга говорит, что мы указываем на какой-то создаваемый экземпляр класса VirtualPet... затем говорит, что имелось ввиду, что мы указываем на создаваемый объект... какой объект и что имеет ввиду под этим объектом, не говорит. Функция - наш создаваемый объект? Или значение name... или класс имеется ввиду.
"petName" - обращение к переменной petName, которую мы создали.
"name;" - присваиваем petName значение name. А name'ом у нас является, вроде как "Stan". то есть теперь petName содержит слово "Stan"
В этом деле я начинаю абсолютно с нуля, не имея за собой никакого опыта в программировании. И, не знаю, у всех ли новичков, кто начинал с Мука, воспринималось так же, но для меня - книга дотошно оперирует кучами разных терминов. Большими кучами! Не дает сопоставить между собой элементарное, постоянно в этих терминах запутывая; не позволяя сосредоточится на том, что, собственно, сам-то код делает!.
Поэтому, перечитывая по 5 раз (не преувеличиваю), одни и те же страницы, еле дополз дошел до 84'й...
Помогите, пожалуйста, разобраться. Ибо книга не дает.
Я выложу код и опишу, как я его понимаю, укажите, пожалуйста, на ошибки, если такие будут.
Прошу прощения, если столько писанины осиливать напряжно, но узнать нужно именно это - деваться мне не куда. Посоветоваться, чтобы разобраться, не с кем.
Сейчас такое дерево каталогов с файлами:
╚ virtualzoo
╚ src
╚ zoo
╠ VirtualZoo.as
╚ VirtualPet.as
VirtualZoo.as
package zoo {
public class VirtualZoo{
public function VirtualZoo ( ) {
var pet = new VirtualPet("Stan");
}
}
}
package zoo { -- Здесь мы указываем имя пакета и подчеркиваем имя поддериктории (по правилам компилятора), в которой этот as-файл расположен.
public class VirtualZoo{ -- Затем создаем класс, внутри этого пакета.
"public" - в этом месте это, своего рода, тоже стандарт компилятора, дает понять, что этот класс - основной в "zoo". Оно и понятно - "public" в принципе делает класс доступным за пределами дериктории, в которой находится.
"class" - задает класс
"VirtualZoo" - несет имя точно совпадающее с регистром букв файла VirtualZoo.as (так нужно описывать каждый класс, если я правильно понял)
public function VirtualZoo ( ) { -- Описываем функцию.
"public" - опять же делает функцию общедоступной, даже ЗА пределами директории "zoo",
"function" - описывает функцию,
"VirtualZoo" - так мы назвали функцию... судя по всему, могли назвать как угодно, на совпадения с именами файла и основного класса это никак не влияет и какой-нибудь "главной" функцию не делает.
var pet = new VirtualPet("Stan"); -- задаем значение функции, описанной в VirtualPet.as.
"var" - мы задаем новую переменную
"pet" - даем переменной имя
"new" - указываем, что она новая (тут не понял, зачем, естественно, они все новые, объясните, пожалуйста)
"VirtualPet("Stan")" - присваиваем значение name для функции VirtualPet, созданной в VirtualPet.as... судя по всему...
VirtualPet.as
package zoo {
internal class VirtualPet{
internal var petName;
public function VirtualPet (name){
this.petName = name;
}
}
}
package zoo { -- тоже, что и в предыдущий раз. Задаем имя пакета, соответствуя директории "zoo", чтобы в дальнейшем можно было вызвать через точку
internal class VirtualPet{ -- здесь мы прописываем класс уже "internal", давая понять, что это не основной класс и за пределами "zoo" он вызываться ничем не будет! Только внутренними классами.
internal var petName; -- задаем переменную petName. Не совсем понял, почему internal. Судя по всему, потому, что планируем использовать ее в другом классе. однако тоже в пределах "zoo"
public function VirtualPet (name){ -- объявляем функцию VirtualPet
"public" - доступна везде
"function" - описывает, что мы делаем функцию
"VirtualPet (name)" - функция называется VirtualPet, а ее значение мы называем "name" (или это одно из значений, которое можно дать функции, не знаю, запутался)
this.petName = name; -- ...
"this" - книга говорит, что мы указываем на какой-то создаваемый экземпляр класса VirtualPet... затем говорит, что имелось ввиду, что мы указываем на создаваемый объект... какой объект и что имеет ввиду под этим объектом, не говорит. Функция - наш создаваемый объект? Или значение name... или класс имеется ввиду.
"petName" - обращение к переменной petName, которую мы создали.
"name;" - присваиваем petName значение name. А name'ом у нас является, вроде как "Stan". то есть теперь petName содержит слово "Stan"