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

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

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

Регистрация: Mar 2009
Сообщений: 49
По умолчанию не удаляет Интервал?

Добрый день..

Я сделал движение объекта под маской ,(типо прокрутка).. Сделал через setInterval , и не понимаю в чем ошибка .

Код AS1/AS2:
stop();
btn1.onPress=function()
{
	go_r();
};
btn2.onPress=function()
{
	go_l();
};
function go_r()
{
	var in1=setInterval(gogo,5);
};
function go_l()
{
	var in2=setInterval(gogoss,15);
};
 
 
 
function gogo()
{
	if(m1._x>-110)
	{
	m1._x=m1._x-3;
	trace(	m1._x);
	}
	else if(m1._x<-110)
	{
	clearInterval(in1);
	}
 
};
 
function gogoss()
{
	if(m1._x<200)
	{
	m1._x=m1._x+3;
	trace(	m1._x);
	}
		else 
			{
			clearInterval(in2);
			}
 
};
прикрепил исходник , он как бы заедает, т.к при нажатие кнопки назад, продолжает работу функция из кнопки вперед ... что не так? Заранее спасибо
Вложения
Тип файла: rar test_scro.rar (23.6 Кб, 42 просмотров)

Старый 27.11.2009, 10:54
Juice_Green вне форума Посмотреть профиль Отправить личное сообщение для Juice_Green Посетить домашнюю страницу Juice_Green Найти все сообщения от Juice_Green
  № 2  
Ответить с цитированием
Juice_Green
 
Аватар для Juice_Green

Регистрация: Dec 2005
Адрес: Новосибирск
Сообщений: 529
Отправить сообщение для Juice_Green с помощью ICQ Отправить сообщение для Juice_Green с помощью Skype™
как бы при нажатии кнопки назад надо удалить интервал, вызванный нажатием кнопки вперед

Старый 27.11.2009, 10:54
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 3  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Исходник не смотрел, но возможно, ваша ошибка в том, что вы не учитываете области видимости. Интервал вы создаете внутри функции, in1 у вас локальная переменная, которая видна только внутри нее:
Код AS1/AS2:
var in1=setInterval(gogo,5);
А стирать вы пытаетесь совсем другой (несуществующий) интервал:
Код AS1/AS2:
clearInterval(in1);

Старый 27.11.2009, 10:54
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 4  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Переменные объявленные внутри функции, считаются локальными и видны только внутри этой функции.

Ы! Тройной ответ =)

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

Регистрация: Mar 2009
Сообщений: 49
Точно , спасибо. !
Код AS1/AS2:
var in1:Number=new Number();
var in2:Number=new Number();
in1=1;
in2=1;
stop();
btn1.onPress=function()
{
	go_r();
};
btn2.onPress=function()
{
	go_l();
};
function go_r()
{
	in1=setInterval(gogo,5);
};
function go_l()
{
	in2=setInterval(gogoss,15);
};
 
 
 
function gogo()
{
	if(m1._x>-110)
	{
	m1._x=m1._x-3;
	trace(	m1._x);
	}
	else if(m1._x<-110)
	{
	clearInterval(in1);
	}
 
};
 
function gogoss()
{
	if(m1._x<200)
	{
	m1._x=m1._x+3;
	trace(	m1._x);
	}
		else 
			{
			clearInterval(in2);
			}
 
};

Старый 27.11.2009, 18:03
jony_e вне форума Посмотреть профиль Отправить личное сообщение для jony_e Найти все сообщения от jony_e
  № 6  
Ответить с цитированием
jony_e

Регистрация: Jan 2008
Сообщений: 87
Цитата:
Сообщение от udaaff Посмотреть сообщение
Переменные объявленные внутри функции, считаются локальными и видны только внутри этой функции.

Ы! Тройной ответ =)
а если объявлять через _global? например _global.a=1;

Старый 28.11.2009, 23:06
fessor вне форума Посмотреть профиль Отправить личное сообщение для fessor Найти все сообщения от fessor
  № 7  
Ответить с цитированием
fessor

Регистрация: Oct 2009
Сообщений: 101
использовать _global для решения локальных задач считается дурным тоном, будте вежливыми ))

Старый 29.11.2009, 14:42
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 8  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Код AS1/AS2:
_parent
__________________
return this...

Старый 29.11.2009, 16:05
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 9  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Цитата:
Сообщение от AlexCooper Посмотреть сообщение
Код AS1/AS2:
_parent
Автор уже решил свой вопрос и совершенно правильно.
А вот _parent внутри его функций даст undefined.

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

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

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


 


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


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