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

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

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

Регистрация: Oct 2012
Сообщений: 10
По умолчанию Кнопки Следующий и Предыдущий

Здравствуйте! Создаю тест для студентов. Возникла проблема при нажатии кнопок "Следующий" и "Предыдущий". Если после нажатия кнопки "Начать" с первого вопроса перейти сразу на 22-й (нажав на желтую кнопку "22"), то кнопки "Следующий"-"Предыдущий" перестают работать. А если пощелкать до пятого вопроса кнопкой "Следующий", а затем перейти на 22 вопрос желтой кнопкой "22", то кнопка "Предыдущий" работает, переходит на 21 вопрос, а вот кнопка "Следующий" уже перестает работать.

Прикладываю свою заготовку теста (на несовместимость некоторых моментов в самом тесте не обращайте внимания, данный тест уже второй, который я создаю. В первом тесте также есть этот косяк с кнопками "Следующий"-"Предыдущий")

Заранее спасибо всем, кто поможет)))

Старый 02.11.2012, 09:23
AlienCirl вне форума Посмотреть профиль Отправить личное сообщение для AlienCirl Найти все сообщения от AlienCirl
  № 2  
Ответить с цитированием
AlienCirl

Регистрация: Oct 2012
Сообщений: 10
Вой файл теста
Вложения
Тип файла: rar HTML-test.rar (653.5 Кб, 40 просмотров)

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

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Пожалуйста, указывайте версию Flash IDE, в которой создан fla файл. У меня в CS4 он не открылся. Чем в более ранней версии вы сохраните fla, тем больше людей смогут его открыть, и, соответственно, помочь.

Старый 02.11.2012, 19:41
AlienCirl вне форума Посмотреть профиль Отправить личное сообщение для AlienCirl Найти все сообщения от AlienCirl
  № 4  
Ответить с цитированием
AlienCirl

Регистрация: Oct 2012
Сообщений: 10
а где посмотреть эту версию? У меня CS5. Я новичок, тесты - мое первое творение во Flash

Старый 02.11.2012, 19:44
AlienCirl вне форума Посмотреть профиль Отправить личное сообщение для AlienCirl Найти все сообщения от AlienCirl
  № 5  
Ответить с цитированием
AlienCirl

Регистрация: Oct 2012
Сообщений: 10
Через сохранить как сохранила как документ CS4...
Вложения
Тип файла: rar HTML-test1.rar (342.6 Кб, 34 просмотров)

Старый 06.11.2012, 11:02
Sweet07 вне форума Посмотреть профиль Отправить личное сообщение для Sweet07 Найти все сообщения от Sweet07
  № 6  
Ответить с цитированием
Sweet07
 
Аватар для Sweet07

Регистрация: Jul 2011
Сообщений: 121
Слишком разбросан код. Если во втором кадре вы вешаете слушателей на кнопки перехода вперёд и назад, то при переходе на 22 кадр вы убираете с сцены кнопку перехода вперёд, и соответственно слушатель пропадет. Вместо этого вам нужно в 22 и 2 кадре менять свойство visible. Посмотрите в коде способ вешать слушателей на разные объекты.
Вот ваш подправленный fla.
Вложения
Тип файла: zip HTML-test.zip (752.9 Кб, 33 просмотров)
__________________
for (year=0;year<life;year++) {birthday(year)}

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

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
И снова здравствуйте
Теперь и я столкнулся с проблемой пропажи слушателей при переходе с кадра на кадр. У меня не возникает вопроса как это исправить. У меня возникает вопрос "Почему?".
Цитата:
вы убираете с сцены кнопку перехода вперёд, и соответственно слушатель пропадет
Кто-нибудь знает почему так происходит?

P.S. Я смоделировал ситуацию: создал клип, состоящий из двух кадров (twoFrames). На первом кадре имеется дочерний клип с именем 'first', на втором – другой дочерний клип с именем 'second'. Происходит инициализация:
Код AS3:
twoFrames = new TwoFrames();
twoFrames.gotoAndStop(1);
twoFrames.first.addEventListener(MouseEvent.CLICK, clickHandler);
// Вот здесь, судя по всему, исчезает только что установленный
// слушатель кликов по first
twoFrames.gotoAndStop(2);
twoFrames.second.addEventListener(MouseEvent.CLICK, clickHandler);
addChild(twoFrames);
 
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyHandler);
 
private function clickHandler(e:MouseEvent):void
{
	trace(e.currentTarget.name);
}
 
private function keyHandler(e:KeyboardEvent):void
{
	if (twoFrames.currentFrame == 1)
		twoFrames.gotoAndStop(2);
	else
		twoFrames.gotoAndStop(1);
}
Таким образом сначала мы видим второй кадр клипа twoFrames. Когда мы по нему кликаем, в трейс выводится 'second'. Теперь мы нажимает, допустим, пробел и функция keyHandler переводит twoFrames на первый кадр. И с этого момента клип перестает реагировать на клики.

Подобные исчезновения слушателей баг или фича?

Добавлено через 7 минут
И что более важно, происходит ли (как-нибудь скрытно) removeEventListener при переходе с кадра на кадр? Я пробовал трейсить результаты hasEventListener и они говорят о том, что слушателя нет. Но я все еще сомневаюсь, можно ли этим результатам верить.

Добавлено через 30 минут
Видимо исчезают не только слушатели, но и вообще все динамические свойства клипа.
Код AS3:
twoFrames.gotoAndStop(1);
twoFrames.first.addEventListener(MouseEvent.CLICK, clickHandler);
twoFrames.first.someProp = "Lalala";
twoFrames.gotoAndStop(2);
twoFrames.second.addEventListener(MouseEvent.CLICK, clickHandler);
twoFrames.second.someProp_2 = "Lalala 2";
 
private function keyHandler(e:KeyboardEvent):void
{
	if (twoFrames.currentFrame == 1)
	{
		twoFrames.gotoAndStop(2);
		trace("<" + twoFrames.second.someProp_2 + ">");
	}
	else
	{
		twoFrames.gotoAndStop(1);
		trace("<" + twoFrames.first.someProp + ">");
	}
}
Трейсы выводят '<undefined>'.

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

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

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


 


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


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