![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Есть ли какая нибудь возможность записать несколько функций в один и тоже обработчик событий?
К примеру. Я записал функцию в event handler onEnterFrame мувиклипа mc , можено ли еще приписать функцию в этот же event handler этого же мувика не перезаписывая старую? |
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
Можно, но осторожно. Если вы допишете функцию, а потом еще раз допишете, а потом еще раз...
Что - то вроде onEnterFrame = function(){ trace(1); }
//сохраним
oef = onEnterFrame;
//перепишем
onEnterFrame = function(){ oef(); trace(2); }
Извините, что коряво написано, просто принцип. И надо быть осторожным с областью видимости. Последний раз редактировалось Kikasso; 17.07.2007 в 04:14. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
ни первое, ни второе не подходит к сожалению..
Сформулирую немного подругому... Работает 1 функция в onEnterFrame, если мы запихнем в него другой набор инструкций (1+2), то получается, что первая функция по новой вызовется... а хотелось бы, чтобы она не прерывалась, а просто начала вторая еще работать + к первой в этом же обработчике. p.s. setInterval пожалуйста не предлагать, мне интересно именно про обработчики Последний раз редактировалось udaaff; 17.07.2007 в 04:31. |
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
Цитата:
Можно включить функцию в оба набора:
function f1(){ trace(1); }
function f2(){ trace(22); }
function f3(){ trace(333); }
function f4(){ trace(4444); }
function do1(){
f1();
f2();
}
function do2(){
f1();
f3();
f4();
}
onEnterFrame = do1;
setTimeout(function(){ trace('---------'); delete onEnterFrame;}, 500);
setTimeout(function(){ trace('---------'); onEnterFrame = do2;}, 2000);
setTimeout(function(){ trace('---------'); delete onEnterFrame;}, 2200);
setTimeout(function(){ trace('---------'); onEnterFrame = do1;}, 4000);
setTimeout(function(){ trace('---------'); onEnterFrame = null;}, 4400);
|
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Цитата:
Самый простой способ, это создать массив методов и их аргументов и флаг запуска, и внутри onEnteFrame в цикле из прогонять. Так можно менять порядок их вызова, удалять, добавлять, аргументы, а через флаг запускать вызов или нет. |
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
код покажите.
|
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
да дело не в коде.. я еще не написал, то что задумал, потому что думаю как это лучше реализовать. Чета мне казалось просто что где то как то можно было вот так вот сделать...
|
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
я понимаю, что её можно включить хоть в десять наборов, но вызываться то она по новой будет, после перезаписи онинтерфрэйма, и все что в ней работало, соответственно, начнет работать с начала, а не продолжать функционировать, как будто бы ничего не произошло.
|
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Цитата:
Цитата:
|
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
Извините, а где начало у функции?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 22:31. |
|
|
« Предыдущая тема | Следующая тема » |
|
|