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

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

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

Регистрация: Sep 2001
Адрес: Харьков
Сообщений: 305
Отправить сообщение для Александр Мостовой с помощью ICQ Отправить сообщение для Александр Мостовой с помощью Skype™
По умолчанию конкатация функций. Возможно ли это?

Есть задача: по окончании выполнения произвольной функции выполнить другую функцию.
В простешем случае, если я сам определю функцию, я ставлю точку вызова в конце неё и потом просто передаю необходимую функцию как параметр.

Код:
myFunction = function (finish) {
	trace ("myFunction init");
	//statement
	finish();
};

myFinishFunction =  function () {
	trace ("myFinishFunction init");
	//statement
};

myFunction(myFinishFunction);
исполняет сначала одну функцию -- myFunction init
а затем вторую -- myFinishFunction init


А возможно ли что либо подобное выполнить для произвольной функции?
Ведь для флеш именнованная функция фактически является переменной.
Фактически это переменныя содержащая набор байткодов пердаваемых интерпритатору.
Может есть какой-то способ, возможно через хак, например, дописывать в байт код данные.

Собсвенные мысли на этот счет только:
Помнится был недокументированныйметод, нужно поискать, который позволял встраивать в определенном месте свф-ки быйт - кода, но вот возможно ли его дописать к произвольной функции.

Еще пытаюсь найти решение регестрируя произвольную функцию как объект AsBroadcaster, а финишную функцию добавлять в список Листенера первой. Для встроенных обработчиков событий это могло бы работать.Но все равно сообщение broadcastMessage нужно отправлять самому...

Удавалось ли кому-либо реализовать подобное?
__________________
...

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

Регистрация: Nov 2004
Сообщений: 187
Отправить сообщение для whiteRed с помощью ICQ
Код:
myFunction = function (finish) {
    trace ("myFunction init");
    //statement
    finish();
};

myFinishFunction =  function () {
    trace ("myFinishFunction init");
    //statement
};

doubleFunction = function(any){
    any();
    myFinishFunction();
}

anyFunc = function(){
     .....
};


//myFunction(myFinishFunction);
doubleFunction(anyFunc);

Старый 08.08.2006, 15:05
Александр Мостовой вне форума Посмотреть профиль Отправить личное сообщение для Александр Мостовой Посетить домашнюю страницу Александр Мостовой Найти все сообщения от Александр Мостовой
  № 3  
Ответить с цитированием
Александр Мостовой
 
Аватар для Александр Мостовой

Регистрация: Sep 2001
Адрес: Харьков
Сообщений: 305
Отправить сообщение для Александр Мостовой с помощью ICQ Отправить сообщение для Александр Мостовой с помощью Skype™
Так это тоже самое, что я в исходном примере написал.. Ты вставляешь точку вызова...

Код:
myFunction = function (finish) {
    trace ("myFunction init");
    //statement
    finish(); -- точка вызова функции
};
Я же спрашивал про призвольную функцию, т.е. функцию написаную скажем другим разработчиком. Где изначально небыло вставлено точки вызова finish(); или, в в втоем примере any();

Мы можем ее либо использовать либо переопределить, а дописать к ней не можем ничего
__________________
...

Старый 08.08.2006, 15:12
Александр Мостовой вне форума Посмотреть профиль Отправить личное сообщение для Александр Мостовой Посетить домашнюю страницу Александр Мостовой Найти все сообщения от Александр Мостовой
  № 4  
Ответить с цитированием
Александр Мостовой
 
Аватар для Александр Мостовой

Регистрация: Sep 2001
Адрес: Харьков
Сообщений: 305
Отправить сообщение для Александр Мостовой с помощью ICQ Отправить сообщение для Александр Мостовой с помощью Skype™
т.е. что бы при вызове определенной внешней функции, автоматически вызывалась другая..
__________________
...

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

Регистрация: Nov 2004
Сообщений: 187
Отправить сообщение для whiteRed с помощью ICQ
ну я и предлагаю вместо вызова внешней функции вызывать свою, которая уже сама сначала вызовет внешнюю, а потом завершающую... разве не выход?

