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

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

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

Регистрация: Nov 2006
Сообщений: 487
Отправить сообщение для marat_sa с помощью ICQ Отправить сообщение для marat_sa с помощью Skype™
По умолчанию Передача параметров через Delegate?

Здравствуйте. Тут возник такой вопрос: можно ли через Delegate вызвать функцию, сообщив ей определенные параметры. Я видел другой класс Delegate, поддерживающий такой синтаксис:
Delegate.create(scopeObject, function[, param1, param2 ..]);
Где paramN - некие данные передаваемые в вызываемую функцию.
Как я понял из справки, "родной" Delegate такой синтаксис не поддержиавет. Или я ошибаюсь?

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

Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
вообще можно сделать насильно (как некоторым покажется кривым) таким способом:
Код:
btn.onPress = Delegate.create(this, function(){myFunc(param)});
__________________
Flash Developer
Папа TDP4 Team Battle

Старый 26.12.2007, 20:12
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 3  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
Как я понял из справки, "родной" Delegate такой синтаксис не поддержиавет. Или я ошибаюсь?
Не поддерживает.

ps: Могли бы просто открыть Delegate.as, и посмотреть.

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

Регистрация: Nov 2006
Сообщений: 487
Отправить сообщение для marat_sa с помощью ICQ Отправить сообщение для marat_sa с помощью Skype™
Спасибо CrazyFlasher, работает. Будем "насиловать" функции этим замечательным способом.

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
http://www.flasher.ru/forum/showpost...1&postcount=33
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 25.03.2008, 11:45
Foristel вне форума Посмотреть профиль Отправить личное сообщение для Foristel Посетить домашнюю страницу Foristel Найти все сообщения от Foristel
  № 6  
Ответить с цитированием
Foristel

Регистрация: Dec 2007
Сообщений: 14
Отправить сообщение для Foristel с помощью ICQ
По умолчанию Передача параметров через scopeObject

параметры передаются через scopeObject (работает во Flash 8),
насколько это правомочно, мне неизвестно...
Код:
var Panel=function(){
	...
	var Th:Array = [0,0];
	Th[0]=this;
	Th[1]=mc[i];
	mc[i].onPress = Delegate.create(Th, PressBend);
}
var PressBend=function(){	
	var Th=this;
	Th[1].tf.backgroundColor=0x00CCFF;
	Th[0].Bend();
}

Старый 25.03.2008, 12:19
bbexp вне форума Посмотреть профиль Отправить личное сообщение для bbexp Посетить домашнюю страницу bbexp Найти все сообщения от bbexp
  № 7  
Ответить с цитированием
bbexp
 
Аватар для bbexp

Регистрация: May 2006
Адрес: Город О
Сообщений: 169
Напишите свой Delegate. Все так делают ))
общая структура метода не так сложна.
Код:
function delegate(scope:Object, handler:Function):Function {
		
		var args:Array = arguments.slice(2);
		var reScoped:Function = function (){

			return handler.apply(scope, args);
		}
		return reScoped;
	}
var dFunction:Function = function(p1,p2):Void 
{
   trace(p1+","+p2);
}
var myDelegatedFunction:Function = delegate(this,dFunction,"param1","param2");
myDelegatedFunction();
__________________
Работа * Работы * О работе


Последний раз редактировалось bbexp; 25.03.2008 в 12:23.
Создать новую тему Ответ Часовой пояс GMT +4, время: 17:44.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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