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

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

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

Регистрация: Jul 2010
Адрес: Устойчивое
Сообщений: 13
Smile Почему мувик не реагирует на stop();

Приветствую вновь братцы.

Еще давно я спрашивала как работать с prevFrame. Тогда вроде все получилось. В этот раз опять столкнулась с использованием обратного проигрывания анимации в мувике. Однако столкнулась с проблемой что мувик не реагирует на stop(); на таймлайне.

То есть по уму две кнопки, нажимаешь одну, мувик проигрывается вперед, нажимаешь другую, мувик резко начинает проигрывается назад. И естественно мувик должен останавливаться там где stop();

Вот исходник http://**********/12066731
С меня доброта : )
__________________
Если хочешь чего-то достигнуть, запишись в очередь к самому себе.

Старый 23.06.2011, 12:56
tsarapkabel вне форума Посмотреть профиль Отправить личное сообщение для tsarapkabel Найти все сообщения от tsarapkabel
  № 2  
Ответить с цитированием
tsarapkabel
 
Аватар для tsarapkabel

Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
Код AS3:
nextBtn.buttonMode = true;
prevBtn.buttonMode = true;
 
nextBtn.addEventListener(MouseEvent.CLICK, btnClick);
prevBtn.addEventListener(MouseEvent.CLICK, btnClick);
 
var playForward:Boolean;
 
function btnClick(event:MouseEvent):void {
	if (event.target.name == "nextBtn") playForward = true;
	else playForward = false;
	addEventListener(Event.ENTER_FRAME, onEnter);
}
 
function onEnter (event:Event):void {
	if(playForward) btn.nextFrame();
	else btn.prevFrame();
}
 
btn.addFrameScript(13, onBtn13);
 
function onBtn13():void {
	removeEventListener(Event.ENTER_FRAME, onEnter);
}
Вложения
Тип файла: rar NextAndPrev.rar (9.9 Кб, 36 просмотров)
__________________
Нормально делай — нормально будет!

Старый 23.06.2011, 13:53
Raksana вне форума Посмотреть профиль Отправить личное сообщение для Raksana Найти все сообщения от Raksana
  № 3  
Ответить с цитированием
Raksana
 
Аватар для Raksana

Регистрация: Jul 2010
Адрес: Устойчивое
Сообщений: 13
tsarapkabel

Лучей добра тебе.
Только вот я так и не поняла, почему с таймлайна стопы не работают? Для чего таки извращения?
__________________
Если хочешь чего-то достигнуть, запишись в очередь к самому себе.

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

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Привет!
Вариант попроще (с использованием меток). Можно жать кнопки и во время анимации.
Вложения
Тип файла: rar NextAndPrev.rar (15.7 Кб, 45 просмотров)

Старый 24.06.2011, 16:24
tsarapkabel вне форума Посмотреть профиль Отправить личное сообщение для tsarapkabel Найти все сообщения от tsarapkabel
  № 5  
Ответить с цитированием
tsarapkabel
 
Аватар для tsarapkabel

Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
Цитата:
Сообщение от Raksana Посмотреть сообщение
Почему с таймлайна стопы не работают?
Потому что стоит переход на следующий кадр по EnterFrame. Он срабатывает на единицу времени твоего frameRate.

Цитата:
Сообщение от Жень Шень Посмотреть сообщение
Вариант попроще.
После второго next у меня продолжается разворачивание.
__________________
Нормально делай — нормально будет!

Старый 24.06.2011, 19:51
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 6  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Цитата:
Сообщение от tsarapkabel Посмотреть сообщение
После второго next у меня продолжается разворачивание.
Дальше кадра с меткой "13"? У меня никак не получилось.
Для стабильной работы (от частых беспорядочных нажатий надо изменить:
Код AS3:
function nextClick(event:MouseEvent):void {
	flag = true;
	if (btn.currentFrameLabel!="end") {
		// Если нажать во время обратного проигрывания остановим ENTER_FRAME
		btn.removeEventListener(Event.ENTER_FRAME, onEnterFrameHandler);
		btn.play();
	}
}
добавить flag = true;

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

Регистрация: Jul 2010
Адрес: Устойчивое
Сообщений: 13
tsarapkabel

Ааааа! блин! можно ли как-то вообще обойти этот бред с

Цитата:
Потому что стоит переход на следующий кадр по EnterFrame. Он срабатывает на единицу времени твоего frameRate.
Мне просто нужно еще в некоторых кадрах использовать таймер. То есть застопить анимацию и включить таймер, который отсчитает нужно кол-во мсек и запустит анимацию дальше.

Код:
stop();
function pause() {
	play();
}
setTimeout(pause, 6000);
И куда теперь пихать этот блок? *О*
В AS2 все было проще Т__Т
__________________
Если хочешь чего-то достигнуть, запишись в очередь к самому себе.

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

Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
Значит необходимо создавать таймер по определённому условию. Например:

Код AS3:
var functionFrame:uint = 135; //нужный frame
 
if (movieClip1.currentFrame == functionFrame) {
	var timer:Timer = new Timer(6000, 1); //через 6 сек 1 раз сработает функция timerFunction
	timer.addEventListener(TimerEvent.TIMER, timerFunction);
	timer.start();
}
 
function timerFunction (event:TimerEvent) {
	trace("works");
}
Это примитивно, лучше использовать currentFrameLabel.

Цитата:
Сообщение от Raksana Посмотреть сообщение
В AS2 все было проще Т__Т
Ты говоришь про AS1.
__________________
Нормально делай — нормально будет!

Старый 27.06.2011, 18:34
Raksana вне форума Посмотреть профиль Отправить личное сообщение для Raksana Найти все сообщения от Raksana
  № 9  
Ответить с цитированием
Raksana
 
Аватар для Raksana

Регистрация: Jul 2010
Адрес: Устойчивое
Сообщений: 13
tsarapkabel

Ни работает = \ Я конечно наверно туплю, но получилось как-то так.
http://**********/12597641

И да, остановка будет не только в одном фрейме. Шо не так то?
__________________
Если хочешь чего-то достигнуть, запишись в очередь к самому себе.

Старый 28.06.2011, 07:24
desancheg вне форума Посмотреть профиль Отправить личное сообщение для desancheg Найти все сообщения от desancheg
  № 10  
Ответить с цитированием
desancheg

Регистрация: Jun 2011
Сообщений: 5
не знаю чем ты делал свой FLA он мне CS4 говорит (непредвиденый формат файла)

Создать новую тему Ответ Часовой пояс 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
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.