本文介绍了Flex 外部接口回调的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
弹性:
public function callFromJavaScript():String
{
test.label='dfdsfsdf';
return "1";
}
public function init():void {
ExternalInterface.addCallback("sendToFlash", callFromJavaScript);
}
HTML
<object classid='clsid:x-x-x-x-x' height='200px' width='300px'>
<param name="allowScriptAccess" value="always" />
<param name='src' value='${swf}.swf'/>
<embed name='mySwf' id='qwe' src='${swf}.swf' height='200px' width='300px'/>
</object>
我知道有多种 (JavaScript) 方法,例如:document.getElementById('FlexAppId').setName(name);
I know there are multiple (JavaScript) methods like:document.getElementById('FlexAppId').setName(name);
然而:
- 我不知道哪个是跨浏览器兼容的(无法安装 IE 进行测试)
- 我尝试了多个但我无法让它们工作(在任何浏览器中),我可能使用了错误的 ID,我一直在试用 &错误几个小时,但我没有任何工作.(我听说本地文件系统上的 ExternalInterface.addCallback 有问题?我应该上传 swf 吗?< flex 代码是否正确& 问题 = JavaScript/html 方面?)
推荐答案
ExternalInterface
函数在浏览器和操作系统之间存在问题.一些建议是,
ExternalInterface
functions are know to have issues across browsers and operating systems. Some of the recommendations are,
- 用户
swfobject
或任何其他标准库来嵌入
您的 swf.(swfobject) - 使用allowscriptaccess=always"
- 为嵌入标签提供正确的
id
和name
id
和name
属性应该始终相同.- 如果您的 swf 文件来自与 html 页面不同的域,请使用
Security.AllowDomain('domain-of-html-page.com')
- User
swfobject
or any other standard library toembed
your swf. (swfobject) - Use 'allowscriptaccess=always'
- Give proper
id
andname
to the embed tag id
andname
attribute should be always same.- If your swf file is coming from a different domain than the html page, use
Security.AllowDomain('domain-of-html-page.com')
这篇关于Flex 外部接口回调的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!