Форум 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=95121)

boomerFlasher 27.04.2007 17:23

Как получить путь к основной сцене из клипа находящегося на ней
 
Вложений: 1
Ситуация следующая.
Есть основной файл - за все что в нем будет твориться отвечает класс MainSystem следующего содержания:

Код:

class Classes.MainSystem {
        function MainSystem() {
        }
}

вызывается этот класс во фла следующим образом:
Код:

import Classes.MainSystem;
var startMainSystem:MainSystem = new MainSystem();

На основной сцене находится кнопка за действие которой отвечает следующий класс EnterSystem:

Код:

class Classes.ButtonSystem.EnterSystem extends MovieClip {
        function EnterSystem() {
        }
        private function onRelease():Void {
                // Как получить отсюда ссылку к основной сцене кроме такого способа,
                // учитывая что основная сцена будет характеризоваться классом Classes.MainSystem?
                trace(this._parent);
        }
}

Цель: получить доступ к основной сцене (к классу MainSystem) из этой кнопки, но не таким методом - this._parent, который написан у меня в классе.

Можно было конечно задать поведение для кнопки и в основном классе но я хочу добиться полной независимости кнопки от класса MainSystem, чтобы весь код для нее лежал в соответствующем для неё классе. Надесюь доступно объяснил, всем спасибо кто вразумит и наставит на путь истинный.

CCCPirate 27.04.2007 17:28

_root.startMainSystem

screamge 27.04.2007 17:28

this._parent, _root и прочая убогость не катит в классах.

по сабжу, второй класс нужно экстендить от первого, а первому нужно передавать ссылку на объект.

CCCPirate 27.04.2007 17:32

Цитата:

Сообщение от screamge
this._parent, _root и прочая убогость не катит в классах.

кто сказал?

а передавать ты как собрался?

screamge 27.04.2007 17:37

Код:

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);
        }
}

//код во фла
Код:

import Classes.MainSystem;
var startMainSystem:MainSystem = new MainSystem(this);

писал на коленях, смысл я надеюсь понятен

etc 27.04.2007 17:38

Использовать паттерн Синглтон.

screamge, работать не будет.

boomerFlasher 27.04.2007 17:38

Цитата:

Сообщение от screamge
по сабжу, второй класс нужно экстендить от первого, а первому нужно передавать ссылку на объект.

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

Тогда по логике надо сделать класс который будет отвечать за действия при наведении и отведении и уже от него экстендить все эти кнопки а в самом классе кнопки прописывать действия при нажатии на кнопку, как тогда экстендить кнопки от основного класса, ведь множественное наследование не разрешено в AS2 ...

Примерно так:
Код:

class Classes.ButtonSystem.AnimationMainSystemButton extends MovieClip {

        function AnimationMainSystemButton() {
        }
        private function onRollOver():Void {

        }
        private function onRollOut():Void {
        }
}

Код:

import Classes.ButtonSystem.AnimationMainSystemButton;
//
class Classes.ButtonSystem.EnterRegistration extends AnimationMainSystemButton {
        function EnterRegistration() {
        }
        private function onRelease():Void {
        }
}


screamge 27.04.2007 17:42

__etc, у меня сейчас нет возможности проверить. Где ошибка то?

etc 27.04.2007 17:44

Цитата:

Сообщение от screamge
__etc, у меня сейчас нет возможности проверить. Где ошибка то?

В том, что ты не понимаешь, для чего нужно наследование.

CCCPirate 27.04.2007 17:54

2screamge а то что ты написал конечно не убогость))))

boomerFlasher пользуй рут и не заморачивайся


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

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