Javascript 使用jQuery访问Flash函数

Javascript 使用jQuery访问Flash函数,javascript,jquery,actionscript-3,flash,externalinterface,Javascript,Jquery,Actionscript 3,Flash,Externalinterface,所以我尝试使用jQuery与flash变量交互。基于flash的程序的原始作者还没有回复我,所以我想在这里问一下。我不太擅长AC3,所以请原谅我 在原始操作脚本中,我添加了一个新的导入语句: import flash.external.*; 有一个函数初始化名为ini的程序,并将其添加到底部: //MODS=========== ExternalInterface.addCallback(‘gotoLastPage’,gotoLastPage) //=============== 对于所

所以我尝试使用jQuery与flash变量交互。基于flash的程序的原始作者还没有回复我,所以我想在这里问一下。我不太擅长AC3,所以请原谅我

在原始操作脚本中,我添加了一个新的导入语句:

import flash.external.*;
有一个函数初始化名为ini的程序,并将其添加到底部:

//MODS=========== 
ExternalInterface.addCallback(‘gotoLastPage’,gotoLastPage) 
//===============
对于所有密集型用途,只需知道有一个名为gotoLastPage的现有且正在工作的函数。它被声明为私有void,并由默认应用程序运行。所有这些看起来都很好,在我重新编译swf文件时没有出现错误

现在swf对象的初始化方式如下

var flashvars = {}; 
flashvars.pages = “reader_fl/pages.xml”; 
flashvars.settings = “reader_fl/settings.xml”; 
var params = {}; 
params.quality = “high”; 
params.scale = “noscale”; 
params.wmode = “transparent”; var attributes = {}; 
attributes.align = “middle”; 
attributes.allowFullscreen = “true”;

swffit.showScrollV();
swfobject.embedSWF("reader_fl/PageFlip_v6.swf", "Reader_Window_player", "100%", "100%",
"10.0.0", false, flashvars, params, attributes);
请注意,我使用的是swfobject。读卡器运行良好,正在环绕一个名为reader\u Window\u player的div

现在,当我转到jQuery时,我尝试了:

$("#Floating_CtrlStart").click(function(){
var Reader = $('#Reader_Window_player')[0];
Reader.gotoLastPage();
})
然而,我似乎仍然无法访问gotoLastPage。控制台说gotoLastPage没有定义


这里有什么帮助吗?

您是否从文件系统打开html页面,而不是从web服务器打开?如果是这样的话,这就解释了为什么它不起作用


如果内容(html和swf)位于本地网络或本地文件系统沙盒(源:)中,则调用ExternalInterface失败。

您是否从文件系统打开html页面,而不是从web服务器提供服务?如果是这样的话,这就解释了为什么它不起作用


如果内容(html和swf)位于本地网络或本地文件系统沙盒(源代码:)中,则调用ExternalInterface失败。

我喜欢JQuery,但我通常采用旧的方式:

var getSwf = function (swfName) {
   var isIE = navigator.appName.indexOf("Microsoft") != -1;
   return (isIE) ? window[swfName] : document[swfName];
}
getSwf("Reader_Window_player").gotoLastPage();
还要确保JS中包含以下内容:

attributes.id = "Reader_Window_player";
attributes.name = "Reader_Window_player";
正如@Cherniv在评论中所述:

params.allowScriptAccess="always"

我喜欢JQuery,但我通常用老办法:

var getSwf = function (swfName) {
   var isIE = navigator.appName.indexOf("Microsoft") != -1;
   return (isIE) ? window[swfName] : document[swfName];
}
getSwf("Reader_Window_player").gotoLastPage();
还要确保JS中包含以下内容:

attributes.id = "Reader_Window_player";
attributes.name = "Reader_Window_player";
正如@Cherniv在评论中所述:

params.allowScriptAccess="always"

尝试添加
allowScriptAccess
参数,如:
params.allowScriptAccess=“始终”
尝试添加
allowScriptAccess
参数,如:
params.allowScriptAccess=“始终”