AS3:在测验游戏中包含图片,随机加载问题

时间:2014-03-20 08:55:19

标签: actionscript-3

任何人都可以帮助我如何在问题游戏中包含图片,其中问题是随机加载的吗?我已经有了一个游戏,其中的问题和答案正在数组中添加。如果用户在文本字段中完成了他的答案输入,则他将单击一个按钮,如果答案是否正确,将显示游戏。如果正在加载所有问题,游戏将自动结束。它工作得很完美,但我想和问题一起展示一些照片。例如,有一个问题:“这是什么鸟?”并且有一张鸟的照片和问题。我将如何实现这一目标?此外,不只是图片,但我还可以包括SWF或动画片段吗?我认为动画比图片要凉爽得多。但如果没有,图片就没问题了。这是代码..我非常感谢任何帮助。

var quizModel:Array = [{q:"1+1 = ?", a:"2"}, {q:"5+5 = ?", a:"10"}, {q:"2+2 = ?", a:"4"}, {q:"6+6 = ?", a:"12"},{q:"8-7 = ?",a:"1"}];

var user_ans:Array = new Array();
var newQuizModel:Array = shuffleArray(quizModel);

function shuffleArray(arr:Array):Array
{
    var l:Number = arr.length - 1;

    for (var it:uint = 0; it<l; it++)
    {
    var r:int = Math.round(Math.random() * l);
    var tmp:Object = arr[it];
    arr[it] = arr[r];
    arr[r] = tmp;
    }
return arr;
}

var index:int = 0;
questions_txt.text = newQuizModel[index]["q"];

submit.label = "Submit";  //This is a button I made from the” windows->component” that has a label “Submit”. If clicked, it will check if the answer is correct or not 

submit.addEventListener(MouseEvent.CLICK,yow);

function yow (event:MouseEvent):void{  //Runs if the Submit button is clicked

    if (userAnswer.text == newQuizModel[index]["a"]) 
    {
        answers_txt.text = "Your answer is correct!";
    }
    else
    {
        answers_txt.text = "Your answer is wrong";
    }

    index++;

if(index == quizModel.length){  //Runs if all of the questions in the array loads
    Over.text = "It's Over!";
    index--;
    submit.visible=false;
    questions_txt.visible=false;
    userAnswer.visible=false;
}
    showQuiz(index);

}

function showQuiz(idx:int):void
{
    questions_txt.text = "Question: " + newQuizModel[idx]["q"];
}

showQuiz(index);

1 个答案:

答案 0 :(得分:0)

你在Flash工作吗?如果在Flash中你可以将你的图片或电影剪辑放在fla的库中,然后在显示每个问题时将它们实例化。

例如,在属性对话框中为它们提供Export for Actionscript类名称。然后将类名添加到每个问题的数据中,如下所示:

{q:"1+1 = ?", a:"2", className: "two_birds"}

接下来,从库中实例化符号并添加到您的显示列表中,如下所示:

var classRef:Class = getDefinitionByName(newQuizModel[idx]["className"]) as Class;
var displayObj:Object = new classRef();
addChild(displayObj);
displayObj.x=20;
displayObj.y=20;

或类似的东西。我会告诉你详细说明。