ActionScriptは苦手なんですが、URLRequestつかってPHPと連携できるっての知って、遊んでみました。
クイズをつくったのですが、肝心なのは問題をPHPから受け取るってところだったりします。
ここでクイズができます。
とりあえず、PHP側はこんな感じに書いています。
1
2
3
4
5
6
7
|
<?php
$qa = array(
0 => array("q" => "ポリドッグはイケメンである", "a" => 1),
1 => array("q" => "ドラえもんは実はメス犬である", "a" => 0),
);
echo "q=".$qa[$_POST['q']]["q"]."&a=".$qa[$_POST['q']]["a"];
?>
|
でもって、ActionScript側はこんな感じ
ファイル
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
//何問目かを取得
var qNum:Number = 0;
//問題数
var qLimit:Number = 2;
var Qreq:URLRequest;
var Qvars:URLVariables;
var Qloader:URLLoader;
//サーバからの返答の判定
var ResponseFlag = false;
//回答のこたえ
var answer:Number;
//問題取得用URL
var qUrl:Array = new Array();
qUrl[0] = "http://www.polidog.jp/test/test.php";
qUrl[1] = "http://www.polidog.jp/test/test.php?q=2";
qUrl[2] = "http://www.polidog.jp/test/test.php?q=3"
//返答内容
var AnswerMessage:Array = new Array();
AnswerMessage[0] = "不正解です。";
AnswerMessage[1] = "正解です。";
getQa();
yes_bt.addEventListener(MouseEvent.CLICK,answerYes);//回答「YES」
no_bt.addEventListener(MouseEvent.CLICK,answerNo);//回答「NO」
next_bt.addEventListener(MouseEvent.CLICK,nextQa);//次へ
//問題を取得する
function getQa(){
Qreq = new URLRequest(qUrl[qNum]);
Qreq.method = URLRequestMethod.POST;
Qvars = new URLVariables();
Qvars.q = qNum;
Qreq.data = Qvars;
Qloader = new URLLoader(Qreq);
Qloader.dataFormat = URLLoaderDataFormat.VARIABLES;
Qloader.load(Qreq);
Qloader.addEventListener(Event.COMPLETE, qaResponse);
}
//サーバからのレスポンスが完了してら処理する内容
function qaResponse (event:Event):void{
//↓戻り値を変数に格納
var vars:URLVariables = new URLVariables( event.target.data );
//trace( vars.comp );
qa.text = vars.q;
answer = vars.a;
ResponseFlag = true;
}
//回答処理
function answerAction(flag:Number):void{
if(ResponseFlag){
if(flag == answer){
answer_txt.text = AnswerMessage[1];
}else{
answer_txt.text = AnswerMessage[0];
}
}
}
//Yesが押されたら
function answerYes(event:MouseEvent){
answerAction(1);
}
//Noが押されたら
function answerNo(event:MouseEvent){
answerAction(0);
}
//次へボタン
function nextQa(event:MouseEvent){
answer_txt.text = "";
qNum++;
if(qNum >= qLimit ){//問題数の限界値にきたら最初の問題に戻す
qNum = 0;
}
getQa();
}
|
なんとなくActionScriptってつかめないなぁー。
結構ActionScriptの授業サボってたしね。。。
たぶんもっといい書き方あると思うので、だれか教えてください。
あーあとこーゆーのだったら、XMLとの連携にしたほうがいいのかも。
PHPでXML形式で吐き出してって感じにして。
今度やってみます。