クロスワードパズル


大幅に修正しました。 とりあえずTry Againもできるようになりました。





とにかくむずかしいアクションは使っっていないので、無駄が多いです。
それでもまあ、とりあえずは機能しますので、おいおい修正していければ良いと思っています。
使ったアクションスクリプトはこの画面には表示できませんでしたのでここに書きます。


○ムービークリップ box1から21 (ここに文字が表示される)

onClipEvent(load){
function yoko(){
this.text=_root.AnswerX.charAt(Z);
this.check();
}

function tate(){
this.text=_root.AnswerX.charAt(Z);
this.check();
}
function check(){
if(this.text=="あっている文字"){
_root.b1=1;}else{
_root.b1=0;}
}
}

【説明】
 Answer(x):入力されたテキストを代入する変数(1〜9まで)
 そこのテキストからZ番目の文字を抽出しています。
 このfunctionは 文字入力のムービークリップにあるボタンから呼ばれます。
 (縦のキーワードに当たる時はtate()が呼ばれ、横のキーワードの時はyoko()が呼ばれます。)
 さらに、ここで そのマスに入るべき文字が正解なら、ルートに旗をたてます。
 もちろん、まちがった場合は旗をおろします。


○ムービークリップ、入力スペースについているボタンアクション(例、問1のボタン)

on(release){
_root.answer1=yoko1;
for( i=1; i<6;i++){
eval("_root.box"+i+"yoko()");
}
this.gotoAndStop(1);
}

【説明】
 そのテキストが流し込まれるbox(ここでは_root.box1から_root.box5まで)に対してテキストの抽出を命令します。ここでは function yoko()が命令されています。


○神様のフレームアクション(ループ)

if(_root.b1*_root.b2*_root.b3*〜〜〜〜_root.b21==1){
_root.gotoAndStop(2);
}

【説明】
 全問正解したかどうかチェックする神様ムービークリップのフレームアクションです。
 文字のスペースがひとつづつ正解するたびに旗が立つ(1)ので 全部の編数値を掛けて
 全問正解だと、1になり、ひとつでも間違っていると0になります。
 1がたった時点で終了です。


ここも、
for(i=1;i<22;i++){
counter=eval("_root.b"+i)*counter;
}
if(counter==1){
_root.gotoAndStop(2)
}

なんて書くと『らしく』ていいんですけど、パッと見てわかりやすかったので
全部掛けてしまいました。


ここのスクリプトは全部もう一度打ち直したので 間違っているかも知れません。
もし、変なところがあったらご連絡ください。お願いいたします。


戻る