![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Nov 2004
Сообщений: 8
|
Ситуация следующая.
Есть основной файл - за все что в нем будет твориться отвечает класс MainSystem следующего содержания: вызывается этот класс во фла следующим образом: На основной сцене находится кнопка за действие которой отвечает следующий класс EnterSystem: class Classes.ButtonSystem.EnterSystem extends MovieClip {
function EnterSystem() {
}
private function onRelease():Void {
// Как получить отсюда ссылку к основной сцене кроме такого способа,
// учитывая что основная сцена будет характеризоваться классом Classes.MainSystem?
trace(this._parent);
}
}
Можно было конечно задать поведение для кнопки и в основном классе но я хочу добиться полной независимости кнопки от класса MainSystem, чтобы весь код для нее лежал в соответствующем для неё классе. Надесюь доступно объяснил, всем спасибо кто вразумит и наставит на путь истинный. |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 1,061
|
_root.startMainSystem
|
|
|||||
|
Ветеран форума
Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
|
this._parent, _root и прочая убогость не катит в классах.
по сабжу, второй класс нужно экстендить от первого, а первому нужно передавать ссылку на объект. |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 1,061
|
Цитата:
а передавать ты как собрался? |
|
|||||
|
Регистрация: Nov 2004
Сообщений: 8
|
Цитата:
Тогда по логике надо сделать класс который будет отвечать за действия при наведении и отведении и уже от него экстендить все эти кнопки а в самом классе кнопки прописывать действия при нажатии на кнопку, как тогда экстендить кнопки от основного класса, ведь множественное наследование не разрешено в AS2 ... Примерно так: class Classes.ButtonSystem.AnimationMainSystemButton extends MovieClip {
function AnimationMainSystemButton() {
}
private function onRollOver():Void {
}
private function onRollOut():Void {
}
}
|
|
|||||
|
Flash Aксакал
Регистрация: Jun 2005
Сообщений: 636
|
boomerFlasher: Ээээ, на мой скромный взгляд вы как то неправильно понимаете ООП...
Кнопка, вообще по идее, не должны ничего сама делать, при нажатии на нее она должна известить контроллер (например под средством event'ов), что на нее нажали, и контроллер уже в зависимости от того что за кнопка должен исполнить соответствующую команду. |
|
|||||
|
Регистрация: Nov 2004
Сообщений: 8
|
Цитата:
|
|
|||||
|
Flash Aксакал
Регистрация: Jun 2005
Сообщений: 636
|
Цитата:
|
|
|||||
|
Ветеран форума
Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
|
class Classes.MainSystem {
private var _mc:MovieClip; // ссылка на объект
function MainSystem(mc:MovieClip):Void {
_mc = mc; // создаём ссылку
}
}
class Classes.ButtonSystem.EnterSystem extends MainSystem{
function EnterSystem() {
}
private function onRelease():Void {
trace(_mc);
}
}
писал на коленях, смысл я надеюсь понятен |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Использовать паттерн Синглтон.
screamge, работать не будет. |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:25. |
|
|
« Предыдущая тема | Следующая тема » |
|
|