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

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

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

Регистрация: Jun 2007
Сообщений: 1
По умолчанию Проблема с кодом для кнопок

Код AS1/AS2:
stop();
import mx.transitions.Tween;
import mx.transitions.easing.*;
Stage.scaleMode = "noScale";
_root.buttons.but01._quality = "BEST";
//Проверяем, если переменная varStopFlag не была ещё создана, то создаём её.
//Это необходимо потому, что в ходе проигрывания мы будем проматывать вперёд/назад
//нашу флешку и, так как весь код находится в первом кадре, он будет периодически
//срабатывать. И если в ходе проигрывания мы нажали STOP и у нас varStopFlag станет true,
//то без этой проверки, проигрывание первого кадра опять сделает из varStopFlag  false.
if (varStopFlag == undefined) {
	//Переменная, которая будет фиксировать, остановлена у нас флешка сейчас, или нет
	var varStopFlag:Boolean = false;
	//Переменная, которая будет фиксировать, включено ли воспроизведение задом наперёд
	var varReversFlag:Boolean = false;
}
 
 
//События MovieClip объектов, что это такое?
//на самом деле сталкиваемся мы с ними почти накаждом сайте, не подозревая того
//сами. Если вы навели на Movie Clip, то тут же срабатывает событие onRollOver.
//Нажать — onPress. Нажать и отпустить — onRelease. Убрать курсор мышки с
//объекта — onRollOut;
//Очень тяжело представить себе интерактивный фильм (читай флешку), в котором
//бы полноценно участвовал пользователь, без использования этих событий.
//Есть определённый список событий, которые по умочанию встроены в те или иные
//объекты.
//Чтобы отследить событие, нуждно задать ему какое-тодействие.
//Так же при надобности всегда можно удалить то, или иное событие.
//
stop_mc._visible = false;
menu._alpha = 0;
menu._xscale = menu._yscale=90;
//onRollOver
//Событие, которое будет срабатывать при наведении мышки на клип
menu.onRollOver = function() {
 
	//Если Была запущена функция ПРОСМОТРА-ЗАДОМ-НАПЕРЁД удаляем её (см. ниже)
	clearInterval(_root.buttons.but01.revers_int);
	//Если до этого флешка была остановлена и переменная varStopFlag была равна true
	//делаем её равной flase, т.к. проигрывание флешки возобновляется.
	_root.buttons.but01.varStopFlag = false;
	//Если флешка до этого проигрывалась задом наперёд, и переменная varReversFlag была
	//равна true, то делаем её равной false, т.к. возобновляется нормальное воспроизведение
	_root.buttons.but01.varReversFlag = false;
	//В момент нажатия делаем фон немного прозрачней
	this.red_mc._alpha = 75;
	//Начинаем проигрывание
	_root.buttons.but01.play();
};
menu.onPress = function() {
	_root.gotoAndPlay(66);
};
 
//onReleaseOutside
//Событие, которое будет срабатывать при НАЖАЛ-ОТПУСТИЛ за пределами объекта,
//т.е. если вы нажали на клип, зажали мышку, увели мышку за пределы клипа,
//то сработает именно это событие
//onRollOut 
//Событие, которое будет срабатывать, когда ты уведёшь мышку с клипа
//Одни и те же действия можно присваиватьразным событиям.
//Синтаксис таков:
//событие_1 = событие_2 = function(){ действие }
//
//так же действия одного события можно задать и другому слудующим образом:
//событие_1=событие_2();
//Причём, скобки после событие_2 ОБЯЗАТЕЛЬНЫ.
//Кто не понял вместо событие_1 исобытие_2 можно подставить любые другие
//события объекта, навпример onRelease, onRollOVer и т.д.
menu.onRollOut = menu.onReleaseOutside=function () {
	//Если до этого уже было запущено проигрывание ЗАДОМ-НАПЕРЁД, то удаляем его, чтобы
	//не было повторного вызова
	clearInterval(_root.buttons.but01.revers_int);
	_root.buttons.but01.varStopFlag = false;
	//Делаем varReversFlag равной true, т.к. мы запускаем проигрывание задом наперёд
	_root.buttons.but01.varReversFlag = true;
	this.red_mc._alpha = 75;
	//Останавливаем обыкновенное проигрывание
	_root.buttons.but01.stop();
	//Запускаем функцию, проигрывания флешки, задом наперёд
	//Запись setInterval(revers_func, 1000/30); означает, что функция revers_func (см. ниже)
	//будет вызываться 30 раз в одну секунду. Число 1000 означает 1 секунду, т.к.
	//в setInterval время задаётся в миллисекундах.
	//1 секунда = 1000 миллисекунд
	_root.buttons.but01.revers_int = setInterval(revers_func, 1000/30);
};
//ФУНКЦИЯ ПЕРЕМОТКИ КАДРОВ НАЗАД
function revers_func() {
	//Проверяем, если текущий кадр флешки не равен первому (1), то переходим на
	//предыдущий кадр.
	//Если же текущим кадром является первый (1), то переходим к последнему кадру,
	//делая перемотку циклической
	if (_root.buttons.but01._currentframe != 1) {
		_root.buttons.but01.gotoAndStop(_root.buttons.but01._currentframe-1);
	} else {
		_root.buttons.but01.stop();
	}
}
function forward_func() {
	//Проверяем, если сейчас проигрывается непоследний кадр флешки, то переходим к
	//следующемукадру.
	//Если сейчас проигрывается последний кадр, то переходим к первому, и делаем
	//перемотку замкнутой по кругу.
	if (_root._currentframe != _root._totalframes) {
		_root.gotoAndStop(_root._currentframe+1);
	} else {
		_root.gotoAndStop(1);
	}
}
//**
Этот код я нашел на этом форуме, все прекрасно и он работает, НО

у меня есть 2 комплекта кнопок с этим кодом в одной флехе: один комплект это навигация по фреймам мувика, а второй внутри одного из фреймов и он там именно для него.

И проблема в том, что когда я запускаю флешку и перехожу в тот фрейм (с помощью кнопок навигации) где второй комплект внутренних кнопок, то с первого раза все работает отлично. Но стоит мне полазить по другим фреймам и вновь вернуться в этот, то те кнопки (которые внутри фрейма) на которые я в прошлом нажимал перестают работать, и работаю только те, которые не нажимались при первом заходе в этот фрейм. В чем трабл может быть? ТОгда как с кнопками навигации все ОТЛ.

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

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

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


 


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


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