Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Оптимизация кода (http://www.flasher.ru/forum/showthread.php?t=93944)

Оливер Перри 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

Цитата:

Сообщение от Mr. Fixit
не совсем правильно, так как при нажатии на кнопку будет выполнятся два действия.. нажатие на кнопку и на _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

Цитата:

Сообщение от Kikasso
Теперь понятно? Ты присваевал кнопке результат работы функции, а не саму ее.

Во, вот эту тонкость я и хотел понять. Спасибо.


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

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