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

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

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

Регистрация: Oct 2002
Адрес: SPb
Сообщений: 151
Отправить сообщение для skald с помощью ICQ

две кнопки, две картинки
навел на кнопку, катинка плавно заменяется необходимой:
все хорошо, работает, красиво
но появилась проблема: прибыстром переходе с одной кнопки на другую, нарушается цикл и работает не правильно.
добавил флаг (cikl). поидее, следующая функция не должна выполняться, пока не закончится предыдущая. Но, получилось, что при резкой смене кнопок он просто останавливается.

ошибка наверно в расположении if (т.к. выполняется проверка после запуска другой функции). Но как его расположить не догоняю.
или может применять onEnterFrame не к this, а к _root.main.clip1/2?? .... вроде так работает, Но при резкой смене кнопок и возврате(1-2-1) картинка остается неизменной. мне в голову приходит только добавить else и флаг ... или использовать другой цикл??


help

Код:
var cikl:Boolean = false;

bot1.onRollOver = function() {
	_root.main.bot1.play();
	if (cikl == false) {
		cikl = true;
		_root.main.clip1.swapDepths(_root.main.etalon);
		this.onEnterFrame = function() {
			_root.main.clip1.mask1._alpha -= 25;
			if (_root.main.clip1.mask1._alpha<=0) {
				_root.main.clip1.mask1._alpha = 0;
				_root.main.clip2.mask2._alpha = 100;
				_root.main.clip1.swapDepths(_root.main.etalon);
				cikl = false;
				delete this.onEnterFrame;
			}
		};
	}
};
bot1.onRollOut = function() {
	playBack.apply(bot1);
};
bot2.onRollOver = function() {
	_root.main.bot2.play();
	if (cikl == false) {
		cikl = true;
		_root.main.clip2.swapDepths(_root.main.etalon);
		this.onEnterFrame = function() {
			_root.main.clip2.mask2._alpha -= 25;
			if (_root.main.clip2.mask2._alpha<=0) {
				_root.main.clip1.mask1._alpha = 100;
				_root.main.clip2.mask2._alpha = 0;
				_root.main.clip2.swapDepths(_root.main.etalon);
				cikl = false;
				delete this.onEnterFrame;
			}
		};
	}
};


Последний раз редактировалось skald; 17.09.2008 в 19:24.
Создать новую тему   Часовой пояс GMT +4, время: 04:38.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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