Форум 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=193881)

Gasoline 03.02.2013 11:58

Выполнение функций по клику
 
Есть огромное количество самых разных функций. Необходимо выполнять их по одной по каждому клику.
Код AS1/AS2:

// список функций
trace('Hello');
myFunction(1, 20);
myAnotherFunction();
// при первом клике выполняется функция 'trace', при втором 'myFunction' и т.д.

Как это лучше реализовать?

caseyryan 03.02.2013 13:28

в массив их пометить и по каждому клику увеличивать итератор на 1

Gasoline 03.02.2013 18:43

У меня получилось так
Код AS1/AS2:

var iF:Number = 0; // итератор
 
var myArray:Array = new Array(
'myFunction_5-10',
'myAnotherFunction_1-5-10',
'trace_"hello"'
/* создаем массив с функциями.
Имя функций от аргументов отделяем символом "_".
Аргументы друг от друга "-"
*/

);
 
_root.onMouseUp = function() {
        currentFunction = myArray[iF].split('_');
        // разделяем имя функции от аргументов
        var arg:Array = currentFunction[1].split('-');
        // разделяем аргументы
        _global[currentFunction[0]].apply(null,arg);
        iF++;
        // вызываем функцию и увеличиваем счетчик
};
 
// примеры функций
_global.myFunction = function(a, b) {
        trace(b+'/'+a+'='+b/a);
};
 
_global.myAnotherFunction = function() {
        trace(arguments);
};

Работать работает, но думаю можно и по лучше без шаманства.

caseyryan 03.02.2013 20:57

Цитата:

но думаю можно и по лучше без шаманства.
Наверняка можно. Все зависит от конкретной задачи. Что-то мне подсказывает что это вообще можно сделать по-другому.
Зачем вам вызывать функции по порядку? Что конкретно должно происходить при этом?

Gasoline 04.02.2013 11:07

Всё что угодно, но в основном должны появляться картинки и определенный текст. Подробней здесь.

Hauts 04.02.2013 15:32

Можно без итератора, если с Array.shift() поработать.

И кстати, это плохая практика так называть переменные: "iF".


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

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