PDA

Просмотр полной версии : Вопрос про классы


Волгоградец
21.09.2007, 09:52
Привет! Изучаю флэш. Несколько книг прочитал уже, но, черт возьми, так и не могу понять - что такое методы, свойства. И что такое классы и где их брать? Если не лень - помогите, объясните на пальцах. Спасибо.

vooparker
21.09.2007, 10:16
Не поленитесь купите эту книгу, она стоит гораздо дороже своей цены:
http://www.books.ru/shop/books/390545

CorC
21.09.2007, 10:48
На пальцах очень сложно и долго, так все пальцы переломаешь.
По идее тут дело даже не в АС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)
Если не лень - помогите, объясните на пальцах.
Животные - это класс. Кошка, собака итд - экземпляры класса.
Кошка умеее: мяукать, бегать, ловить мышей - это методы (можно назвать функциями).
Кошка бывает: серой, пушистой, женского рода, жирной, ленивой - это ее свойства (можно назвать переменными). Их можно менять - не давая кошке вискас, можно изменить ее вес.
Кошке надо дать имя - имя экземпляра "кошка" класса "животное" - "Мурка". Теперь к ней можно обращаться по имени (не путать с кличкой:)).
Применить к ней метод "бегать" - Мурка.кис-кис - и она побежит к вам.
Можно дабавить ей метод (повысить ее функцианальность) - Мурка.пнуть_ногой - и она полетит. В добавок выполнит метод "мяукать" - Мурка.мяукать. Пнувший услыт: "Мяу!!!".
Вот такие пироги с котятами!!! Успехов.

Kikasso
21.09.2007, 11:59
А еще классы можно расширять. Например, класс "охотничья собака" наследует все от просто собаки + умеет за утками бегать.

Волгоградец
21.09.2007, 14:09
Спасибо :-)! Респект Жень Шеню и всем!

Cybo
21.09.2007, 15:04
Резюмирую, с вашего позволения :)

МЕТОДЫ - это функции, которые объединены в одну общую оболочку - класс. Другими словами - это действия.

СВОЙСТВА - это переменные, которые также находятся в классе.

ИМЯ КЛАССА - название этого объединения.

Вот и работаешь с такими объединениями

ЭКЗЕМПЛЯР КЛАССА=new ИМЯ КЛАССА();

ЭКЗЕМПЛЯР КЛАССА.МЕТОД1();
ЭКЗЕМПЛЯР КЛАССА.МЕТОД2();

ЭКЗЕМПЛЯР КЛАССА.СВОЙСТВО1=5;
ЭКЗЕМПЛЯР КЛАССА.СВОЙСТВО2="Мурка";

etc
21.09.2007, 15:08
Свойства — это публичные переменные класса.

romulko
22.09.2007, 01:58
Хотел уже создавать новую тему, чтобы спросить глупейший вопрос в своей жизни - в классе можно задавать циклы? :away:

Так как вот прочитал я половину мука, хотел уже браться за новы йпроект, и делать его на классах, но, когда output начал меня бомбить меседжами, что с i никаких методов нет, я все кинул и делаю опять без ооп. :o

DarkLight
22.09.2007, 02:02
Всмысле? Использовать циклы внутри методов класса никто не мешает.

romulko
22.09.2007, 02:09
Если не сложно, пожалуйста, вставте этот код в окошко 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

udaaff
22.09.2007, 02:18
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);
}
}
}

romulko
22.09.2007, 02:25
Йомана! Вот я растяпа! Совсем забыл про это.

Правильно я предполагал, что это будет глупейший вопрос! :o

Спасибо, теперь буду внимательней.

romulko
22.09.2007, 15:03
Узвините, опять проблема - можно ли импортировать в класс, скажем mx.transitions.Tween?

Ибо я только начинаю знакомиться с практической стороной написания на классах кода.

udaaff
22.09.2007, 15:25
Можно.

romulko
22.09.2007, 19:03
их надо прописывать до class className{} ?

То есть,

import mx.transitions.Tween;
class className{
}

etc
22.09.2007, 19:19
Да.

Только классы так не называют.

†‡Paladin‡†
22.09.2007, 20:40
даешь название с заглавной буквы.

Snut
23.09.2007, 01:28
†‡Paladin‡†, +1 да еще и полное описание через
/*
*
*
*/

iNils
23.09.2007, 01:33
Тогда уж
/**
*
*/

Kikasso
24.09.2007, 02:42
Тогда уж
/**
*класс такой-то нужен для того-то
*@author
*@version
*/

etc
24.09.2007, 11:33
Тогда уж гоу учить ASDoc.