Flashlizi's blog-专注Flash相关开发
posts - 22, comments - 17, trackbacks - 0, articles - 0
IT博客
::
首页
::
新随笔
::
联系
::
聚合
::
管理
解决Form中ExternalInterface的Bug问题
Posted on 2007-09-10 16:13
flashlizi
阅读(1459)
评论(1)
编辑
收藏
引用
所属分类:
AS2
ExternalInterface API是专门处理flash与外部应用的交互的。在IE浏览器下,将flash对象放在form标签之间的时候,js就会报错,ExternalInterface的call和addcallback方法失效。网上有两种解决办法,经测试均有效。
1、加一个<form></form>在你嵌套flash的form里的<form>标记后面:
<
form
><
form
></
form
>
//
这里是你的flash代码内容。
</
form
>
这样代码并不好看,算是一个小hack吧。
2、添加如下JS在你的flash之前:
<
script type
=
"
text/javascript
"
>
function
ExternalInterfaceManager()
{
this
.registerMovie
=
function
(movieName)
{
if
(
!
window.fakeMovies) window.fakeMovies
=
new
Array();
window.fakeMovies[window.fakeMovies.length]
=
movieName;
}
this
.initialize
=
function
()
{
if
(document.all)
{
if
(window.fakeMovies)
{
for
(i
=
0
;i
<
window.fakeMovies.length;i
++
)
{
window[window.fakeMovies[i]]
=
new
Object();
}
window.onload
=
initializeExternalInterface;
}
}
}
}
function
initializeExternalInterface()
{
for
(i
=
0
;i
<
window.fakeMovies.length;i
++
)
{
var
movieName
=
window.fakeMovies[i];
var
fakeMovie
=
window[movieName];
var
realMovie
=
document.getElementById(movieName);
for
(
var
method
in
fakeMovie)
{
realMovie[method]
=
function
()
{flashFunction
=
"
<invoke name=\
""
+ method.toString() +
"
\
"
returntype=\
"
javascript\
"
>
"
+
__flash__argumentsToXML(arguments,
0
)
+
"
</invoke>
"
;
this
.CallFunction(flashFunction);}
}
window[movieName]
=
realMovie;
}
}
var
eim
=
new
ExternalInterfaceManager();
eim.registerMovie(
"
flash_id
"
);
eim.initialize();
</
script
>
注意:其中eim.registerMovie("flash_id"); 中的flash_id为你的swf的ID。
Feedback
#
re: 解决Form中ExternalInterface的Bug问题
回复
更多评论
2007-11-15 17:44 by
pan
感谢你的提醒.这也有一个不错的方法
http://kb.adobe.com/selfservice/viewContent.do?externalId=kb400730&sliceId=2
刷新评论列表
只有注册用户
登录
后才能发表评论。
Powered by:
IT博客
Copyright © flashlizi
日历
<
2007年9月
>
日
一
二
三
四
五
六
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
公告
因ZF禁止私自开设互动性质网站的原因,本人原来的blog网站:www.flashrek.com无限期暂停。而且虚拟空间访问速度慢,故在此开博,以后所有文章均在此发布。
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(3)
给我留言
查看公开留言
查看私人留言
随笔分类
(20)
AIR(1)
AJAX(5)
AS2(6)
AS3(7)
AS3设计模式(1)
Flex
随笔档案
(22)
2007年12月 (1)
2007年11月 (4)
2007年10月 (1)
2007年9月 (16)
搜索
最新评论
1. re: Input的特殊事件onpopertychange和oninput
事实上是事实是事实飒飒
--发发发发发发发发发发发发发发发发发发发发
2. re: Input的特殊事件onpopertychange和oninput
fefefe
--fefe
3. re: 在firefox中获取网页里的SWF对象
评论内容较长,点击标题查看
--17作业
4. re: AS3设计模式之一:单例模式(Singleton Pattern)
总结的很好,分享到我的博客喽!
--老姜
5. re: 游戏开发者的AS3数据结构
HAO
--GGGG
阅读排行榜
1. Input的特殊事件onpopertychange和oninput(7236)
2. AS3设计模式之一:单例模式(Singleton Pattern)(3644)
3. FlashTail:简单实用的Actionscript调试工具(3133)
4. 游戏开发者的AS3数据结构(3127)
5. 在firefox中获取网页里的SWF对象(3024)
评论排行榜
1. 谈谈Actionscript中的惰性函数定义模式(Lazy Function Definition)(6)
2. FlashTail:简单实用的Actionscript调试工具(4)
3. AS3设计模式之一:单例模式(Singleton Pattern)(2)
4. Input的特殊事件onpopertychange和oninput(2)
5. AS2:实现动态文本的描边及阴影效果(1)