當你想從Flash中更復雜的東西開始時,很難找到一種方法。正如約旦所說,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。我使用一個單獨的ActionScript文件下面的模板,名爲「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數據作爲一個數組。第一個鍛鍊; Tibial會被發現爲myList.excercise [0]。提問和第二會myList.excercise [1]。提問等
或使用JSON! JSON現在是Flash 10的本機。 – ansiart
謝謝,我已經設置了xml文件並且閃存跟蹤了這個問題,但是我不知道如何使問題節點的數據出現在文本框中 –
我編輯了我的答案,希望能夠更多地解釋它。 – silvith