Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash ActionScript:fscommand与ExternalInterface_Flash_Actionscript_Externalinterface_Fscommand - Fatal编程技术网

Flash ActionScript:fscommand与ExternalInterface

Flash ActionScript:fscommand与ExternalInterface,flash,actionscript,externalinterface,fscommand,Flash,Actionscript,Externalinterface,Fscommand,在ActionScript中,您有两个与主机通信的选项。(在我的例子中是一个.NET应用程序,它使用AxInterop.shockwavelashObjects.dll来托管flash电影) 两者的主要区别是什么 可能是fscommand在主机端到达时有一点延迟吗?(也就是说,它没有阻塞,因此可能会与外部接口调用混淆?ExternalInterface直接替代fscommand,后者是Flash和容器应用程序之间通信的旧方法(Flash前播放器8)(请参阅) 再次从文档中可以看出,Externa

在ActionScript中,您有两个与主机通信的选项。(在我的例子中是一个.NET应用程序,它使用AxInterop.shockwavelashObjects.dll来托管flash电影)

两者的主要区别是什么


可能是fscommand在主机端到达时有一点延迟吗?(也就是说,它没有阻塞,因此可能会与外部接口调用混淆?

ExternalInterface
直接替代
fscommand
,后者是Flash和容器应用程序之间通信的旧方法(Flash前播放器8)(请参阅)

再次从文档中可以看出,
ExternalInterface
优于
fscommand
的优点如下:

  • 您可以使用任何JavaScript函数,而不仅仅是您需要的函数 可以与fscommand()函数一起使用
  • 您可以传递任意数量的参数和任意名称;你不是 仅限于传递命令和单个字符串参数。这给 外部API比fscommand()灵活得多
  • 您可以传递各种数据类型(例如布尔、数字和 字符串);您不再局限于字符串参数
  • 您可以接收调用的值,然后返回该值 立即发送到ActionScript(作为所做调用的返回值)

如果您的目标是Flash Player 8或更高版本,建议您通常使用
ExternalInterface

,我建议使用ExternalInterface over fscommand。我认为fscommand或多或少已被弃用

也就是说,您提到的fscommand是非阻塞的可能是正确的,因为ExternalInterface.call()是同步的,能够从被调用的外部函数返回值。我想可能会有一些情况,边缘情况,这可能有利于fscommand,但您可能需要测试它

我再次推荐ExternalInterface,它有许多fscommand没有的功能,比如在ActionScript和典型外部环境(网页中的JavaScript)之间保留数据类型和自动序列化/反序列化对象,而fscommand只发送字符串。在.NET应用程序中使用ExternalInterface,您可能需要自己解析XML-RPC(ExternalInterface在内部使用),我相信,但我不确定

fscommand(String, ...);

ExternalInterface.call(String, ...);