Вход

Просмотр полной версии : Оптимизация кода


Оливер Перри
01.04.2007, 11:03
Имеются два разных события выполняющие одно и тоже действие:

_root.onMouseDown = function()
{
Код выполняищий действия А
};

but.onPress = function()
{
Код выполняищий действия А
};

Как сделать так что бы в теле _root.onMouseDown и but.onPress два раза не писать один и тот же "Код выполняищий действия А" а эти два события могли бы к ниму обратиться?

Типа:
function action_A()
{
Код выполняищий действия А
}
_root.onMouseDown = function()
{
action_A();
};

but.onPress = function()
{
action_A();
};
Мне кажется что как то коряво, есть ли еще способы обращения к Коду выполняищему действия А

Kikasso
01.04.2007, 11:31
function action_A()
{
trace( "function action_A called from " + this);
}
_root.onMouseDown = but.onPress = action_A;

Mr. Fixit
01.04.2007, 11:38
не совсем правильно, так как при нажатии на кнопку будет выполнятся два действия.. нажатие на кнопку и на _level0(тоесть _root)

Kikasso
01.04.2007, 11:43
не совсем правильно, так как при нажатии на кнопку будет выполнятся два действия.. нажатие на кнопку и на _level0(тоесть _root)
Я если честно тоже не понял, зачем тут вообще кнопка нужна. Что-то автор недоговаривает.

Mr. Fixit
01.04.2007, 11:46
Думаю это простой *****.. просто дядя учица

Оливер Перри
01.04.2007, 13:37
function action_A()
{
********************
}
but.onPress = action_A;
А я вот так делаю
function action_A()
{
********************
}
but.onPress = action_A();
Потому и не получалось скобки лишние

Kikasso
01.04.2007, 14:30
Смотря что делает твоя функция. Если она возвращает функцию, то вполне можно так писать:
function action_A()
{
return function(){ trace(this); };
}
but.onPress = action_A();
Теперь понятно? Ты присваевал кнопке результат работы функции, а не саму ее.

Оливер Перри
01.04.2007, 15:27
Теперь понятно? Ты присваевал кнопке результат работы функции, а не саму ее.
Во, вот эту тонкость я и хотел понять. Спасибо.