Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 03.02.2013, 11:58
Gasoline вне форума Посмотреть профиль Отправить личное сообщение для Gasoline Найти все сообщения от Gasoline
  № 1  
Ответить с цитированием
Gasoline
 
Аватар для Gasoline

Регистрация: Dec 2011
Сообщений: 15
Arrow Выполнение функций по клику

Есть огромное количество самых разных функций. Необходимо выполнять их по одной по каждому клику.
Код AS1/AS2:
// список функций
trace('Hello');
myFunction(1, 20);
myAnotherFunction();
// при первом клике выполняется функция 'trace', при втором 'myFunction' и т.д.
Как это лучше реализовать?

Старый 03.02.2013, 13:28
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
в массив их пометить и по каждому клику увеличивать итератор на 1

Старый 03.02.2013, 18:43
Gasoline вне форума Посмотреть профиль Отправить личное сообщение для Gasoline Найти все сообщения от Gasoline
  № 3  
Ответить с цитированием
Gasoline
 
Аватар для Gasoline

Регистрация: Dec 2011
Сообщений: 15
У меня получилось так
Код 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);
};
Работать работает, но думаю можно и по лучше без шаманства.

Старый 03.02.2013, 20:57
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 4  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
но думаю можно и по лучше без шаманства.
Наверняка можно. Все зависит от конкретной задачи. Что-то мне подсказывает что это вообще можно сделать по-другому.
Зачем вам вызывать функции по порядку? Что конкретно должно происходить при этом?

Старый 04.02.2013, 11:07
Gasoline вне форума Посмотреть профиль Отправить личное сообщение для Gasoline Найти все сообщения от Gasoline
  № 5  
Ответить с цитированием
Gasoline
 
Аватар для Gasoline

Регистрация: Dec 2011
Сообщений: 15
Всё что угодно, но в основном должны появляться картинки и определенный текст. Подробней здесь.

Старый 04.02.2013, 15:32
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 6  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Можно без итератора, если с Array.shift() поработать.

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

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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