Создание викторины во flash / actionscript с вопросами, прошедшими через flashvars - PullRequest
2 голосов
/ 13 октября 2011

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

Я не надеюсь на слишком конкретный совет, нопоскольку я очень новичок во flash / actionscript, я просто ищу широкий совет (или ссылки?) о том, как к этому подойти.Могу ли я сделать все это из одного фрейма только с помощью actionscript?

РЕДАКТИРОВАТЬ: я думаю, что я действительно после (при условии, что я не далеко от пути), если все вопросы должны быть обработаны одновременно, что, я думаю, потребует какой-то цикл, который прослушивает какое-то событие buttonclick дляпереходите к следующему вопросу ..... или «перезагружайте» флэш-фильм и занимайтесь только одним вопросом за раз.

Спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 13 октября 2011

Я бы сделал это:

  1. Создайте PHP-файл, в который будет выведен список всех ваших вопросов без разделителей, например:Сколько времени? # Где вы живете? # Сколько воды вы пьете в день? # Сколько вам лет?
  2. Используйте URLLoader, чтобы загрузить список всех ваших вопросов во Flash.
  3. Создайте массив, содержащий все ваши вопросы, используя split("#") в строке, котораявы получили со своей страницы PHP через URLLoader.

Это должно помочь вам начать.

0 голосов
/ 13 октября 2011

Я видел ваше редактирование, вот как я бы это сделал:

//class var
private var answerHolder:Sprite = new Sprite();

private function createAnswers( answerArray:Array ){
    if(answerHolder.parent){ //Makes sure we have a parent, so we don't get an ugly error.
        answerHolder.parent.removeChild(answerHolder); //removes answerholder, cleans out previous answers
    }
    answerHolder = new Sprite(); //new empty sprite
    addChild(answerHolder); //Adds the new empty sprite
    for (var i in answerArray){
        var newAnswer:Answer = new Answer(); //have a movieclip with linkage set to Answer
        newAnswer.txt.text = answerArray[i]; //Have a text field in Answer with the instance name of txt
        newAnswer.x = 50;
        newAnswer.y = 100 + newAnswer.width * i;
        newAnswer.name = i;
        addChild(newAnswer);
        newAnswer.addEventListener(MouseEvent.MOUSE_DOWN, selectedChoice); //MAKE SURE to have imported MouseEvents!
    }
}
private function selectedChoice(e:MouseEvent) {
    trace('Selected ' + e.name);
}

Это не означает завершенный код или что-то еще (вы получите ошибку, потому что я не написал ни конструктор, ни вопросы, и я вытащил answerArray из воздуха, вам также нужно добавить addChild (answerHolder)), это что-то, чтобы начать:)

createAnswers () может быть вызван снова, когда у вас есть новый вопрос - это потому, что очищен спрайт, содержащий answerHolder.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...