Просмотр полной версии : Вопрос про классы
Волгоградец
21.09.2007, 09:52
Привет! Изучаю флэш. Несколько книг прочитал уже, но, черт возьми, так и не могу понять - что такое методы, свойства. И что такое классы и где их брать? Если не лень - помогите, объясните на пальцах. Спасибо.
vooparker
21.09.2007, 10:16
Не поленитесь купите эту книгу, она стоит гораздо дороже своей цены:
http://www.books.ru/shop/books/390545
На пальцах очень сложно и долго, так все пальцы переломаешь.
По идее тут дело даже не в АС2 а в обьектно ориентированном программировании (ООП), про это тоже можно почитать. Потому что толку от знанися АС2 и не знания ООП мало.
Жень Шень
21.09.2007, 11:53
... что такое классы и где их брать?
Определение классов ищем в нете, например ТУТ (http://ru.wikipedia.org/wiki/%D0%9A%D0%BB%D0%B0%D1%81%D1%81_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29)
Если не лень - помогите, объясните на пальцах.
Животные - это класс. Кошка, собака итд - экземпляры класса.
Кошка умеее: мяукать, бегать, ловить мышей - это методы (можно назвать функциями).
Кошка бывает: серой, пушистой, женского рода, жирной, ленивой - это ее свойства (можно назвать переменными). Их можно менять - не давая кошке вискас, можно изменить ее вес.
Кошке надо дать имя - имя экземпляра "кошка" класса "животное" - "Мурка". Теперь к ней можно обращаться по имени (не путать с кличкой:)).
Применить к ней метод "бегать" - Мурка.кис-кис - и она побежит к вам.
Можно дабавить ей метод (повысить ее функцианальность) - Мурка.пнуть_ногой - и она полетит. В добавок выполнит метод "мяукать" - Мурка.мяукать. Пнувший услыт: "Мяу!!!".
Вот такие пироги с котятами!!! Успехов.
А еще классы можно расширять. Например, класс "охотничья собака" наследует все от просто собаки + умеет за утками бегать.
Волгоградец
21.09.2007, 14:09
Спасибо :-)! Респект Жень Шеню и всем!
Резюмирую, с вашего позволения :)
МЕТОДЫ - это функции, которые объединены в одну общую оболочку - класс. Другими словами - это действия.
СВОЙСТВА - это переменные, которые также находятся в классе.
ИМЯ КЛАССА - название этого объединения.
Вот и работаешь с такими объединениями
ЭКЗЕМПЛЯР КЛАССА=new ИМЯ КЛАССА();
ЭКЗЕМПЛЯР КЛАССА.МЕТОД1();
ЭКЗЕМПЛЯР КЛАССА.МЕТОД2();
ЭКЗЕМПЛЯР КЛАССА.СВОЙСТВО1=5;
ЭКЗЕМПЛЯР КЛАССА.СВОЙСТВО2="Мурка";
Свойства — это публичные переменные класса.
Хотел уже создавать новую тему, чтобы спросить глупейший вопрос в своей жизни - в классе можно задавать циклы? :away:
Так как вот прочитал я половину мука, хотел уже браться за новы йпроект, и делать его на классах, но, когда output начал меня бомбить меседжами, что с i никаких методов нет, я все кинул и делаю опять без ооп. :o
DarkLight
22.09.2007, 02:02
Всмысле? Использовать циклы внутри методов класса никто не мешает.
Если не сложно, пожалуйста, вставте этот код в окошко Action и проверте на валидацию -
class Test {
public function Test() {
}
public function testFun():Void {
for (i=0; i<8; i++) {
trace(i);
}
}
}
Почему в output выдает? -
**Error** E:\test\Test.as: Line 5: There is no property with the name 'i'.
for (i=0; i<8; i++) {
**Error** E:\test\Test.as: Line 6: There is no property with the name 'i'.
trace(i);
Total ActionScript Errors: 2 Reported Errors: 2
There is no property with the name 'i' -- Свойства "i" не существует. При чем тут циклы? Используйте локальную переменную i:
class Test {
public function Test() {
}
public function testFun():Void {
for (var i=0; i<8; i++) {
trace(i);
}
}
}
Йомана! Вот я растяпа! Совсем забыл про это.
Правильно я предполагал, что это будет глупейший вопрос! :o
Спасибо, теперь буду внимательней.
Узвините, опять проблема - можно ли импортировать в класс, скажем mx.transitions.Tween?
Ибо я только начинаю знакомиться с практической стороной написания на классах кода.
их надо прописывать до class className{} ?
То есть,
import mx.transitions.Tween;
class className{
}
Да.
Только классы так не называют.
†‡Paladin‡†
22.09.2007, 20:40
даешь название с заглавной буквы.
†‡Paladin‡†, +1 да еще и полное описание через
/*
*
*
*/
Тогда уж
/**
*класс такой-то нужен для того-то
*@author
*@version
*/
Тогда уж гоу учить ASDoc.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.