Posts Tagged ‘ExternalInterface’
Aug 05 2007
调试的时候直觉一直很灵,这次也没错。
可惜昨天调试这么奇怪,已经走到确认是IE下的form 和ExternalInterface.addCallback的冲突了,可惜不知道什么原因失败,让我以为是直觉错了.
让我调试了那么久 把所有Actionscript 2.0 的代码全部改写成 ActionScript 3.0的代码.. 我容易吗?! 气死..
话题回归啊…
ExternalInterface.addCallback在IE下自动生成代码的时候,如果Flash那个Object 是在Form这个标签下,那么就会产生错误(有的情况下可能工作正常?!有待考证!!),原因是那个Flash对象的ID找不到了。
解决的方法呢.. 暂时只有:把那个Flash从Form里面移出来。
–Neio Oct.1 2007
最近发现是IE下要使用Object, Firefox下使用Embed,这样才能正确找到Flash对象,即通过ID来找到Flash对象。
Aug 05 2007
ExternalInterface.addCallback
Posted by neio
by Neio
今天调试Flash 的程序,汗 一个, IE莫名其妙的一直找不到FLASH Object,这里顺便摘录一下ExternalInterface.addCallback所自动生成的内容:
function __flash__arrayToXML(obj) {
var s = "";
for (var i=0; i
s += "
" + __flash__toXML(obj[i]) + "";
}
return s+" ";
}
function __flash__argumentsToXML(obj,index) {
var s = "";
for (var i=index; i
s += __flash__toXML(obj[i]);
}
return s+" ";
}
function __flash__objectToXML(obj) {
var s = "";
}
function __flash__escapeXML(s) {
return s.replace(/&/g, "&")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");
}
function __flash__toXML(value) {
var type = typeof(value);
if (type == "string") {
return "" + __flash__escapeXML(value) + " ";
} else if (type == "undefined") {
return " ";
} else if (type == "number") {
return "" + value + " ";
} else if (value == null) {
return "";
} else if (type == "boolean") {
return value ? "
" : "";
} else if (value instanceof Date) {
return "" + value.getTime() + " ";
} else if (value instanceof Array) {
return __flash__arrayToXML(value);
} else if (type == "object") {
return __flash__objectToXML(value);
} else {
return "";
}
}
function __flash__addCallback(instance, name) {
instance[name] = function () {
return eval(
instance.CallFunction(
""
+ __flash__argumentsToXML(arguments,0)
+ " "));
}
}
}
function __flash__removeCallback(instance, name) {
instance[name] = null;
}






