응용 프로그램이 로드되면
initApp()
메서드가 Flex 응용 프로그램에 대해 호출되거나 타임라인(비함수) 코드가 Flash Professional 응용 프로그램에 대해 실행됩니다. 이 코드는 Validator 클래스에서 검증할 샘플 XML 패킷을 정의합니다. 다음 코드가 실행됩니다.
employeeXML =
<employee id="12345">
<firstName>John</firstName>
<lastName>Doe</lastName>
<costCenter>12345</costCenter>
<costCenter>67890</costCenter>
</employee>;
}
XML 패킷은 스테이지의 TextArea 구성 요소 인스턴스에서 나중에 표시됩니다. 이 단계에서는 유효성을 다시 검사하기 전에 XML 패킷을 수정할 수 있습니다.
사용자가 Validate 버튼을 클릭하면
validateData()
메서드가 호출됩니다. 이 메서드는 Validator 클래스의
validateEmployeeXML()
메서드를 사용하여 직원 XML 패킷의 유효성을 검사합니다. 다음 코드는
validateData()
메서드를 보여 줍니다.
function validateData():void
{
try
{
var tempXML:XML = XML(xmlText.text);
Validator.validateEmployeeXML(tempXML);
status.text = "The XML was successfully validated.";
}
catch (error:FatalError)
{
showFatalError(error);
}
catch (error:WarningError)
{
showWarningError(error);
}
catch (error:Error)
{
showGenericError(error);
}
}
먼저 TextArea 구성 요소 인스턴스
xmlText
의 내용을 사용하여 임시 XML 객체가 만들어집니다. 그 다음 사용자 정의 Validator 클래스(com.example.programmingas3/errors/Validator.as)의
validateEmployeeXML()
메서드가 호출되고 임시 XML 객체가 매개 변수로 전달됩니다. XML 패킷이 유효한 경우
status
Label 구성 요소 인스턴스에 성공 메시지가 표시되며 응용 프로그램이 종료됩니다.
validateEmployeeXML()
메서드에서 사용자 정의 오류(FatalError, WarningError 또는 일반 오류 발생)가 발생한 경우 적합한
catch
문이 실행되며
showFatalError()
,
showWarningError()
또는
showGenericError()
메서드가 호출됩니다. 이 메서드는 각각 사용자에게 특정 오류 발생을 알리기 위해
statusText
라는 텍스트 영역에 적합한 메시지를 표시하며, 특정 메시지로
status
Label 구성 요소도 업데이트합니다.
직원 XML 패킷에 대한 유효성 검사 중 치명적 오류가 발생하면 다음 코드와 같이
statusText
텍스트 영역에 오류 메시지가 표시되고
xmlText
TextArea 구성 요소 인스턴스 및
validateBtn
Button 구성 요소 인스턴스가 비활성화됩니다.
function showFatalError(error:FatalError):void
{
var message:String = error.message + "\n\n";
var title:String = error.getTitle();
statusText.text = message + " " + title + "\n\nThis application has ended.";
this.xmlText.enabled = false;
this.validateBtn.enabled = false;
hideButtons();
}
치명적 오류가 아닌 경고 오류가 발생한 경우에는
statusText
TextArea 인스턴스에 오류 메시지가 표시되지만
xmlText
TextField 및 Button 구성 요소 인스턴스는 비활성화되지 않습니다.
showWarningError()
메서드는
statusText
텍스트 영역에 사용자 정의 오류 메시지를 표시하며, 이 메시지는 사용자에게 XML 유효성 검증을 계속할지 아니면 스크립트를 취소할지 선택하도록 요청합니다. 다음 예제는
showWarningError()
메서드를 보여 줍니다.
function showWarningError(error:WarningError):void
{
var message:String = error.message + "\n\n" + "Do you want to exit this application?";
showButtons();
var title:String = error.getTitle();
statusText.text = message;
}
사용자가 Yes 또는 No 버튼을 클릭하면
closeHandler()
메서드가 호출됩니다. 다음 예제는
closeHandler()
메서드를 보여 줍니다.
function closeHandler(event:CloseEvent):void
{
switch (event.detail)
{
case yesButton:
showFatalError(new FatalError(9999));
break;
case noButton:
statusText.text = "";
hideButtons();
break;
}
}
사용자가 Yes를 클릭하여 스크립트를 취소하도록 선택한 경우 FatalError가 발생하여 응용 프로그램이 종료됩니다.