Форум 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:37
screamge вне форума Посмотреть профиль Отправить личное сообщение для screamge Посетить домашнюю страницу screamge Найти все сообщения от screamge
  № 5  
Ответить с цитированием
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
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

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

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

Старый 27.04.2007, 17:38
boomerFlasher вне форума Посмотреть профиль Отправить личное сообщение для boomerFlasher Найти все сообщения от boomerFlasher
  № 7  
Ответить с цитированием
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:42
screamge вне форума Посмотреть профиль Отправить личное сообщение для screamge Посетить домашнюю страницу screamge Найти все сообщения от screamge
  № 8  
Ответить с цитированием
screamge
Ветеран форума
 
Аватар для screamge

Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
__etc, у меня сейчас нет возможности проверить. Где ошибка то?
__________________
Free-lance | Twitter | Me

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

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от screamge
__etc, у меня сейчас нет возможности проверить. Где ошибка то?
В том, что ты не понимаешь, для чего нужно наследование.

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

Регистрация: Jun 2006
Сообщений: 1,061
2screamge а то что ты написал конечно не убогость))))

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


Последний раз редактировалось CCCPirate; 27.04.2007 в 17:56.
Создать новую тему Ответ Часовой пояс GMT +4, время: 09:40.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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