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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.03.2007, 19:31
TbIKBA вне форума Посмотреть профиль Отправить личное сообщение для TbIKBA Найти все сообщения от TbIKBA
  № 1  
Ответить с цитированием
TbIKBA
[+1.6 19.12.06]

Регистрация: Nov 2000
Сообщений: 135
По умолчанию Композиция

Сталкиваюсь с такой бедой уже несколько раз, надоело - хочу разобраться!
Есть Класс которий аттачит МС в котором кнопке ( на самом деле мувику) нужно присвоить онРоллОвер и прочие онПресс, чтоб по ним вызывалась функция из этого же класса. вот тут и беда. как дать бедной кнопке понять что нужно функцию вызывать из класса а не искать толко в "себе". Делать класс статичным тоже не очень хороший выход. Как кто реализует такие доступы?

для примера:
Код:
class MyClass {
	private var container:MovieClip;
	public function MyClass(target:MovieClip) {
		container = target.attachMovie("mc", "mc", target.getNextHighestDepth());
		container.btn.onPress = function() {
			update(); // вот это и не запускается :(
		};
	}
	public function update() {
		trace("UPDATE");
	}
}


Последний раз редактировалось TbIKBA; 05.03.2007 в 19:34.
Старый 05.03.2007, 19:48
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Используют класс Delegate
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 05.03.2007, 20:02
TbIKBA вне форума Посмотреть профиль Отправить личное сообщение для TbIKBA Найти все сообщения от TbIKBA
  № 3  
Ответить с цитированием
TbIKBA
[+1.6 19.12.06]

Регистрация: Nov 2000
Сообщений: 135
А если не сложно на можешь на моём примере показать? а то чтот я читаю и не вкуриваю совершенно как она работает..

Старый 05.03.2007, 20:06
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Код:
import mx.utils.Delegate
class MyClass {
	private var container:MovieClip;
	public function MyClass(target:MovieClip) {
		container = target.attachMovie("mc", "mc", target.getNextHighestDepth());
		container.btn.onPress = Delegate.create (this, update);
	}
	public function update() {
		trace("UPDATE");
	}
}
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 05.03.2007, 22:36
Ariel вне форума Посмотреть профиль Отправить личное сообщение для Ariel Найти все сообщения от Ariel
  № 5  
Ответить с цитированием
Ariel
 
Аватар для Ariel

Регистрация: Dec 2006
Сообщений: 230
По умолчанию Simplier

А что, по-простому уже не модно?
Код:
class MyClass {
	private var container:MovieClip;
	public function MyClass(target:MovieClip) {
		container = target.attachMovie("mc", "mc", target.getNextHighestDepth());
		container.btn.onPress = update;
	}
	private function update() {trace("UPDATE");}
}

Старый 05.03.2007, 22:49
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 6  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от Ariel
А что, по-простому уже не модно?
Код:
class MyClass {
	private var container:MovieClip;
	public function MyClass(target:MovieClip) {
		container = target.attachMovie("mc", "mc", target.getNextHighestDepth());
		container.btn.onPress = update;
	}
	private function update() {trace("UPDATE");}
}
Области видимости разные
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 05.03.2007, 23:06
Ariel вне форума Посмотреть профиль Отправить личное сообщение для Ariel Найти все сообщения от Ariel
  № 7  
Ответить с цитированием
Ariel
 
Аватар для Ariel

Регистрация: Dec 2006
Сообщений: 230
По умолчанию Better

Были разные. Теперь область видимости одна. Работает. А все потому что присутствовала порочная методика определения метода в методе...

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

Регистрация: Sep 2002
Сообщений: 30,787
Ariel, свой код нужно проверять перед публикацией. Он не рабочий. Трейс сработает, да. А вот trace(this) выведет совсем не то, что ожидалось. Области разные.

Старый 06.03.2007, 01:32
sem1313 вне форума Посмотреть профиль Отправить личное сообщение для sem1313 Найти все сообщения от sem1313
  № 9  
Ответить с цитированием
sem1313

Регистрация: Feb 2006
Сообщений: 588
iNils, ты привел пример про область видимости функций, а как быть с областью видимости объектов, заданных в этом же классе?

Старый 06.03.2007, 01:36
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 10  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Если я верно понял вопрос, то я не использую классический Delegate, а использую свой в котором можно передавать аргументы (вообще есть и другие реализации). Если мне нужно, что бы внутри update я мог ссылать на объект который вызвал этот update, то я указываю его в качестве параметра. А писать как предложил Ariel в корне не верно.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

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

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


 


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


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