Advertisement
Guest User

Flash/JavaScript bridge code

a guest
Oct 22nd, 2014
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function __flash__arrayToXML(obj) {
  2.     var s = "<array>";
  3.     for (var i=0; i<obj.length; i++) {
  4.         s += "<property id=\"" + i + "\">" + __flash__toXML(obj[i]) + "</property>";
  5.     }
  6.     return s+"</array>";
  7. }
  8. function __flash__argumentsToXML(obj,index) {
  9.     var s = "<arguments>";
  10.     for (var i=index; i<obj.length; i++) {
  11.         s += __flash__toXML(obj[i]);
  12.     }
  13.     return s+"</arguments>";
  14. }
  15. function __flash__objectToXML(obj) {
  16.     var s = "<object>";
  17.     for (var prop in obj) {
  18.         s += "<property id=\"" + prop + "\">" + __flash__toXML(obj[prop]) + "</property>";
  19.     }
  20.     return s+"</object>";
  21. }
  22. function __flash__escapeXML(s) {
  23.     return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;");
  24. }
  25. function __flash__toXML(value) {
  26.    var type = typeof(value);
  27.     if (type == "string") {
  28.         return "<string>" + __flash__escapeXML(value) + "</string>";
  29.     } else if (type == "undefined") {
  30.         return "<undefined/>";
  31.     } else if (type == "number") {
  32.         return "<number>" + value + "</number>";
  33.     } else if (value == null) {
  34.         return "<null/>";
  35.     } else if (type == "boolean") {
  36.         return value ? "<true/>" : "<false/>";
  37.     } else if (value instanceof Date) {
  38.         return "<date>" + value.getTime() + "</date>";
  39.    } else if (value instanceof Array) {
  40.        return __flash__arrayToXML(value);
  41.    } else if (type == "object") {
  42.        return __flash__objectToXML(value);
  43.    } else {
  44.         return "<null/>"; //???
  45.     }
  46. }
  47. function __flash__addCallback(instance, name) {
  48.   instance[name] = function () {
  49.     return eval(instance.CallFunction("<invoke name=\""+name+"\" returntype=\"javascript\">" + __flash__argumentsToXML(arguments,0) + "</invoke>"));
  50.   }
  51. }
  52. function __flash__removeCallback(instance, name) {
  53.   instance[name] = null;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement