Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Несколько разных классов в одном (http://www.flasher.ru/forum/showthread.php?t=69641)

seeker2005 27.09.2005 13:36

Несколько разных классов в одном
 
Знаю, что ActionScript class позволяет наследовать только один класс.
а как быть в этом случае?:
есть 3 класса:

userList, currentList и searchList

Есть общий класс Playlist.
Хочется пользовать вот так:

var pl:Playlist = new Playlist()
pl.userList.tracks[].description;// но при этом и вот так, к примеру, хочется
pl.currentList.tracks[].trackName;// и вот так
pl.searchList.tracks[].url;


Буду благодарен за подсказку, в какую сторону копать...

Mokus 27.09.2005 14:37

Есть возьожность для множественного наследования с помощю __resolve. Про ето читай здесь http://osflash.org/doku.php?id=multiple_inheritance

Но запомни множественное наследование ето ЗЛО. По твоему посту у меня сложилось впечатление, что ты не совсем понимаеш, что делаеш (извини но ето так выглядит). Советую пока просто прокачатся по ООП.

seeker2005 27.09.2005 14:55

Спасибо, конечно)
Я прекрасно понимаю, что делаю...
Необходимо сделать некий API для сложного объекта

Jukebox
|
Playlist
|
______________ __________________
|......................|............................|
userList ............currentList..............searchList

userList хранит пользовательские плейлисты, с есно, своим API
currentList - текущие проигрываемые треки
searchList - поиск с удаленного сервера необходимых композиций

API между нижними классами не совпадает - думаю, понятно почему

Если есть мысль, как сделать этот "пирожок" - просьба высказыватся...
А умничать по поводу текста постов и знаний по одной фразе - по крайней мере некорректно.

Mokus 27.09.2005 15:10

Цитата:

Сообщение от seeker2005
Спасибо, конечно)
Если есть мысль, как сделать этот "пирожок" - просьба высказыватся...
А умничать по поводу текста постов и знаний по одной фразе - по крайней мере некорректно.

Ответ: Паттерн Facade. не знаю зачем тебе здесь множественое наследование :confused: ...
А когда в твоих постах ты не различаеш класс от обекта, то выводы напрашиваються сами (еще раз извини). Еще раз тот-же совет: "прокачивайся в ООП".

seeker2005 27.09.2005 15:17

Умные люди всегда такие?;)
Спасибо за подсказку:)

Mokus 27.09.2005 16:05

Я не умнее тебя, я просто немного опытнее (ито не уверен). Если ты точнее сформулируеш проблему - я постараюсь более точно ответить.

seeker2005 28.09.2005 06:34

Не, норма... понял свою ошибку... санкс...
Вечер просто - отдыхать тоже нужно:)

Dimchansky 28.09.2005 12:23

вообще-то множественное наследование в ас2 невозможно сделать.
реализовать его можно в ас1 стиле - с помощью прототипа конструктора. у него есть свойство __proto__. В твоем случае
1. userList.prototype.__proto__=Playlist.prototype
2. currentList.prototype.__proto__=Playlist.prototype
3. searchList.prototype.__proto__=Playlist.prototype

однако по приведенному тобой коду userList, currentList, searchList - классы выглядят подозрительно похожими на методы класса Playlist

seeker2005 28.09.2005 12:34

угу, сглупил чуток))
хотел сам себя обмануть

7thsky™ 28.09.2005 12:56

Цитата:

Сообщение от Dimchansky
вообще-то множественное наследование в ас2 невозможно сделать.
реализовать его можно в ас1 стиле - с помощью прототипа конструктора. у него есть свойство __proto__. В твоем случае
1. userList.prototype.__proto__=Playlist.prototype
2. currentList.prototype.__proto__=Playlist.prototype
3. searchList.prototype.__proto__=Playlist.prototype

однако по приведенному тобой коду userList, currentList, searchList - классы выглядят подозрительно похожими на методы класса Playlist

Можно поинтересоваться а где тут множественное наследование (даже в стиле АС1)?


Часовой пояс GMT +4, время: 10:32.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.