|
//addEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);
stop();
//btnunit1.stop();
var nextwordnum:int = 0;
var selecthg:String;
var selecthj:String;
var selectno:int;
var fontsizecon:Number = 180;
var hanjawordinout;
var testnum:int;
var qatwordcnt:int;
var qarightanswerstr:String = '';
var nwordcnt:int = 0; //현재 문항 번호
var owordcnt:int = 0; // 정답 갯수
var qastartwordno:int = 0; //문항 세트 시작 번호
var qaendwordno:int = 0; //문항 세트 끝 번호
var qaselectarray:Array = new Array(); //나온 숫자들을 넣을 배열공간을 만들어줍니다.
var qasamplearray:Array = new Array();
//var regExp:RegExp = /\<.*?\>/gsx; //데이터 파일에서 \n 줄바꿈문자 제거용
//function fl_EnterFrameHandler(event:Event):void
//{
mainmenu3.mbtnmix.addEventListener(MouseEvent.CLICK, changeScene);
mainmenu3.mbtnhanja.addEventListener(MouseEvent.CLICK, changeScene);
mainmenu3.mbtnword.addEventListener(MouseEvent.CLICK, changeScene);
mainmenu3.mbtngosa.addEventListener(MouseEvent.CLICK, changeScene);
mainmenu3.mbtnrandom.addEventListener(MouseEvent.CLICK, changeScene);
mainmenu3.mbtnhanmoonswag.addEventListener(MouseEvent.CLICK, changeScene);
reset_timer();
//}
URLLoaderDataFormatWordlist();
function URLLoaderDataFormatWordlist()
{
var request:URLRequest = new URLRequest("hanjawordlist.txt");
var variables:URLLoader = new URLLoader();
variables.dataFormat = URLLoaderDataFormat.VARIABLES;
variables.addEventListener(Event.COMPLETE, completeHandlerWordlist);
variables.addEventListener(IOErrorEvent.IO_ERROR, onWordFileLoadError);
try
{
variables.load(request);
}
catch (error:Error)
{
trace("Unable to load URL: " + error);
}
}
function completeHandlerWordlist(event:Event):void
{// 데이터를 읽은 후 실행되는 함수들
var loaderword:URLLoader = URLLoader(event.target);
hanjawordinout = loaderword.data;
randomwordlist(1, hanjawordinout.hanjawordNum);
}
function nonoutWordfile() {
trace("내부 파일을 읽었습니다.");
hanjawordinout = this;
randomwordlist(1, this.hanjawordNum);
}
function onWordFileLoadError(event:Event): void {
nonoutWordfile();
}
function randomwordlist(startwordno, cntwordnum){
qasamplearray = [];
qaselectarray = [];
// var testarray:Array = new Array();
var takelistnum:int;
var qastartwordno:int = int(startwordno);
var qaendwordno:int = int(startwordno) + int(cntwordnum) -1;
// trace(startwordno+"번 부터 "+cntwordnum);
takelistnum = int(cntwordnum);
qatwordcnt = takelistnum; // 고사성어 총 개수
if (qmaxcheckbox.selected && (qatwordcnt > int(qmaxinputT.text)) && (qmaxinputT.text != '')) {
qatwordcnt = int(qmaxinputT.text);} // 문항 갯수 정하기
else{ qmaxinputT.text = String(qatwordcnt); }
// trace("takelistnum "+takelistnum);
// trace("startwordno "+startwordno);
twordcntT.text = qatwordcnt.toString();
for(var i=0; i<takelistnum; i++){
qasamplearray[i]= int(startwordno) + i;//.push(i); //고사성어 갯수 만큼 배열로 줬습니다.
}
for(i=0; i<takelistnum; i++){ //keynum 수만큼 밑에 4줄을 반복실행하라고 명령했습니다.
var qakr = int(Math.random()*qasamplearray.length); //random(qasamplearray.length); //kr에 현재 배열의 길이 안에서 난수를 하나 발생시켜 넣습니다.
var qakone = qasamplearray[qakr]; //난수번째에 있는 배열의 숫자를 qakone에 넣습니다.
qasamplearray.splice(qakr,1); //주어진 배열에서 지금 뺀 숫자는 없앱니다. 다시 뽑히면 곤란하니까요.
qaselectarray.push(qakone); //나온 숫자를 준비해둔 배열공간에 넣어줍니다. 해당 단원의 문제들 번호 목록
}
testnum = qaselectarray[nextwordnum];
// if (hanjawordinout) getnowqaword(hanjawordinout, testnum); else getnowqaword(root, testnum);
getnowqaword(testnum);
qasamplearray = [];
wordqatopmsgT.text = "다음 한자어의 음을 쓰고 ENTER를 누르세요."
}
function getnowqaword(qanum) {
var wordlength:int;
// wordlength = hanjawordinout["hanjaword"+qanum].length;
var lineWnReT:String = hanjawordinout["hanjaword"+qanum];
lineWnReT = lineWnReT.replace(regExp, "");
wordlength = lineWnReT.length;
var wordlengthHalf = wordlength/2;
selecthg = lineWnReT.substr(0, wordlengthHalf);
selecthj = lineWnReT.substr(wordlengthHalf, wordlengthHalf);
qwordT.text = selecthj;
selectno = qanum;
nwordcntT.text= String(nextwordnum+1);
if (wordlengthHalf <= 4) fontsizecon = 180
else if ((wordlengthHalf > 4) && (wordlengthHalf <= 8)) fontsizecon = 760/wordlengthHalf
else if (wordlengthHalf > 8) fontsizecon = 90;
this.stage.focus = inputwordtxt;
var my_fmt:TextFormat = new TextFormat();
my_fmt.size = fontsizecon;
qwordT.setTextFormat(my_fmt);
// var you_fmt:TextFormat = new TextFormat();
// you_fmt.size = 20;//fontsizecon;
// unit1.TextField.setTextFormat(you_fmt);
}
//addEventListener(MouseEvent.CLICK, changeScene);
/* 키 누름 이벤트
키보드에서 아무 키를 누를 때마다 아래에 정의되어 있는 fl_KeyboardDownHandler 함수가 실행됩니다.
지침:
1. 아래에서 "// 사용자 정의 코드 시작" 행 다음의 새 행에 사용자 정의 코드를 추가합니다.
아무 키를 누를 때마다 코드가 실행됩니다.
*/
inputwordtxt.addEventListener(KeyboardEvent.KEY_DOWN, input_KeyboardDownHandler);
function input_KeyboardDownHandler(event:KeyboardEvent):void
{
// trace("키 코드 눌림: " + event.keyCode);
if ((event.keyCode == 13) && (this.stage.focus == inputwordtxt) && (inputwordtxt.text != '')) {
checkwordox();
// 사용자 정의 코드 시작
// 이 예제 코드는 [출력] 패널에 "키 코드 눌림:" 문자열과 눌린 키의 키 코드를 표시합니다.
// 사용자 정의 코드 종료
} else if (event.keyCode == 33) {gobeforenext();
} else if (event.keyCode == 34) {gonext();
}
}
function checkwordox():void {
if (nextwordnum < qatwordcnt){
if (selecthg == inputwordtxt.text) {
wordqatopmsgT.text = "정답입니다.";
if ( qarightanswerstr.indexOf(selecthj) >= 0) { //이미 정답을 맞춘 문제인지 확인하기
rightanswermsgT.text = "문제."+ nextwordnum+"번은 이미 정답을 맞춘 문제입니다."
trace("이미 정답을 맞춘 문제입니다.");
} else {
qarightanswerstr += selecthj;
owordcnt = owordcnt +1;
owordcntT.text = owordcnt.toString();
}
nextwordnum = nextwordnum + 1;
rightanswermsgT.text = "문제."+ String(nextwordnum)+"번 "+selecthj + "의 음은 [ "+selecthg + " ] 정답.";
if ((nextwordnum >= qatwordcnt) && (qatwordcnt > owordcnt)) {
wordqatopmsgT.text = "문제를 모두 풀었습니다. 다시 하려면 단어 버튼을 클릭하세요.";
rightanswermsgT.text = "틀린 문제를 확인하려면 [이전 문제]를 클릭하세요.";
qwordT.text = '';
} else if (nextwordnum >= qatwordcnt) {
wordqatopmsgT.text = "문제를 모두 풀었습니다. 다시 하려면 단어 버튼을 클릭하세요.";
qwordT.text = '';
} else {
var qanumpost:Number = qaselectarray[nextwordnum];
getnowqaword(qanumpost);
}
// if ((qatwordcnt == owordcnt)&&(nextwordnum >= qatwordcnt)) {
if (qatwordcnt == owordcnt) {
qwordT.text= "100점!";
wordqatopmsgT.text = "백점! 님 좀 짱인듯!! 다시 도전하려면 버튼을 클릭하세요.";
hmTimer.stop();
}
inputwordtxt.text = '';
} else {
wordqatopmsgT.text = "오답입니다. 다시 시도해보세요.";
}
} else {wordqatopmsgT.text = "단어 퀴즈를 시작하려면 단어, 과 버튼을 클릭하세요.";
}
this.stage.focus = inputwordtxt;
}
btnwbefore.addEventListener(MouseEvent.CLICK, gobeforenextC);
btnwnext.addEventListener(MouseEvent.CLICK, gonextC);
btnwshowme.addEventListener(MouseEvent.CLICK, showmeanswer);
btnEnter.addEventListener(MouseEvent.CLICK, goEnter);
btnwordset0.addEventListener(MouseEvent.CLICK, gowordset);
btnwordset1.addEventListener(MouseEvent.CLICK, gowordset);
btnwordset2.addEventListener(MouseEvent.CLICK, gowordset);
btnwordset3.addEventListener(MouseEvent.CLICK, gowordset);
btnwordset4.addEventListener(MouseEvent.CLICK, gowordset);
for (var i=1;i<24;i++){
this["btnunit"+i].addEventListener(MouseEvent.CLICK, gotounit);
}
function gobeforenextC(event:MouseEvent) {
gobeforenext();
}
function gobeforenext() {
if (nextwordnum > 0) {
nextwordnum = nextwordnum - 1;
var qanumpost:int = qaselectarray[nextwordnum];
getnowqaword(qanumpost);
inputwordtxt.text = "";
if ( qarightanswerstr.indexOf(selecthj) >= 0){ //이미 정답을 맞춘 문제인지 확인하기
rightanswermsgT.text = "문제."+ (nextwordnum+1)+ "번은 이미 정답을 맞춘 문제입니다."
trace("이미 정답을 맞춘 문제입니다.");
} else { rightanswermsgT.text = ''; }
} else {
wordqatopmsgT.text = "처음 문제입니다. 문제를 풀어 보세요.";
}
}
function gonextC(event:MouseEvent) {
gonext();
}
function gonext() {
if (nextwordnum < qatwordcnt-1) {
nextwordnum = nextwordnum + 1;
var qanumpost:int = qaselectarray[nextwordnum];
getnowqaword(qanumpost);
inputwordtxt.text = "";
if (( qarightanswerstr.indexOf(selecthj) >= 0) && (nextwordnum < qatwordcnt)){ //이미 정답을 맞춘 문제인지 확인하기
rightanswermsgT.text = "문제."+ (nextwordnum+1)+"번은 이미 정답을 맞춘 문제입니다."
trace("이미 정답을 맞춘 문제입니다.");
} else { rightanswermsgT.text = ''; }
} else {
wordqatopmsgT.text = "마지막 문제입니다. 다시 하려면 단어 버튼을 누르세요.";
}
}
function showmeanswer(event:MouseEvent) {
inputwordtxt.text = selecthg;
}
function goEnter(event:MouseEvent) {
checkwordox();
}
function gowordset(event:MouseEvent) {
nextwordnum = 0;
owordcntT.text = '';
owordcnt = 0;
// if (inoutgosatxt)
// randomqagosa(Number(getqagosalist.gosa1setStartno), Number(getqagosalist.gosa1setNum));
// else
var getsetname:String = event.currentTarget.name;
var getsetno:String = getsetname.substr(10,1);
randomwordlist(hanjawordinout["word"+getsetno + "setStartno"], hanjawordinout["word"+getsetno + "setNum"]);
// selectpartT.text = getsetno+"차";
if (getsetno == "0") selectpartT.text = "전체"
else selectpartT.text = getsetno+"차";
/*
if (event.currentTarget.name == "btnwordset0") {
randomwordlist(1, hanjawordinout.hanjawordNum);
selectpartT.text = '총 문항수 :';
} else if (event.currentTarget.name == "btnwordset1") {
randomwordlist(hanjawordinout.word1setStartno, hanjawordinout.word1setNum);
selectpartT.text = '1s문항수 :';
} else if (event.currentTarget.name == "btnwordset2") {
randomwordlist(hanjawordinout.word2setStartno, hanjawordinout.word2setNum);
selectpartT.text = '2s문항수 :';
} else if (event.currentTarget.name == "btnwordset3") {
randomwordlist(hanjawordinout.word3setStartno, hanjawordinout.word3setNum);
selectpartT.text = '3s문항수 :';
} else if (event.currentTarget.name == "btnwordset4") {
randomwordlist(hanjawordinout.word4setStartno, hanjawordinout.word4setNum);
selectpartT.text = '4s문항수 :';
}
*/
inputwordtxt.text = '';
rightanswermsgT.text = '';
qarightanswerstr = '';
reset_timer();
}
function gotounit(event:MouseEvent) {
nextwordnum = 0;
owordcntT.text = '';
owordcnt = 0;
var getunitname:String = event.currentTarget.name;
var getunitno:String = getunitname.substr(7,2);
// trace("event.currentTarget.name "+event.currentTarget.name );
randomwordlist(hanjawordinout["unit"+getunitno + "NumStartno"], hanjawordinout["unit"+getunitno + "Num"]);
selectpartT.text = getunitno+"과";
inputwordtxt.text = '';
rightanswermsgT.text = '';
qarightanswerstr = '';
reset_timer();
}