![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Есть задача: по окончании выполнения произвольной функции выполнить другую функцию.
В простешем случае, если я сам определю функцию, я ставлю точку вызова в конце неё и потом просто передаю необходимую функцию как параметр. myFunction = function (finish) {
trace ("myFunction init");
//statement
finish();
};
myFinishFunction = function () {
trace ("myFinishFunction init");
//statement
};
myFunction(myFinishFunction);
а затем вторую -- myFinishFunction init А возможно ли что либо подобное выполнить для произвольной функции? Ведь для флеш именнованная функция фактически является переменной. Фактически это переменныя содержащая набор байткодов пердаваемых интерпритатору. Может есть какой-то способ, возможно через хак, например, дописывать в байт код данные. Собсвенные мысли на этот счет только: Помнится был недокументированныйметод, нужно поискать, который позволял встраивать в определенном месте свф-ки быйт - кода, но вот возможно ли его дописать к произвольной функции. Еще пытаюсь найти решение регестрируя произвольную функцию как объект AsBroadcaster, а финишную функцию добавлять в список Листенера первой. Для встроенных обработчиков событий это могло бы работать.Но все равно сообщение broadcastMessage нужно отправлять самому... Удавалось ли кому-либо реализовать подобное?
__________________
... |
|
|||||
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);
|
|
|||||
|
Так это тоже самое, что я в исходном примере написал.. Ты вставляешь точку вызова...
myFunction = function (finish) {
trace ("myFunction init");
//statement
finish(); -- точка вызова функции
};
Мы можем ее либо использовать либо переопределить, а дописать к ней не можем ничего
__________________
... |
|
|||||
|
т.е. что бы при вызове определенной внешней функции, автоматически вызывалась другая..
__________________
... |
|
|||||
|
ну я и предлагаю вместо вызова внешней функции вызывать свою, которая уже сама сначала вызовет внешнюю, а потом завершающую... разве не выход?
|
|
|||||
|
Цитата:
firstFunction(); afteFirstFunction(); Но есть потребность дописать комманды к функции вызов которой я не инициирую. Скажем с какого-нибудь чужого загруженного свф, или своего же вызванного setinterval, в месте которой я не контролирую в памяти... Ну например во внутреннем загруженном клипе другого разработчика используется какой-то метод pauseThisAction(), a я хочу что бы паралельно вызывался при вызове этого метода вызывался и мой, метод корневого клипа .. pauseGlobalAction(), Я могу метод загруженного клипа либо просто удалить записав новый, либо ничего не менять, а хотелось бы приписать к нему вызов своего метода... Но он изначально не имеет точки вызова...
__________________
... |
|
|||||
|
А раньше подобный вопрос не обсуждался в форуме..?
Сложно подобрать ключевое слово для поиска Никто не помнит? как назвать то лучше? ![]() "конкатанация функций", "Точка вызова произвольной функции"
__________________
... |
|
|||||
|
.grin! wuz here
|
firstFunction();
afteFirstFunction(); afteFirstFunction будет вызвана только после окончания работы firstFunction. во флеше только 1н поток. |
|
|||||
|
Цитата:
Никто обратного и не утверждает ![]()
__________________
... |
|
|||||
|
Вопрос в том можно ли дать такие дерективы плееру, что бы зная только имя и путь к функции, но не имея доступа к ее исходникам (as), при каждом вызове этой функции, добавить автоматический вызов другой функции.
__________________
... |
![]() |
![]() |
Часовой пояс GMT +4, время: 05:54. |
|
|
« Предыдущая тема | Следующая тема » |
|
|