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

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

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

Регистрация: Aug 2012
Сообщений: 13
По умолчанию переход на другой кадр с помощью Enter

Здравствуйте!
Суть дела: есть кадр, на нем расположены 4 радио-кнопки (rad1, rad2, rad3, rad4) и одна обычная кнопка(dalshe), по которой происходит переход на следующий кадр, с учетом того какая из радио-кнопок выделена.
Переход на следующий кадр может происходить как с помощью нажатия(dalshe), так и с помощью нажатия кнопки ENTER.
Проблема: когда не отмечен ни один radio-button, при нажатии кнопки ENTER происходит какая-то быстрая смена кадров, что неверно. По идее если не активна ни одна радио-кнопка, то я ловлю ошибку. В общем enter в таком случае не работает. Помогите пожалуйста решить проблему. Если я просто кликаю на кнопку на кадре (dalshe), то все отлично и все работает.

Код, того что стоит на кадре и реагирует на Enter при любой активной радио-кнопке:
Код AS1/AS2:
var kl:Object = new Object();
 
kl.onKeyDown = function  () 
{
	if (Key.getCode() == Key.ENTER)
	{
		trace("Зашли в функцию кнопки ЕНТЕР");
		if(rad1.selected== false && rad2.selected== false && rad3.selected== false &&  rad4.selected== false)
		{
			muv1._alpha = 100;
			dalshe.enabled = false;
		}
		else
		{
				if(rad2.selected == true)
			{
				_global.prav3+=1;
				trace("все правильно выбрали");
			}
			else
			{
				trace("неправильно выбрали");
			}
			gotoAndStop(7);
		}
	}
};
 
 rad1.onSetFocus = function  () 
{
	Key.addListener(kl);
};
 rad2.onSetFocus = function  () 
{
	Key.addListener(kl);
};
 rad3.onSetFocus = function  () 
{
	Key.addListener(kl);
};
 rad4.onSetFocus = function  () 
{
	Key.addListener(kl);
};

Старый 12.09.2012, 13:18
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 2  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Непонятно что у вас там вообще.
Радио-кнопка должна быть включена ТОЛЬКО одна...
Где сброс выбранных прочих?
Зачем через ФОКУС, а не через нажатие?

Радио-кнопки у вас написаны непонятно через что и зачем...
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

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

Регистрация: Aug 2012
Сообщений: 13
со сбросом ступила уже столкнулась с этим и добавилось к коду
Код AS1/AS2:
rad1.onKillFocus = function  () 
{
	Key.removeListener(k5);
};
 
rad2.onKillFocus = function  () 
{
	Key.removeListener(k5);
};
 
rad3.onKillFocus = function  () 
{
	Key.removeListener(k5);
};
 
rad4.onKillFocus = function  () 
{
	Key.removeListener(k5);
};
подскажите как это делать через нажатие??
радио-кнопки добавляла через панель components. Зачем они нужны? кадр представляет собой страницу теста, отвечая на вопрос пользователь кликает на какую-нибудь радио-кнопку, а затем с помощью enter переходит к следующему вопросу(т.е. к следующему кадру)

Старый 12.09.2012, 14:18
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 4  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Проще свои кнопки написать.

Код AS1/AS2:
function initRadio( mov, actual, ARR, func ){
	mov.activeId = actual;
	for ( var i=0; i<ARR.length; i++){
		var rad = mov["BR"+i]
		rad.caps.text = ARR[i]
		rad.id = i;
		rad.pad.onRelease = function(){
			mov.activeId = this._parent.id
			func( mov.activeId )
			mov.setRadio()		
		}
	}
	mov.setRadio = function( force ){
		if ( force != undefined ) this.activeId = force;
		for ( var i=0; i<ARR.length; i++){
			this["BR"+i].SEL._visible = false
		}
		this["BR"+this.activeId].SEL._visible = true
	}
	mov.setRadio()
	func( mov.activeId )
}
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 12.09.2012, 14:32
Ugodniki вне форума Посмотреть профиль Отправить личное сообщение для Ugodniki Найти все сообщения от Ugodniki
  № 5  
Ответить с цитированием
Ugodniki

Регистрация: Aug 2012
Сообщений: 13
спасибо. Честно говоря я ещё новичок, поэтому ваш код неочень понятен, сижу и втыкаю

Старый 12.09.2012, 14:39
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 6  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Делаешь клип.
В нем два клипа с названием SEL - это типа отметка радиокнопки, внутр. часть и pad - это низлежащий клип, который обрабатывает нажатия.

Рисуешь нужное кол-во кнопок и называешь их BR1, BR2 и так далее
ARR - массив с подписями к кнопкам.
Типа

Код:
var teamNumberArr:Array = new Array()
teamNumberArr[0] = "Нет номера"
teamNumberArr[1] = "Командные номера"
teamNumberArr[2] = "Большой номер"
teamNumberArr[3] = "Маленький номер"
mov - это то, где радио кнопки лежат
Вложения
Тип файла: rar radiola.rar (15.1 Кб, 31 просмотров)
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

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

Теги
enter , radio-button , кадр , переход

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

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


 


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


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