当前位置:  开发笔记 > 编程语言 > 正文

Actionscript3到JavaScript的沟通:最佳实践

如何解决《Actionscript3到JavaScript的沟通:最佳实践》经验,为你挑选了2个好方法。

在更抽象的层面然后是前一个问题,根据我的经验,有三种方法可以使用AS3从外部.swf调用html页面上的javascript函数:ExternalInterface,fscommand和navigateToURL.

让我们比较和对比这些方法(也许还有其他我没有列出的)并讨论每种方法的优点和缺点 - 现在,ExternalInterface 似乎是灵活性的方式,但是它适合所有情况吗?在执行速度方面是否有具体的好处或类似的东西?我很好奇 - 我们怎么想?



1> Matt W..:

创建ExternalInferface是为了使JS和Flash之间的通信更容易,因此使用其他任何东西都没有意义.通常的做法是在调用某些JS之前通过评估ExternalInterface.available属性的值来检查它是否可用.此属性告诉您是否要在其中调用某些JS的SWF位于提供外部接口的容器内.换句话说,如果使用ExternalInterface将起作用.如果它不可用,那么只需使用flash.net.sendToUrl.永远不要使用fscommand(),因为它使用VBScript并且可能导致与页面上的其他VBScript冲突.此外,您只能使用fscommand发送一个参数字符串,并且必须在JS端将其拆分.



2> Brian Hodge..:

如果你想沟通是同步或不作为这一切都取决于ExternaInterface能为其中返回数据navigatoToURL,并fscommand是异步的,只能调用javascript函数; 他们无法返回值或响应.

从与外部接口相关的实时文档:

在ActionScript中,您可以在HTML页面上执行以下操作:

调用任何JavaScript函数.

传递任意数量的参数,包含任何名称.

传递各种数据类型(布尔值,数字,字符串等).

从JavaScript函数接收返回值.

从HTML页面上的JavaScript,您可以:

调用ActionScript函数.

使用标准函数调用表示法传递参数.

将值返回给JavaScript函数.

flash.external.ExternalInterface课程是该课程的直接替代品flash.system.fscommand.

所以使用ExternalInterface是flash和Javascript函数之间的首选方法或通信,但如果调用只是异步,则可以使用flash.net.navigateToURL.

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有