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

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

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

Регистрация: Oct 2009
Сообщений: 6
Cool Вызов функции с параметрами через метод

Подскажите как правильно вызвать функцию с параметрами через методы: addEventListener и setInterval.
Например вот рабочий код:
Код AS3:
var inter1;
var Mr;
var c:MouseEvent;
Knopka.addEventListener(MouseEvent.ROLL_OVER, reg4 );
 
function reg4( c ){
	inter1 = setInterval(izm14,50);
}
function izm14( ){
	Mr +=  2;
}
А как сделать чтобы функция reg4 вызывалась с параметром интервала, а izm14 с параметром числа на которое надо изменить Mr.
Я попробовал:
Код AS3:
var inter1;
var Mr;
var c:MouseEvent;
Knopka.addEventListener(MouseEvent.ROLL_OVER, reg4(50,2) );
 
function reg4( c, K, D ){
 
	inter1 = setInterval(izm14(D),K);
}
function izm14(B){
	Mr +=  B;
}
но так ничего не работает. Так как же вызывать функции с параметрами через методы?

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

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Два первых аргумента метода addEventListener представляют из себя строку (String), описывающую тип события, и ссылку на функцию (объект класса Function, так как этот класс является "сложным", его экземпляры передаются по ссылке, пусть знающие люди меня поправят, если я ошибся). Поэтому следует передавать значения через внешние переменные. Мне неизвестен полный код, но из того, что видно, можно сделать следующее:
Код AS3:
// не забывайте про типизацию переменных
var inter1:int;
// и их инициализацию
var Mr:int = 0;
 
// эта переменная странна для меня,
// я ее закомментирую и изменю сигнатуру функции reg4()
// var c:MouseEvent;
// А вместо нее создам другие переменные
var delay:int = 50; // K
var summand:int = 2; // B
 
Knopka.addEventListener(MouseEvent.ROLL_OVER, reg4);
 
// Также не стоит забывать о типизации параметров функции
// и возвращаемого значения
function reg4( event:MouseEvent ):void {
	// вот здесь, скажем, можно изменить delay и summand
	delay = 200;
	summand = 3;
	inter1 = setInterval(izm14, delay);
}
function izm14():void {
	Mr += summand;
}
Добавлено через 11 минут
Да, expl был прав насчет setInterval, он дополнительные параметры передает.

Добавлено через 1 час 32 минуты
А вот, что по этому поводу изрекает -De-.


Последний раз редактировалось bav; 01.03.2011 в 01:22.
Старый 01.03.2011, 15:48
_Ice_ вне форума Посмотреть профиль Отправить личное сообщение для _Ice_ Найти все сообщения от _Ice_
  № 3  
Ответить с цитированием
_Ice_

Регистрация: Oct 2009
Сообщений: 6
Спасибо за помощь

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

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

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


 


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


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