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

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

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

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
По умолчанию как два класса совместить?

у меня есть, например, 2 класса на основе мувиклипа, один добовляет события онМаусСтоп, второй онДаблКлик.

По отдельности они замечательно работают.
А как мне породить мувик чтоб он имел в себе эти 2 (3...5...10) метода?

спасибо

Старый 15.11.2007, 01:02
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 2  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,282
Сделать один класс от MovieClip, в него запихнуть методы добавления обоих событий и названые 2 класса наследовать не от MovieClip, а от его потомка.

Цитата:
А как мне породить мувик чтоб он имел в себе эти 2 (3...5...10) метода?
Соответсвенно новый мувик наследовать от того-же класса.


Последний раз редактировалось etc; 15.11.2007 в 01:26.
Старый 15.11.2007, 01:42
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 3  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
чё-то не пашет
mm.as
Код:
class mm extends MovieClip{
	var onMouseStop:Function;
}
onms.as
Код:
import mx.utils.Delegate;
class onms extends mm {
	var onMouseStop:Function;

	private var interval_onms:Number;
	private var onmsListener:Object = new Object();

	function onms() {
		watch("onMouseStop", Watcher);
	}
	private function Watcher(prop, oldVal, newVal){
		//trace("watched")
		if(prop == "onMouseStop"){
			onmsListener.onMouseMove = Delegate.create(this, onMoveMouse);
			Mouse.addListener(onmsListener);
			return newVal;
		}
	}
	private function onStopMouse() {
		//trace("stoped")
		clearInterval(interval_onms);
		if(onMouseStop) onMouseStop();
		else Mouse.removeListener(onmsListener);
	}
	private function onMoveMouse() {
		//trace("moving")
		clearInterval(interval_onms);
		interval_onms = setInterval(Delegate.create(this, onStopMouse), 300);
	}
}
на сцене клип-экземпляр mm
Код:
mc.onMouseStop = go;
function go(){
	trace("done")
}


Последний раз редактировалось Mnilionic; 15.11.2007 в 01:47.
Старый 15.11.2007, 13:22
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код:
class AAA {
	var __aaa:Function = function(){trace("me AAA!");}
}
Код:
class BBB {
	var __bbb:Function;
	function BBB(){
		this.__bbb = AAA.prototype.__aaa;
	}
}
Код:
var bbb:BBB = new BBB();
bbb.__bbb();
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 15.11.2007 в 13:28.
Старый 15.11.2007, 13:40
screamge вне форума Посмотреть профиль Отправить личное сообщение для screamge Посетить домашнюю страницу screamge Найти все сообщения от screamge
  № 5  
Ответить с цитированием
screamge
Ветеран форума
 
Аватар для screamge

Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
Полиморфизм

Делаете цепочку наследования, третий (онДаблКлик) класс наследуется от мувиклипа, второй (онМаусСтоп) от третьего, а общий класс (онДаблКлик, онМаусСтоп) наследуется от второго. В Итоге имеете иерархию из трёх классов в которой общий совмещает в себе два класса.
__________________
Free-lance | Twitter | Me

Старый 15.11.2007, 16:59
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 6  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
screamge, а есть ли возвожность подключать их параллельно?
Тоесть имеется класс main и к нему подключено ещё 5 необходимых классов. И порождый мувик от main имеет все свойства и методы подключённых классов.

wvxvw, так наследуеься только свойство, которое в момент инициализации пустое и как результат - не работает
Код:
class mm extends MovieClip{
	var onMouseStop:Function;
	function mm(){
		onMouseStop = onms.prototype.onMouseStop;
	}
}


Последний раз редактировалось Mnilionic; 15.11.2007 в 17:08.
Старый 15.11.2007, 18:52
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 7  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Эм... в моем примере ничего не наследуется... просто назначаете внутренней переменной одного класса значение взятое из прототипа другого. А если вопрос, о том возможно ли наследовать в одном классе методы разных - ответ нет. Не в АС2 точно. Лучше изначально придумать структуру так, чтобы не сталкиваться с такими ситуациями. Если честно, то назначение кода в примере не совсем понятно... Чего в итоге нужно сделать?
Кроме того, я как-то плохо себе представляю, как будут вместе уживаться просто 2 объекта такого класса... onmsListener по ходу для всех инстансов этого класса общим будет.
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 15.11.2007 в 19:05.
Старый 15.11.2007, 19:24
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 8  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
wvxvw, понятно.
Да вы правы листнеры перекрываюся, я думал у каждого экземплара различные значения свойтв (..
Но в любом случае это был просто тестовый пример - разбираюсь в классах и ищу их применение.
спасибо.

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

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

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


 


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


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