Показать сообщение отдельно
Старый 20.10.2017, 19:18
Партизан вне форума Посмотреть профиль Отправить личное сообщение для Партизан Найти все сообщения от Партизан
  № 7  
Ответить с цитированием
Партизан
 
Аватар для Партизан

блогер
Регистрация: Nov 2007
Адрес: Almaty, Moscow
Сообщений: 396
Записей в блоге: 5
Отправить сообщение для Партизан с помощью Skype™
Сложно объяснить накидал для примера как можно сделать простой тест. Правда накидал в Animate, не знаю есть он у вас или нет.

Код, на всякий случай: на сцене нужно создать
TextField (qtxt)
5 RadioButton (a0,a1,a2,a3,a4)
Button (next)
RadioButton (aHidden)
Код AS3:
import flash.events.MouseEvent;
import flash.events.Event;
import fl.controls.RadioButton;
import fl.controls.RadioButtonGroup;
 
stop();
 
// XML с вопросами
var xml:XML = <data>
<q id="0" text="why?">
	<answer text="1"/>
	<answer text="2"/>
	<answer text="3" right="1"/>
	<answer text="4"/>
	<answer text="5"/>
</q>
<q id="1" text="what?">
	<answer text="1"/>
	<answer text="2"/>
	<answer text="3" right="1"/>
	<answer text="4"/>
	<answer text="5"/>
</q>
</data>;
 
var curQ:int = 0; // текущий вопрос
 
var qLen:int = xml.q.length() //количество вопросов
 
var selA:String; // Выбранный ответ
 
next.enabled = false; //отключаем кнопку следующего вопроса пока не ответим на вопрос 
 
 
var ansGroup:RadioButtonGroup = new RadioButtonGroup('answers');
ansGroup.addEventListener(Event.CHANGE,onSelect);// событие выбора ответа
 
aHidden.group = ansGroup; //скрытый RadioButton для сброса ответов
 
for(var i:int=0; i<5;i++){
	var a:RadioButton = this['a'+i] as RadioButton;
	a.group = ansGroup; // Включаем RB в группу
 
}
 
function onSelect(e:Event):void{
	// ответ выбран
 
 
	selA = ansGroup.selection.label; // Получаем строку ответа
	next.enabled = true; // Теперь можно включить кнопку следующего вопроса
 
}
 
function setQ(id:int):void{
	// здесь мы задаем строки текстовым полям и RB ответов из XML
	qtxt.text = String(xml.q.(@id==id).@text);
	a0.label = String(xml.q.(@id==id).answer[0].@text)
	a1.label = String(xml.q.(@id==id).answer[1].@text)
	a2.label = String(xml.q.(@id==id).answer[2].@text)
	a3.label = String(xml.q.(@id==id).answer[3].@text)
	a4.label = String(xml.q.(@id==id).answer[4].@text)
}
 
next.addEventListener(MouseEvent.CLICK,nextQ);
function nextQ(e:MouseEvent):void{
 
	trace("На вопрос:",xml.q.(@id==curQ).@text,"\nВыбран ответ:",selA)
	ansGroup.selection.selected=false;
 
	curQ++; // увеличиваем индекс вопроса
 
	// Если индекс больше чем вопросов, переходим к первому вопросу
	if(curQ==qLen){
		curQ=0;
		}
 
	// Обновляем интерфейс следующим вопросом	
	setQ(curQ);
 
	// Снова отключаем кнопку до ответа на вопрос
	next.enabled = false;
 
	// сбрасываем выбранный ответ	
	ansGroup.selection = aHidden;
}
 
// Задаем первый вопрос
setQ(0);
Вложения
Тип файла: rar TestExample.rar (438.6 Кб, 75 просмотров)