Я новичок в использовании флэш, и я пытаюсь создать игру для викторины с несколькими типами, используя flash cs5 и as3. в игре содержимое или данные записываются в XML-файл.
Я сталкиваюсь с рядом проблем, и мне сложно понять, какое решение можно использовать.
у меня есть переменная qno . qno используется для определения количества вопросов, которые будут заданы программой. в моей игре мне нужно вывести 5 вопросов. если qno достигает 5, программа должна вызвать следующий кадр, который покажет табло. моя проблема в том, что qno не увеличивается. эта проблема затрагивает мою третью проблему, о которой я расскажу позже.
Я понял, что это ошибка, которая вызвала проблему: TypeError: Error #1009: Cannot access a property or method of a null object reference.
Как мне это исправить?
решено ^^, (динамический текст вызвал эту проблему, которая затрагивала вопросы и выбор. Но теперь исправлена
Я уже сказал, что я вызываю вопрос и выбор в XML-файле. программа вызывает код, но у меня возникла одна проблема. не показывает полный вопрос и варианты . что я имел в виду, например, вопрос: как едят птицы? когда вы запускаете программу, она выдает только как работает b это идет так же, как выбор. он не показывает полный вопрос и варианты.
это еще не так важно, но речь идет о выигрыше. я не знаю, увеличивает ли программа правильную и неправильную переменную ответа. но это у меня уже есть код на это. я знаю, что прежде чем приступить к этой проблеме, мне нужно сначала решить первую проблему.
это набор кодов, который я использую
это код, используемый для вызова XML-файла, который находится в кадре 1
var questions:Array=new Array();
var answers:Array=new Array();
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, loadXML);
loader.load(new URLRequest("sample.xml"));
function loadXML(e:Event):void
{
var myxml = new XML(e.target.data);
var loop =myxml.ques.length();
for (var i=0;i<loop;i++)
{
questions[i]=myxml.ques[i].q1;
answers[i]=[myxml.ques[i].op1,myxml.ques[i].op2,myxml.ques[i].op3];
}
gotoAndPlay(2);
}
stop();
это основной код, в котором находится проблема
var qno=0;
var rnd1;
var rnd2;
tick.visible=false;
cross.visible=false;
var right_answers=0;
var wrong_answers=0;
function change_question()
{
if(tick.visible)
{
right_answers++;
}
if(cross.visible)
{
wrong_answers++;
}
if(qno==1)
{
gotoAndPlay(3);
}
else
{
tick.visible=false;
cross.visible=false;
rnd1=Math.ceil(Math.random()*3);
rnd2=Math.ceil(Math.random()*questions.length)-1;
q.text=questions[rnd2];
if(questions[rnd2]=="x")
{
change_question();
}
questions[rnd2]="x";
enable_disable(1);
if(rnd1==1)
{
opt1.text=answers[rnd2][0];
opt2.text=answers[rnd2][1];
opt3.text=answers[rnd2][2];
}
if(rnd1==2)
{
opt1.text=answers[rnd2][2];
opt2.text=answers[rnd2][0];
opt3.text=answers[rnd2][1];
}
if(rnd1==3)
{
opt1.text=answers[rnd2][1];
opt2.text=answers[rnd2][2];
opt3.text=answers[rnd2][0];
}
}
}
function enable_disable(a)
{
if(a==0)
{
shade1.mouseEnabled=false;
shade2.mouseEnabled=false;
shade3.mouseEnabled=false;
}
if(a==1)
{
shade1.mouseEnabled=true;
shade2.mouseEnabled=true;
shade3.mouseEnabled=true;
}
}
change_question();
next_b.addEventListener(MouseEvent.CLICK, ButtonAction1);
function ButtonAction1(eventObject:MouseEvent)
{
qno++;
change_question();
}
shade1.addEventListener(MouseEvent.CLICK, ButtonAction2);
shade2.addEventListener(MouseEvent.CLICK, ButtonAction3);
shade3.addEventListener(MouseEvent.CLICK, ButtonAction4);
function ButtonAction2(eventObject:MouseEvent)
{
enable_disable(0);
if(rnd1==1)
{
tick.visible=true;
tick.y=shade1.y;
}
else
{
cross.visible=true;
cross.y=shade1.y;
}
}
function ButtonAction3(eventObject:MouseEvent)
{
enable_disable(0);
if(rnd1==2)
{
tick.visible=true;
tick.y=shade2.y;
}
else
{
cross.visible=true;
cross.y=shade2.y;
}
}
function ButtonAction4(eventObject:MouseEvent)
{
enable_disable(0);
if(rnd1==3)
{
tick.visible=true;
tick.y=shade3.y;
}
else
{
cross.visible=true;
cross.y=shade3.y;
}
}
stop();
Я надеюсь, что кто-то может помочь мне решить мою проблему или то, что заставляет проблему действовать таким образом.