当您想从 Flash 中更复杂的东西开始时,可能很难找到一种方法。正如 Jordan 所建议的,xml 是请求信息的最佳方式。您的 xml 文件看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<myList>
<excercise>
<question>What is 2 x 2?</question>
<answer>4</answer>
</excercise>
</myList>
(您可以将其复制并粘贴到记事本并保存为 .xml)
在 flash actionscript 中,您需要一些项目才能处理此 xml。我在名为“Main.as”的单独动作脚本文件中使用以下模板:
package
{
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.xml.*;
import flash.events.Event;
import flash.display.Loader;
public class Main extends MovieClip
{
var myFile:String;
var xmlLoader:URLLoader;
var myList:XML;
public function Main()
{
myFile = "myList.xml";
loadXml();
}
function loadXml():void
{
xmlLoader = new URLLoader(new URLRequest(myFile));
xmlLoader.addEventListener(Event.COMPLETE,xmlLoaded);
}
function xmlLoaded(event:Event):void
{
myList = new XML(event.target.data);
myList.ignoreWhite = true;
//totalNr = myList.excercise.length(); = the amount of excercises in your file
//var str:string = myList.excercise[0].question;
//trace (str) would give you the text of the question of the first excercise
}
}
}
编辑
假设您在舞台上创建了一个文本框并将其命名为questionTxt。要将您的问题添加到该文本框中,您会说:
questionTxt.text = myList.excercise[0].question;
在其下方,创建一个输入文本字段,您的学生可以在其中输入答案。称之为answerTxt。
还要创建一个检查按钮,以便他们在给出答案后按下它。称之为checkBtn。
您还需要一个函数来将他们的输入与 xml 中的答案进行比较。我将在下面解决它。
现在你像这样向 checkBtn 添加一个事件监听器:
checkBtn.addEventListener(MouseEvent.CLICK, checkAnswer)
以及检查答案的功能(方便地命名为checkAnswer):
function checkAnswer (event:MouseEvent) : void {
if (answerTxt.text == myList.excercise[0].answer) {
trace ("correct");
} else {
trace ("wrong");
}
}
您将 xml-data 视为一个数组。第一个练习将作为 myList.excercise[0].question 找到,第二个将是 myList.excercise[1].question 等。