0

Прежде всего, я должен прочитать это, сказав, что я совершенно новый для Flash/AS!ActionScript 3 (AS3) Сбор данных из SharedObject

Короче говоря, я работаю над очень простой викториной в Flash. Пользователю будут заданы вопросы и он должен выбрать ответ для продолжения (выбирают ли они правильный или неправильный ответ).

Это будет использоваться в качестве учебного пособия в моей работе, и мы должны иметь возможность отслеживать ответы пользователей, чтобы определить, что люди получили правильно/неправильно, кто нуждается в дополнительном обучении и т.д.

Моей первоначальной мысли заключается в том, чтобы использовать SharedObjects для сбора своих ответов (поскольку SO являются специфичными для пользователя, это, по-видимому, имеет смысл). Мой вопрос, однако, есть способ получить доступ к данным SO и отправить электронное письмо, экспортировать текстовый файл (или что-то) в менеджеров? Возможно, сохранить клики в массиве и экспортировать их?

Другое дело, что мы не хотим, чтобы люди могли повторить тест (есть стимул для правильного ответа на 90% + вопросы). Моя другая мысль заключалась в том, что я мог бы написать некоторые данные в SO, как только пользователь достигнет конечного экрана и может быть проверен при входе в систему (чтобы узнать, закончили ли они уже игру).

В любом случае, это проблема, с которой я сталкиваюсь. Если отправка/отправка данных SO не является вариантом, какие другие параметры существуют?

+0

Я также должен отметить, что эта игра имеет несколько сцен, поэтому должен быть способ сохранить данные во всех сценах. Теперь, когда я устанавливаю его, данные массива всегда перезаписываются данными, собранными из текущей сцены. –

ответ

0

Во-первых, примечание об использовании SharedObjects для хранения любой важной информации - в вашем случае, было ли проверка викторины завершена, чтобы предотвратить повторное использование: она не является доказательством дурака. Любой пользователь может удалить или изменить свои общие объекты, и у вас больше нет данных.

Что касается отслеживания их ответов и отправки их по электронной почте, это вполне выполнимо. Хранение их в общем объекте необязательно, если вы не намереваетесь позволить пользователям пройти викторину в течение нескольких сеансов (частично завершая викторину и возвращаясь к ней позднее). Все, что вы храните в общему объекте в течение одного «сеанса», можно так же легко сохранить в памяти во время работы приложения.

Наконец, вы упомянули, что используете сцены. Большинство разработчиков порекомендовали бы это. Это устаревший режим разработки флеш-приложений. Если вы сейчас находитесь в точке своего процесса разработки, где вы можете это исключить, я настоятельно рекомендую вам это сделать.

предостережений в сторону, вот как вы могли бы сделать это:

// in your first Scene (here, labeled "Scene 1"), grab a reference to a SharedObject, I named mine "quiz" 
var so:SharedObject = SharedObject.getLocal("quiz"); 

// set up any necessary data structure for the data you plan to store 
if(!so.data.results){ 
    so.data.results = {}; 
} 

// you can check to see if data has already been written to the shared object, if so, you can use this to determine the flow of the quiz 
if(so.data.results.scene1Results){ 
    trace("scene 1 already completed: ",so.data.results.scene1Results); 
} 
else{ 
    so.data.results.scene1Results = "some value"; 
    so.flush(); 
    trace("scene 1 data stored"); 
} 

В других ваших сценах, вы можете получить ссылку на общий объект точно так же, как и раньше: SharedObject.getLocal("quiz"); и добавить в него данные, как викторина продолжается.

Что касается рассылки результата, у вас есть два варианта:

  1. (рекомендуется) Построить серверный скрипт, который получает информацию через запрос POST и электронную почту его на адрес, по вашему выбору.
  2. (не рекомендуется) Создайте почтовый URL-адрес, который содержит результат теста, как тело письма. Проблема заключается в том, что он позволяет пользователю редактировать результаты в своем почтовом клиенте, прежде чем отправлять его предполагаемому получателю.
+0

Спасибо за ваш тщательный ответ. Я знаю, что сцены не являются предпочтительным методом, но это то, что я больше всего знаю, и временное ограничение проекта - это своего рода форсирование моей руки. И спасибо за указание ограничений этого метода (с sharedobjects) ... Я знаю, что это не пуленепробиваемый, но у меня почти 100% уверенность, что никто не будет (а) знать, что их ответы хранятся где угодно или (б) знайте, что они могут их изменить. И спасибо за предложения по рассылке. Обычное почтовое решение - определенно проблема. Я дам этот код попробовать в понедельник. Еще раз спасибо. –

Смежные вопросы