你现在的位置 -> javascript » 实验室

Javascript与SWF交互

星期四, 七月 1st, 2010, 16:51 | YSjia 点击1572次

最近在做Flash与Javascript上传控件,但是发现Flash还真是问题多多,现在总结一下,留备忘,有些是网上找来的,已经不知道作者是谁了… …

Javascript和swf在网页中交互一般可有以下几种情况:

1.swf和这些调用的javascript在同域

2.swf和这些调用的javascript在不同域,比如加载远程的swf然后call别地方的服务

对于swf跨域call服务的问题,可同过crossdomain.xml配置解决。

但对于加载远程的swf,默认情况下,根本不能将里面的方法成功注册为向javascript公开的方法,一般会报此类错误:

a) SecurityError: Error #2060: 安全沙箱冲突:ExternalInterface ,调用者 remote.com/test.swf(所加载的远程swf) 不能访问 127.0.0.1(本机的一个服务)

at flash.external::ExternalInterface$/_initJS()
at flash.external::ExternalInterface$/addCallback()

b) 错误: uncaught exception: Error calling method on NPObject! [plugin exception: Error in Actionscript. Use a try/catch block to find error.]

解决办法

对于a错误,是因为远程的swf加载到本地后没有权限去访问当前html文档,对于这个我们只需要在输出swf的时候设置 allowScriptAccess 属性,一般设置为always.即可解决。

对于b错误,是因为默认actionscript中不允许向将方法注册到不同域的 html文档中, 对于这个我们只需要在as中加一下代码即可解决:

import flash.system.Security;

Security.allowDomain(“*”);
Security.allowInsecureDomain(“*”);

原创文章转载请注明:YSlove.net
本文固定链接:http://yslove.net/2010/07/javascriptyuswfjiaohu/


如果你喜欢请+1 ^_^

Tags: ,

留下你的足迹

分类

随机作品

士兵突击留念

士兵突击里许三多的形象 非常有吸引力 一个有着坚强的性格 不抛弃 不放弃的精神 决定用自己的双手把他画下来

圣诞主页

圣诞快乐

GMC Global Tour 2010 Expo

2010 Shanghai Expo

UAT9