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

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

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

Регистрация: Aug 2003
Сообщений: 204
По умолчанию перемещение по таймлайну используя якоря

В общем смысл такой, сделать кнопки при которых запускался EnterFrame скрипт перемещения по таймлайну, если позиция больше якоря отнимать, если меньше прибавлять:
Код:
		if (_currentframe>"FrameLebel") {
			_currentframe--;
		}
		if (_currentframe<"FrameLebel") {
			_currentframe++;
		}
Соответственно FrameLebel - имя якоря на таймлайне.
Как такое реализовать во 2-м экшн скрипте ?

Старый 15.09.2008, 19:27
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 2  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
Код:
var ok:Boolean = false
my_btn.onPress = function(){
ok = true
}
this.onEnterFrame = function(){
if(ok){
//ваш код
}
}

Старый 15.09.2008, 20:04
DJ_Baton вне форума Посмотреть профиль Отправить личное сообщение для DJ_Baton Найти все сообщения от DJ_Baton
  № 3  
Ответить с цитированием
DJ_Baton

Регистрация: Aug 2003
Сообщений: 204
Хм... А если в таком варианте...
Помогите найти в чем ошибка
Код:
stop();
var b_pressed = false;
var zzz;
onEnterFrame = function () {
	trace(b_pressed+"  "+_root._currentframe);
	if (b_pressed && _root._currentframe<zzz) {
		_root.gotoAndStop(_root._currentframe+1);
	} else if (!b_pressed && _root._currentframe>1) {
		_root.gotoAndStop(_root._currentframe-1);
	}
};
mb1.onRelease = function() {
	zzz = 1;
	b_pressed = !b_pressed;
};
mb2.onRelease = function() {
	zzz = 15;
	b_pressed = !b_pressed;
};
mb3.onRelease = function() {
	zzz = 30;
	b_pressed = !b_pressed;
};
mb4.onRelease = function() {
	zzz = 45;
	b_pressed = !b_pressed;
};
zzz - переменная отвечающая за тот фрейм куда надо перейти, mb1, mb2, mb3, mb4 - кнопки которые меняют переменную и говорят куда идти

Скрипт работает но происходит следующее - при первом клике оно переходит куда надо, при повторном откатывает таймлайн в первый кадр, вместо того чтобы переходить к тому кадру куда было сказано, т.е. находясь на 15-м и нажав на 30-й оно откатывает на 1-й вместо того чтобы перейти плавно с 15-го в 30-й (((((

Старый 15.09.2008, 21:11
DJ_Baton вне форума Посмотреть профиль Отправить личное сообщение для DJ_Baton Найти все сообщения от DJ_Baton
  № 4  
Ответить с цитированием
DJ_Baton

Регистрация: Aug 2003
Сообщений: 204
Извеняюсь за флуд....
блин вроде по логике всё просто но ничерта не работает
Код:
mb1.onRelease = function() {
     onEnterFrame = function () {
          if (_root._currentframe>1) {
               _root._currentframe--; //Если кадр больше нужного отнимаем
          }
          if (_root._currentframe<1) {
               _root._currentframe++;//Если кадр меньше нужного наращиваем
          }
     };
};

mb2.onRelease = function() {
     onEnterFrame = function () {
          if (_root._currentframe>15) {
               _root._currentframe--; //Если кадр больше нужного отнимаем
          }
          if (_root._currentframe<15) {
               _root._currentframe++;//Если кадр меньше нужного наращиваем
          }
     };
};

mb3.onRelease = function() {
     onEnterFrame = function () {
          if (_root._currentframe>30) {
               _root._currentframe--; //Если кадр больше нужного отнимаем
          }
          if (_root._currentframe<30) {
               _root._currentframe++;//Если кадр меньше нужного наращиваем
          }
     };
};
создаю несколько таких кнопок но ничерта не работает, почему ???
функция вроде простая, если меньше двигаемся по таймлайну вперед, если больше назад

Старый 15.09.2008, 21:55
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 5  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
_currentframe только для чтения.
Надо использовать gotoAndStop () или gotoAndPlay ()
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 15.09.2008, 22:15
DJ_Baton вне форума Посмотреть профиль Отправить личное сообщение для DJ_Baton Найти все сообщения от DJ_Baton
  № 6  
Ответить с цитированием
DJ_Baton

Регистрация: Aug 2003
Сообщений: 204
Цитата:
Сообщение от iNils Посмотреть сообщение
_currentframe только для чтения.
Надо использовать gotoAndStop () или gotoAndPlay ()
Спасибо огромное, не думал что всё так банально, всегда gotoAndPlay юзал для жесткого перемещения

Вот посмотри правильно функцию написал ? (походу работает вроде )

Код:
stop();
i = _root._currentframe;
mb1.onRelease = function() {
	onEnterFrame = function () {
		if (_root._currentframe>15) {
			_root._currentframe = gotoAndPlay(i--);
		}
		if (_root._currentframe<15) {
			gotoAndPlay(i++);
		}
		if (_currentframe=15) {
			stop();
		}
	};
};

mb2.onRelease = function() {
	onEnterFrame = function () {
		if (_root._currentframe>30) {
			_root._currentframe = gotoAndPlay(i--);
		}
		if (_root._currentframe<30) {
			gotoAndPlay(i++);
		}
		if (_currentframe=30) {
			stop();
		}
	};
};

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

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
вы к свойству, которое только для чтения присваиваете значение функции, которая ничего не возвращает
Код:
stop();
function check(x) {
	if (_currentframe > x) prevFrame();
	else if (_currentframe < x) nextFrame();
	else {stop(); delete onEnterFrame;}
};
mb1.onRelease = function() {
	onEnterFrame = function(){ check(15); }
};
mb2.onRelease = function() {
	onEnterFrame = function(){ check(30); }
};


Последний раз редактировалось Mnilionic; 16.09.2008 в 06:35.
Старый 16.09.2008, 05:01
DJ_Baton вне форума Посмотреть профиль Отправить личное сообщение для DJ_Baton Найти все сообщения от DJ_Baton
  № 8  
Ответить с цитированием
DJ_Baton

Регистрация: Aug 2003
Сообщений: 204
Mnilionic, огромное спасибо, не представляешь как помог

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

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

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


 


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


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