|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
...
модератор форума
Регистрация: 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
|
код покажите.
|
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
да дело не в коде.. я еще не написал, то что задумал, потому что думаю как это лучше реализовать. Чета мне казалось просто что где то как то можно было вот так вот сделать...
|
|
|||||
Регистрация: 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); |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
я понимаю, что её можно включить хоть в десять наборов, но вызываться то она по новой будет, после перезаписи онинтерфрэйма, и все что в ней работало, соответственно, начнет работать с начала, а не продолжать функционировать, как будто бы ничего не произошло.
|
|
|||||
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
|
Цитата:
Самый простой способ, это создать массив методов и их аргументов и флаг запуска, и внутри onEnteFrame в цикле из прогонять. Так можно менять порядок их вызова, удалять, добавлять, аргументы, а через флаг запускать вызов или нет. |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Цитата:
Цитата:
|
|
|||||
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
Извините, а где начало у функции?
|
Часовой пояс GMT +4, время: 20:37. |
|
« Предыдущая тема | Следующая тема » |
|
|