PDA

Просмотр полной версии : AS2 prototypes, ООП и прочее (вопрос к гуру)


PinkPong
27.07.2005, 22:03
Доброго времени суток, Господа... и Дамы (если таковые имеются)

хочу вот спросить у вас совета...
задача следующая:

1. есть к примеру 2 клипа - mc1 mc2
2. нет желания для каждого из них прописывать *.onPress
3. значит есть желание написать один для всех *.onPress
4. соответственно у каждого свое поведение при этом

ВОПРОС:
что же лучше?
1. сделать *.prototype.onPress и в зависимости от this.state делать нечто внутри прототипа
2. написать просто функцию, которая будет вызываться из каждого *.onPress (внутри функции в зависимости от this.state делать нужное)

да... this.state - это просто состояние клипа (true/false)

интересен Ваш ответ с точки зрения опытного ООПэшника (во флэш хотя-бы)....
хотя говорят, что AS это совсем не ООП (но в эту сторону углубляться не будем :D )

почему я это спрашиваю ?
1. ну потому что сам не знаю :D
2. надоело делать copy&past из старых проектов в новые (видимо пора подойти серьезно к классам и прочему)

Король
27.07.2005, 22:50
и при чем тут ООП и гуру? пишешь одну функцию, в цикле прописываешь ее для событий скольких угодно мувов, вызываешь с параметрами (допустим, присваиваешь в том же цикле каждому муву свой state или что угодно)

PinkPong
27.07.2005, 23:28
:)
ладно про гуру проехали...

а ООП....
интересно как ПРАВИЛЬНО строить приложение согласно принцЫпам этого самого ООП...

вопрос видно я задал не так...
хорошо...

mc1
mc1.state=true/false

onPress & true = передвинутся в точку А
onPress & false = вернуться назад

*********************************

mc2
mc2.state=true/false

onPress & true = visible
onPress & false = inVisible

и таких mc1 - 10 шт, mc2 - 20 шт... а еще есть mc3 и т.д.

т.е. я должен написать функцию в которую передаю ну допустим имя клипа.. в зависимости от имени клипа она делает нужный набор действий...
это вроде понятно

но! а как это красиво оформить с точки зрения классов и прочего ?
насколько я понимаю должно выглядеть так:

есть два объекта mc1 и mc2
оба они принадлежат классу MovieClip
там же есть метод - myPress()
так как вот нужно его запрограммировать чтоб в контексте mc1 он говорил A, а в конексте mc2 говорил Б ?

mc1.myPress() // A
mc2.myPress() // Б

myPress()
{

???????? // все тот же SWITCH или несколько IF

}

или бежать в магазин за книжкой по ООП ? :D

Король
28.07.2005, 00:13
советую сначала научиться управляться с переменными, циклами и массивами