Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 27.04.2007, 17:23
boomerFlasher вне форума Посмотреть профиль Отправить личное сообщение для boomerFlasher Найти все сообщения от boomerFlasher
  № 1  
Ответить с цитированием
boomerFlasher

Регистрация: Nov 2004
Сообщений: 8
По умолчанию Как получить путь к основной сцене из клипа находящегося на ней

Ситуация следующая.
Есть основной файл - за все что в нем будет твориться отвечает класс 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, чтобы весь код для нее лежал в соответствующем для неё классе. Надесюь доступно объяснил, всем спасибо кто вразумит и наставит на путь истинный.
Вложения
Тип файла: rar Example.rar (6.2 Кб, 8 просмотров)

Старый 27.04.2007, 17:28
CCCPirate вне форума Посмотреть профиль Отправить личное сообщение для CCCPirate Найти все сообщения от CCCPirate
  № 2  
Ответить с цитированием
CCCPirate
 
Аватар для CCCPirate

Регистрация: Jun 2006
Сообщений: 1,061
_root.startMainSystem

Старый 27.04.2007, 17:28
screamge вне форума Посмотреть профиль Отправить личное сообщение для screamge Посетить домашнюю страницу screamge Найти все сообщения от screamge
  № 3  
Ответить с цитированием
screamge
Ветеран форума
 
Аватар для screamge

Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
this._parent, _root и прочая убогость не катит в классах.

по сабжу, второй класс нужно экстендить от первого, а первому нужно передавать ссылку на объект.
__________________
Free-lance | Twitter | Me

Старый 27.04.2007, 17:32
CCCPirate вне форума Посмотреть профиль Отправить личное сообщение для CCCPirate Найти все сообщения от CCCPirate
  № 4  
Ответить с цитированием
CCCPirate
 
Аватар для CCCPirate

Регистрация: Jun 2006
Сообщений: 1,061
Цитата:
Сообщение от screamge
this._parent, _root и прочая убогость не катит в классах.
кто сказал?

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

Старый 27.04.2007, 17:38
boomerFlasher вне форума Посмотреть профиль Отправить личное сообщение для boomerFlasher Найти все сообщения от boomerFlasher
  № 5  
Ответить с цитированием
boomerFlasher

Регистрация: Nov 2004
Сообщений: 8
Цитата:
Сообщение от 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 {
	}
}

Старый 27.04.2007, 17:54
7thsky™ вне форума Посмотреть профиль Отправить личное сообщение для 7thsky™ Найти все сообщения от 7thsky™
  № 6  
Ответить с цитированием
7thsky™
Flash Aксакал
 
Аватар для 7thsky™

Регистрация: Jun 2005
Сообщений: 636
boomerFlasher: Ээээ, на мой скромный взгляд вы как то неправильно понимаете ООП...

Кнопка, вообще по идее, не должны ничего сама делать, при нажатии на нее она должна известить контроллер (например под средством event'ов), что на нее нажали, и контроллер уже в зависимости от того что за кнопка должен исполнить соответствующую команду.

Старый 27.04.2007, 18:03
boomerFlasher вне форума Посмотреть профиль Отправить личное сообщение для boomerFlasher Найти все сообщения от boomerFlasher
  № 7  
Ответить с цитированием
boomerFlasher

Регистрация: Nov 2004
Сообщений: 8
Цитата:
Сообщение от 7thsky™
Кнопка, вообще по идее, не должны ничего сама делать, при нажатии на нее она должна известить контроллер (например под средством event'ов), что на нее нажали, и контроллер уже в зависимости от того что за кнопка должен исполнить соответствующую команду.
Мысль верная, но в моём случае она мне не подходит ...

Старый 27.04.2007, 18:28
7thsky™ вне форума Посмотреть профиль Отправить личное сообщение для 7thsky™ Найти все сообщения от 7thsky™
  № 8  
Ответить с цитированием
7thsky™
Flash Aксакал
 
Аватар для 7thsky™

Регистрация: Jun 2005
Сообщений: 636
Цитата:
Сообщение от boomerFlasher
Мысль верная, но в моём случае она мне не подходит ...
А можно спросить уважаемого, чем эта "Мысль верная" Вам не подходит?

Старый 27.04.2007, 17:37
screamge вне форума Посмотреть профиль Отправить личное сообщение для screamge Посетить домашнюю страницу screamge Найти все сообщения от screamge
  № 9  
Ответить с цитированием
screamge
Ветеран форума
 
Аватар для screamge

Регистрация: 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);
	}
}
//код во фла
Код:
import Classes.MainSystem;
var startMainSystem:MainSystem = new MainSystem(this);
писал на коленях, смысл я надеюсь понятен
__________________
Free-lance | Twitter | Me

Старый 27.04.2007, 17:38
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Использовать паттерн Синглтон.

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

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:25.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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