Код работает нормально, но проблема, с которой я столкнулся, заключается в том, что текстовое поле, в котором предполагается использовать кнопки ответа, находится позади самой кнопки ... однако, если я изменю две строки кода вокруг, код подтверждения ответа не определяет, какой ответ был нажат (возвращается неопределенный). Это бесит!
Найдите строку "// ВСТАВЬТЕ ЗДЕСЬ." Если я возьму строку, "var answerField: TextField = createText (answer, answerFormat, answerSprite, 0,0,450);" и вместо этого, он возвращает правильные ответы (не возвращает неопределенный), но я больше не вижу текст. Я также включил функцию createText.
Идеи? * * 1005
private function askQuestion()
{
trace("asking question...");
// prepare new question sprite
qBox = new QuestionBox();
questionSprite = new Sprite();
gameSprite.addChild(qBox);
gameSprite.addChild(questionSprite);
qBox.x = 240;
qBox.y = 45;
// create text field for question
var question:String = dataXML.item[questionNum].question;
questionField = createText(question,questionFormat,questionSprite,120,30,250);
// create sprite for answers, get correct answer and shuffle all
correctAnswer = dataXML.item[questionNum].answers.answer[0];
trace("----" + correctAnswer + "----");
answers = shuffleAnswers(dataXML.item[questionNum].answers);
// put each answer into a new sprite with a circle icon
answerSprites = new Sprite();
for (var i:int=0; i<answers.length; i++)
{
trace("generating answers...");
switch (i)
{
case 0 :
column = 135;
row = 150;
break;
case 1 :
column = 135;
row = 260;
break;
case 2 :
column = 340;
row = 150;
break;
case 3 :
column = 340;
row = 260;
break;
}
var answer:String = answers[i];
var answerSprite:Sprite = new Sprite();
//INSERT HERE
var button:Button = new Button();
answerSprite.x = column;
answerSprite.y = row;
// make it a button;
answerSprite.addChild(button);
var answerField:TextField = createText(answer,answerFormat,answerSprite,0,0,450);
answerSprite.addEventListener(MouseEvent.CLICK,clickAnswer);
answerSprite.buttonMode = true;
answerSprites.addChild(answerSprite);
}
trace("answers generated!");
questionSprite.addChild(answerSprites);
trace("question asked!");
trace(":::awaiting user input:::");
}
функция createText:
public function createText(text:String, tf:TextFormat, sprite:Sprite, x,y: Number, width:Number):TextField
{
var tField:TextField = new TextField();
tField.x = x;
tField.y = y;
tField.width = width;
tField.wordWrap = true;
tField.multiline = true;
tField.selectable = false;
tField.defaultTextFormat = tf;
tField.text = text;
sprite.addChild(tField);
return tField;
}