0

さまざまなチュートリアルを使用して、AS3 で次のクイズを作成しました。それは動的であり、重要な機能を使用して全体をセットアップし、カウンターを使用してクイズと配列を管理します。答えを選んだら、チェックボタンをクリックしてから「次へ」ボタンをクリックします。エラーは発生しませんが、何らかの理由で setup() 関数を呼び出してもクイズが前進しません。役に立たないものを編集した私の短いコードが添付されています。いくつかの提案が欲しいです。ところで、外国語はヘブライ語です:)

var arrQuestion:Array = [ "?מיהו סטיב ג'ובס", "מהי משמעות הקיצור WWW?"];
var arrAnswers:Array = [["AOL מנכל","יור אורקל","מנכל אפל","מנכל סאן"], ["World Wide Web", "With Web Wins", "Wired Web Window", "Wap Windows War"]];
var arrCorrect:Array = [3, 1];
var btnNext:myNext = new myNext();


setup();

function setup():void {

 var i:Number=0;


 var thequestion_txt:TextField= new TextField;
 addChild(thequestion_txt);

 var feedback_txt:TextField= new TextField;
 addChild(feedback_txt);

 var radio1:RadioButton = new RadioButton();
 var radio2:RadioButton = new RadioButton();
 var radio3:RadioButton = new RadioButton();
 var radio4:RadioButton = new RadioButton();

 var radioGrp:RadioButtonGroup = new RadioButtonGroup("radioGrp");

 addChild(radio1);
 addChild(radio2);
 addChild(radio3);
 addChild(radio4);


 radio1.label = arrAnswers[i][0];
 radio1.value = 1;
 //etc..

 var checkButton:Button = new Button();
 addChild(checkButton);
 checkButton.x =230;
 checkButton.y = 300;
 checkButton.label = "בדוק";


 checkButton.addEventListener(MouseEvent.CLICK, clickHandler);
 function clickHandler(event:MouseEvent):void {

  addChild(btnNext);
  btnNext.x =230;
  btnNext.y = 300;
  if (radioGrp.selection.value == (arrCorrect[i])) {
   feedback_txt.text = "!נכון מאוד";
   btnNext.addEventListener(MouseEvent.CLICK, myRemove);


  } else {
   feedback_txt.text = "תשובה שגויה";
   btnNext.addEventListener(MouseEvent.CLICK, myRemove);


  }


 }
 function myRemove(e:MouseEvent):void {
  removeChild(thequestion_txt);
  removeChild(feedback_txt);
  removeChild(radio1);
  removeChild(radio2);
  removeChild(radio3);
  removeChild(radio4);
  removeChild(checkButton);
  removeChild(btnNext);
  //chaning the counter to change the question and answers
  i++;
  //shouldn't the call to setting up the entire stage again be here?
  //it is't working, I dont get the next question.
  setup();

 }
}
4

1 に答える 1

4

変化する:

function setup():void {

var i:Number=0;

に:

var i:Number=0;

function setup():void {

それ以外の場合は、「i ++」でインクリメントし、「setup()」を呼び出します。これにより、「i」が再び0にリセットされ、インクリメントは発生しません。

「コードサンプル」フォーマットを使用するPSは、サンプルの読みやすさを大幅に向上させます。

于 2009-09-28T19:38:03.303 に答える