2011年6月29日 星期三

[flash<->js] passing json using ExternalInterface

js call flash function(js -> flash)
[in flash]
ExternalInterface.addCallback("getData", fromJs_getData);

[in html]
var obj = document.getElementById("myflashcontent");
obj.getData();

flash call js function(flash ->js)
[in flash]
ExternalInterface.call("sendData", args);

[in html]
function sendData() {
console.log("sendData[0]:"+arguments[0]);
)



passing json
中文要用escape(URL-encoded)
不然遇到\r\n會出問題。
[in flash]
private function fromJs_getData():String {
return encodeJson({"body":escape(txt_show.text), "type":mycb.selectedIndex});
}

[in html]
var strJSON = obj.getData();
var buf = JSON.parse(strJSON);
console.log("JSON body:"+unescape(buf.body)+",type:"+buf.type);

沒有留言:

張貼留言