이 미션은 정말 힘들었던 것 같다..
flash와 웹개발언어의 연동 자체는 그렇게 어렵지 않았으나..
javascript와의 연동은 여러가지를 생각하고 적용하게 했다.
무지했던 flash와 javascript의 연동
첫번째시도.
sendAndLoad를 통한 연동
훌륭하게 실패! -> 엉뚱한 시도였다.
두번째시도.
getURL을 통한 javascript 함수 호출
성공하는 듯 보이면서 훌륭하게 실패! -> 값 전달이 안되더라..;;
세번째시도.
setVariable을 통한 연동
불안불안 하더니 실패! -> 리턴값이 너무 불안정 했다.
네번째시도.
ExternalInterface.addCallback을 통한 연동
성공도 했고 잘 되는 듯 했으나 실패! -> 이눔은 javascript 함수가 없어도 true만 주더라..
다섯번째시도.
ExternalInterface.call을 통한 연동
성공! 빠빠라밤~~
이걸 하면서 느낀점은
1. flash에서 데이터 형식은 아주 명확하게 정의하라.
2. 값을 받는 타입에 대해 꼭 예외처리를 하라
- null과 undefined는 엄연히 다르다. 그리고 null 이 리턴값으로 들어오면 이건 null로
처리하면 안되고 꼭 문자열 "null"로 처리하라.
그리고 undefined는 꼭 앞에 typeof를 써 데이터 타입 자체에 대해 예외 처리를 하라.
import flash.external.*;
var fromJavascriptVal:String = String(ExternalInterface.call("setJavascriptFunc", "parameter"));
if(fromJavascriptVal == "null") {
/*처리1*/
}
else if(typeof fromJavascriptVal == "undefined") {
/*처리2*/
}
else {
/*처리3*/
}