Старый 08.08.2006, 15:48
Александр Мостовой вне форума Посмотреть профиль Отправить личное сообщение для Александр Мостовой Посетить домашнюю страницу Александр Мостовой Найти все сообщения от Александр Мостовой
  № 6  
Ответить с цитированием
Александр Мостовой
 
Аватар для Александр Мостовой

Регистрация: Sep 2001
Адрес: Харьков
Сообщений: 305
Отправить сообщение для Александр Мостовой с помощью ICQ Отправить сообщение для Александр Мостовой с помощью Skype™
Цитата:
ну я и предлагаю вместо вызова внешней функции вызывать свою, которая уже сама сначала вызовет внешнюю, а потом завершающую... разве не выход?
Ну частично да, только в том случае когда мы сами инициируем вызов функции. В этом случае и неимеет вообщем-то смысла передавать точку вызова, их проще написать подряд :

firstFunction();
afteFirstFunction();

Но есть потребность дописать комманды к функции вызов которой я не инициирую. Скажем с какого-нибудь чужого загруженного свф, или своего же вызванного setinterval, в месте которой я не контролирую в памяти...

Ну например во внутреннем загруженном клипе другого разработчика используется какой-то метод pauseThisAction(), a я хочу что бы паралельно вызывался при вызове этого метода вызывался и мой, метод корневого клипа .. pauseGlobalAction(),

Я могу метод загруженного клипа либо просто удалить записав новый, либо ничего не менять, а хотелось бы приписать к нему вызов своего метода... Но он изначально не имеет точки вызова...
__________________
...

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

Регистрация: Sep 2001
Адрес: Харьков
Сообщений: 305
Отправить сообщение для Александр Мостовой с помощью ICQ Отправить сообщение для Александр Мостовой с помощью Skype™
А раньше подобный вопрос не обсуждался в форуме..?
Сложно подобрать ключевое слово для поиска
Никто не помнит?
как назвать то лучше?
"конкатанация функций", "Точка вызова произвольной функции"
__________________
...

Старый 08.08.2006, 20:01
KidsKilla вне форума Посмотреть профиль Отправить личное сообщение для KidsKilla Посетить домашнюю страницу KidsKilla Найти все сообщения от KidsKilla
  № 8  
Ответить с цитированием
KidsKilla
.grin! wuz here
 
Аватар для KidsKilla

Регистрация: Aug 2004
Адрес: paradise city
Сообщений: 3,981
Отправить сообщение для KidsKilla с помощью ICQ
firstFunction();
afteFirstFunction();

afteFirstFunction будет вызвана только после окончания работы firstFunction.
во флеше только 1н поток.

Старый 09.08.2006, 11:43
Александр Мостовой вне форума Посмотреть профиль Отправить личное сообщение для Александр Мостовой Посетить домашнюю страницу Александр Мостовой Найти все сообщения от Александр Мостовой
  № 9  
Ответить с цитированием
Александр Мостовой
 
Аватар для Александр Мостовой

Регистрация: Sep 2001
Адрес: Харьков
Сообщений: 305
Отправить сообщение для Александр Мостовой с помощью ICQ Отправить сообщение для Александр Мостовой с помощью Skype™
Цитата:
firstFunction();
afteFirstFunction();

afteFirstFunction будет вызвана только после окончания работы firstFunction.
во флеше только 1н поток.
Естественно
Никто обратного и не утверждает
__________________
...

Старый 09.08.2006, 11:56
Александр Мостовой вне форума Посмотреть профиль Отправить личное сообщение для Александр Мостовой Посетить домашнюю страницу Александр Мостовой Найти все сообщения от Александр Мостовой
  № 10  
Ответить с цитированием
Александр Мостовой
 
Аватар для Александр Мостовой

Регистрация: Sep 2001
Адрес: Харьков
Сообщений: 305
Отправить сообщение для Александр Мостовой с помощью ICQ Отправить сообщение для Александр Мостовой с помощью Skype™
Вопрос в том можно ли дать такие дерективы плееру, что бы зная только имя и путь к функции, но не имея доступа к ее исходникам (as), при каждом вызове этой функции, добавить автоматический вызов другой функции.
__________________
...

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

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

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


 


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


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