|
stop();
mainmenu4.mbtnmix.addEventListener(MouseEvent.CLICK, changeScene);
mainmenu4.mbtnhanja.addEventListener(MouseEvent.CLICK, changeScene);
mainmenu4.mbtnword.addEventListener(MouseEvent.CLICK, changeScene);
mainmenu4.mbtngosa.addEventListener(MouseEvent.CLICK, changeScene);
mainmenu4.mbtnrandom.addEventListener(MouseEvent.CLICK, changeScene);
mainmenu4.mbtnhanmoonswag.addEventListener(MouseEvent.CLICK, changeScene);
reset_timer();
this.stage.focus = inputgosatxt;
var nextgosanum:int = 0;
var selecthggosa:String = '';
var selecthjgosa:String = '';
var selectnogosa:int = 0;;
var testnumgosa:String = '';;
var hanjagosainout;
var qatgosacnt:int;// 총 문항 갯수
var qarightanswerstrgosa = '';
var ngosacnt:int = 0; //현재 문항 번호
var ogosacnt:int = 0; // 정답 갯수
var qastartgosano:int = 0; //문항 세트 시작 번호
var qaendgosano:int = 0; //문항 세트 끝 번호
var qaselectarraygosa = []; //나온 숫자들을 넣을 배열공간을 만들어줍니다.
URLLoaderDataFormatgosalist();
function URLLoaderDataFormatgosalist()
{
var request:URLRequest = new URLRequest("hanjagosalist.txt");
var variables:URLLoader = new URLLoader();
variables.dataFormat = URLLoaderDataFormat.VARIABLES;
variables.addEventListener(Event.COMPLETE, completeHandlergosalist);
variables.addEventListener(IOErrorEvent.IO_ERROR, ongosaFileLoadError);
try
{
variables.load(request);
}
catch (error:Error)
{
trace("Unable to load URL: " + error);
}
}
function completeHandlergosalist(event:Event):void
{// 데이터를 읽은 후 실행되는 함수들
trace("외부 파일을 읽었습니다.");
var loadergosa:URLLoader = URLLoader(event.target);
hanjagosainout = loadergosa.data;
randomgosalist(1, hanjagosainout.hanjagosalistNum);
}
function nonoutgosafile() {
trace("내부 파일을 읽었습니다.");
hanjagosainout = this;
randomgosalist(1, this.hanjagosalistNum);
}
function ongosaFileLoadError(event:Event): void {
nonoutgosafile();
}
function randomgosalist(startgosano, cntgosanum){
var qasamplearray:Array = [];
qaselectarray = [];
// var testarray:Array = new Array();
var takelistnum:int = 0;
var qastartgosano:int = int(startgosano);
var qaendgosano:int = int(startgosano) + int(cntgosanum) -1;
// trace(startgosano+"번 부터 "+cntgosanum+"번 까지");
takelistnum = int(cntgosanum);
qatgosacnt = takelistnum; // 고사성어 총 개수
if (qmaxcheckbox.selected && (qatgosacnt > int(qmaxinputT.text)) && (qmaxinputT.text != '')) {
qatgosacnt = int(qmaxinputT.text);} // 문항 갯수 정하기
else{ qmaxinputT.text = String(qatgosacnt); }
// trace("takelistnum "+takelistnum);
// trace("startgosano "+startgosano);
tgosacntT.text = qatgosacnt.toString();
for(var i=0; i<takelistnum; i++){
qasamplearray[i]= int(startgosano) + 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); //나온 숫자를 준비해둔 배열공간에 넣어줍니다. 해당 단원의 문제들 번호 목록
}
var testnumgosa:int = qaselectarray[nextgosanum];
// if (hanjagosainout) getnowqagosa(hanjagosainout, testnumgosa); else getnowqagosa(root, testnumgosa);
getnowqagosa(testnumgosa);
qasamplearray = [];
gosaqatopmsgT.text = "다음과 같은 뜻을 가진 성어의 음을 쓰고 ENTER를 누르세요."
}
function getnowqagosa(qanum) {
var lineWnReT:String = hanjagosainout["gosalist"+qanum];
lineWnReT = lineWnReT.replace(regExp, "");
var gosafulllength:int = lineWnReT.length;;
var gosalength:int = int(lineWnReT.substr(0,1));
// var gosalengthHalf = gosalength/2;
selecthggosa = lineWnReT.substr(1, gosalength);
selecthjgosa = lineWnReT.substr(gosalength+1, gosalength);
qgosaT.text = lineWnReT.substr(gosalength*2+1, gosafulllength);
if (showhanjacheck.selected) viewhanjaT.text = selecthjgosa; else viewhanjaT.text = '';
selectnogosa = qanum;
ngosacntT.text= String(nextgosanum+1);
this.stage.focus = inputgosatxt;
}
//addEventListener(MouseEvent.CLICK, changeScene);
/* 키 누름 이벤트
키보드에서 아무 키를 누를 때마다 아래에 정의되어 있는 fl_KeyboardDownHandler 함수가 실행됩니다.
지침:
1. 아래에서 "// 사용자 정의 코드 시작" 행 다음의 새 행에 사용자 정의 코드를 추가합니다.
아무 키를 누를 때마다 코드가 실행됩니다.
*/
inputgosatxt.addEventListener(KeyboardEvent.KEY_DOWN, inputgosa_KeyboardDownHandler);
function inputgosa_KeyboardDownHandler(event:KeyboardEvent):void
{
// trace("키 코드 눌림: " + event.keyCode);
if ((event.keyCode == 13) && (this.stage.focus == inputgosatxt) && (inputgosatxt.text != '')) {
checkgosaox();
// 사용자 정의 코드 시작
// 이 예제 코드는 [출력] 패널에 "키 코드 눌림:" 문자열과 눌린 키의 키 코드를 표시합니다.
// 사용자 정의 코드 종료
} else if (event.keyCode == 33) {gobeforegosa();
} else if (event.keyCode == 34) {gonextgosa();
}
}
function checkgosaox():void {
if (nextgosanum < qatgosacnt){
if (selecthggosa == inputgosatxt.text) {
gosaqatopmsgT.text = "정답입니다.";
if ( qarightanswerstrgosa.indexOf(selecthjgosa) >= 0) { //이미 정답을 맞춘 문제인지 확인하기
rightanswermsgT.text = "문제."+ nextgosanum+"번은 이미 정답을 맞춘 문제입니다."
// trace("이미 정답을 맞춘 문제입니다.");
} else {
qarightanswerstrgosa += selecthjgosa;
ogosacnt = ogosacnt +1;
ogosacntT.text = ogosacnt.toString();
}
nextgosanum = nextgosanum + 1;
rightanswermsgT.text = "문제."+ String(nextgosanum)+"번의 고사성어는 [ "+selecthggosa + "("+selecthjgosa + ")] 정답.";
if ((nextgosanum >= qatgosacnt) && (qatgosacnt > ogosacnt)) {
gosaqatopmsgT.text = "문제를 모두 풀었습니다. 다시 하려면 단어 버튼을 클릭하세요.";
rightanswermsgT.text = "틀린 문제를 확인하려면 [이전 문제]를 클릭하세요.";
qgosaT.text = '';
} else if (nextgosanum >= qatgosacnt) {
gosaqatopmsgT.text = "문제를 모두 풀었습니다. 다시 하려면 단어 버튼을 클릭하세요.";
qgosaT.text = '';
} else {
var qanumpost:Number = qaselectarray[nextgosanum];
getnowqagosa(qanumpost);
}
// if ((qatgosacnt == ogosacnt) && (nextgosanum >= qatgosacnt)){
if (qatgosacnt == ogosacnt){
qgosaT.text= "100점!";
gosaqatopmsgT.text = "백점! 님 좀 짱인듯!! 다시 도전하려면 버튼을 클릭하세요.";
hmTimer.stop();
}
inputgosatxt.text = '';
} else {
gosaqatopmsgT.text = "오답입니다. 다시 시도해보세요.";
}
} else {gosaqatopmsgT.text = "고사 성어 퀴즈를 시작하려면 단어, 과 버튼을 클릭하세요.";
}
// this.stage.focus = inputgosatxt;
}
btnwbefore.addEventListener(MouseEvent.CLICK, gobeforegosaC);
btnwnext.addEventListener(MouseEvent.CLICK, gonextgosaC);
btngoshowmehg.addEventListener(MouseEvent.CLICK, showmeanswerhg);
btngoshowmehj.addEventListener(MouseEvent.CLICK, showmehanja);
btnEnter.addEventListener(MouseEvent.CLICK, goEntergosa);
btngosaset0.addEventListener(MouseEvent.CLICK, gogosaset);
btngosaset1.addEventListener(MouseEvent.CLICK, gogosaset);
btngosaset2.addEventListener(MouseEvent.CLICK, gogosaset);
btngosaset3.addEventListener(MouseEvent.CLICK, gogosaset);
btngosaset4.addEventListener(MouseEvent.CLICK, gogosaset);
function gobeforegosaC(event:MouseEvent) {
gobeforegosa();
}
function gobeforegosa() {
if (nextgosanum > 0) {
nextgosanum = nextgosanum - 1;
var qanumpost:int = qaselectarray[nextgosanum];
getnowqagosa(qanumpost);
inputgosatxt.text = "";
if ( qarightanswerstrgosa.indexOf(selecthjgosa) >= 0){ //이미 정답을 맞춘 문제인지 확인하기
rightanswermsgT.text = "문제."+ (nextgosanum+1)+ "번은 이미 정답을 맞춘 문제입니다."
trace("이미 정답을 맞춘 문제입니다.");
} else { rightanswermsgT.text = ''; }
} else {
gosaqatopmsgT.text = "처음 문제입니다. 문제를 풀어 보세요.";
}
}
function gonextgosaC(event:MouseEvent) {
gonextgosa();
}
function gonextgosa() {
if (nextgosanum < qatgosacnt-1) {
nextgosanum = nextgosanum + 1;
var qanumpost:int = qaselectarray[nextgosanum];
getnowqagosa(qanumpost);
inputgosatxt.text = "";
if (( qarightanswerstrgosa.indexOf(selecthjgosa) >= 0) && (nextgosanum < qatgosacnt)){ //이미 정답을 맞춘 문제인지 확인하기
rightanswermsgT.text = "문제."+ (nextgosanum+1)+"번은 이미 정답을 맞춘 문제입니다."
trace("이미 정답을 맞춘 문제입니다.");
} else { rightanswermsgT.text = ''; }
} else {
gosaqatopmsgT.text = "마지막 문제입니다. 다시 하려면 단어 버튼을 누르세요.";
}
}
function showmeanswerhg(event:MouseEvent) {
inputgosatxt.text = selecthggosa;
}
function showmehanja(event:MouseEvent) {
viewhanjaT.text = selecthjgosa;
}
function goEntergosa(event:MouseEvent) {
checkgosaox();
}
function gogosaset(event:MouseEvent) {
nextgosanum = 0;
ogosacntT.text = '';
ogosacnt = 0;
// if (inoutgosatxt)
// randomqagosa(Number(getqagosalist.gosa1setStartno), Number(getqagosalist.gosa1setNum));
// else
var getsetname:String = event.currentTarget.name;
var getsetno:String = getsetname.substr(10,1);
randomgosalist(hanjagosainout["gosa"+getsetno + "setStartno"], hanjagosainout["gosa"+getsetno + "setNum"]);
// selectpartT.text = getsetno+"차";
if (getsetno == "0") selectpartT.text = "전체"
else selectpartT.text = getsetno+"차";
inputgosatxt.text = '';
rightanswermsgT.text = '';
qarightanswerstrgosa = '';
reset_timer();
this.stage.focus = inputgosatxt;
}