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

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

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

Регистрация: Aug 2007
Сообщений: 124
Checked Как очистить интервал из подобъекта?

Хай. Есть основной фильм в конце которого задан вот этот код
Код:
carusel._alpha = 100;
stop();
function startAgain():Void
{
	this.gotoAndPlay(4);
	carusel._alpha = 0;
	meny_mc._alpha = 0;
	clearInterval(getBack);
	trace( "interval has been cleared");
};

var getBack:Number = setInterval(startAgain, 20000);
из которого видно, что после дватцати секунд фильм начнет свое проигрывание из 4го кадра. К оснвоному фильмоу путем loadMovie("carusel.swf", carusel), подгружаю другой мувик где на кнопку прописываю clearInterval(getBack). Но этот код не срабатывает. Где я сделал ошибку?

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

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
getBack находится на уровне видимости _root, а кнопка в подгружаемом клипе находится на уровне видимости _root.carusel.имяКнопки, где переменной getBack никогда не было. Вывод - нужно указывать правильный путь к переменной в подгружаемом мувике.
__________________
4am is time to rock

Старый 18.11.2008, 01:17
solo19770701 вне форума Посмотреть профиль Отправить личное сообщение для solo19770701 Найти все сообщения от solo19770701
  № 3  
Ответить с цитированием
solo19770701

Регистрация: Aug 2007
Сообщений: 124
to DarkLight: а я думал, что setInterval and removeInterval глобальные функции, и не важно из какой части клипа я ее вызываю.

Т.е по твоему если я пропишу clearInterval(_root.getBack) в клипе, то все должно заработаь?

Старый 18.11.2008, 02:17
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 4  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
да (кроме случая, когда подгружаемому swf принудительно установлен _lockroot = true)
setInterval является глобальной функцией в том смысле, что вызывать можно отовсюду, а вот getBack - обычная локальная переменная-число. От того, что мы скормили глобальной функции локальный аргумент, он сам глобальным не становится, что логично.
__________________
4am is time to rock

Старый 18.11.2008, 18:48
solo19770701 вне форума Посмотреть профиль Отправить личное сообщение для solo19770701 Найти все сообщения от solo19770701
  № 5  
Ответить с цитированием
solo19770701

Регистрация: Aug 2007
Сообщений: 124
to DarkLight: спасибо за разширенный ответ.
Нужет совет, а то у самого уже шарики за ролики заезжают. В основном фильме в конце стоит - var walkBack:Number = setInterval(goBack, 20000). В фильме есть мувик с двумя кнопками, при на жатии на btn1 происходит остановка интервала - clearInterval(_root. walkBack), а при нажатии на bnt2 должно произойти возобновление интервала. Вот здесь я и умучился. Не как не могу возобновить интервал. Не могу вызвать интервал из основной линейки walkBack при нажатии кнопки btn2, а при попытке создать второй интеварл в функции кнопки btn2 - var secondButtonInterval:Number = setInterval(goBackAgain, 20000) не могу его очистить из кнопки btn1. Проще говоря btn1 должна останавливать все интервалы, а btn2 должна возобновлять таймер.
Изображения
 


Последний раз редактировалось solo19770701; 20.11.2008 в 21:43.
Старый 20.11.2008, 21:59
solo19770701 вне форума Посмотреть профиль Отправить личное сообщение для solo19770701 Найти все сообщения от solo19770701
  № 6  
Ответить с цитированием
solo19770701

Регистрация: Aug 2007
Сообщений: 124
Всем доброго времени суток. Вобщем что я имею на данный момент:
Код:
//////// btn1

function released()
{
	//BONUS Section
	trace("released");
	clearInterval(_root.getBack);
	clearInterval(getUnReleased);
}

////// btn2

function unReleased()
{
	trace ("unReleased");
	function playAgain():Void
	{
		_root.gotoAndPlay(4);
		carusel._alpha = 0;
		meny_mc._alpha = 0;
		clearInterval(getUnReleased);
		trace( "unReleased button has been pushed");
	};
	
	var getUnReleased:Number = setInterval(playAgain, 6000);

//////////// root

carusel._alpha = 100;
stop();
function startAgain():Void
{
	_root.gotoAndPlay(4);
	carusel._alpha = 0;
	meny_mc._alpha = 0;
	clearInterval(getBack);
	trace( "interval has been cleared");
};

var getBack:Number = setInterval(startAgain, 20000);
проблемма в том что clearInterval(getUnReleased); в btn1 не работает. Как пофиксить, какие нибудь идеи. Или есть другие пути решения данной задачи?

Старый 21.11.2008, 02:55
faust.d503 вне форума Посмотреть профиль Отправить личное сообщение для faust.d503 Найти все сообщения от faust.d503
  № 7  
Ответить с цитированием
faust.d503
 
Аватар для faust.d503

Регистрация: Nov 2008
Адрес: Москва
Сообщений: 52
getUnReleased определено только внутри функции unReleased и нигде больше, значит ниоткуда кроме как из этой функции его увидеть нельзя.
определите переменную getUnReleased в другом месте.

Старый 21.11.2008, 04:35
solo19770701 вне форума Посмотреть профиль Отправить личное сообщение для solo19770701 Найти все сообщения от solo19770701
  № 8  
Ответить с цитированием
solo19770701

Регистрация: Aug 2007
Сообщений: 124
to faust.d503: я пытался вынести var getUnReleased:Number = setInterval(playAgain, 6000); за пределы функции кнопки btn2, но в таком случае я теряю контроль над итервалом, т.е. идея закючалась в том что бы при нажатии кнопки срабатывал интервал.

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

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

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


 


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


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