Я потратил время, чтобы разобраться в вашей проблеме более подробно. Я создал три класса в качестве моделей для Вопроса, Пользователя и Ответа и класса AnswerEvent.
Основной класс служит центральной точкой для манипулирования данными. Когда пользователь отвечает на вопрос, его ответ (класс ответа) отправляет событие для информирования основного класса. Ответ имеет свойство пользователя, свойство вопроса и свойство isCorrect, а объект AnswerEvent содержит объект ответа, который можно сохранить в основном классе.
После отправки события ответ сохраняется в массиве ответов. Поскольку каждый ответ содержит как пользовательские данные, так и ответ на вопрос и то, как на него был дан ответ, вы можете использовать этот массив для ответа на ваши вопросы a, b & c.
Что касается классов, я следовал принципу, подобному тому, который раскрыт в моем первом ответе. Я не думаю, что здесь достаточно места для размещения всего кода, поэтому я просто опубликовал некоторые выдержки.
//Inside the main class
private var answers:Array = [];
private function init():void
{
this.addEventListener(AnswerEvent.ANSWER , answerEventListener );
var q1:Question = new Question( 0 , ["Sweden" , "Denmark"] , 0 );
var q2:Question = new Question( 1 , ["Norway" , "Finland"] , 1 );
var q3:Question = new Question( 2 , ["Iceland" , "Ireland"] , 0 );
var user1:User = new User( 5 , 25 , 0 , "Lorem" );
var user2:User = new User( 6 , 45 , 1 , "Ipsum" );
var user3:User = new User( 7 , 32 , 1 , "Dolor" );
//if the answer is correct , the totalCorrect property is incremented
// in the User class, check the Answer class below for an explanation of the
//parameters
user1.answer( new Answer( this , user1 , q1 , 1 ));
}
private function answerEventListener(event:AnswerEvent):void
{
answers.push(event.answer);
trace( this , event.answer.isCorrect );
trace( this , event.answer.user.age );
}
Вот модель для класса Ответ, я не добавил получатели из-за недостатка места. AnswerEvent расширяет класс Event и добавляет свойство ответа типа Answer
public class Answer
{
private var _question:Question;
private var _answer:int;
private var _user:User;
private var _isCorrect:Boolean;
public function Answer(dispatcher:EventDispatcher , user:User , question:Question , answer:int)
{
this._user = user;
this._question = question;
this._answer = answer;
// not essential but will help iterate thru correct answers
// the _answer property should be _answerIndex really, in order not to be confused
// with an Answer object ( quick job ! )
if( question.correctAnswer == answer )
_isCorrect = true;
// the this keyword corresponds to this answer
dispatcher.dispatchEvent( new AnswerEvent(AnswerEvent.ANSWER , this) );
}
}