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
Javascript swfobject不与html通信_Javascript_Flash_Swfobject - Fatal编程技术网

Javascript swfobject不与html通信

Javascript swfobject不与html通信,javascript,flash,swfobject,Javascript,Flash,Swfobject,我在尝试让swfobject嵌入文件与html通信时遇到问题。当我使用AC_RunActiveContent以标准方式嵌入swfs时,你知道为什么会这样吗?基本上,底部的导航按钮可以阻止主权财富基金在点击时播放。我真的很感激任何帮助 <script type="text/javascript" src="js/swfobject.js"></script> <script type="text/javascript"> var flashvars = {};

我在尝试让swfobject嵌入文件与html通信时遇到问题。当我使用AC_RunActiveContent以标准方式嵌入swfs时,你知道为什么会这样吗?基本上,底部的导航按钮可以阻止主权财富基金在点击时播放。我真的很感激任何帮助

<script type="text/javascript" src="js/swfobject.js"></script>

<script type="text/javascript">
var flashvars = {};
var params = {};
params.play = "true";
params.loop = "false";
params.menu = "true";
params.quality = "high";
params.scale = "showall";
params.wmode = "opaque";
params.bgcolor = "#ffffff";
params.devicefont = "false";
params.allowscriptaccess = "always";

var attributes = {};
swfobject.embedSWF("images/blank1.swf", "blank1", "747", "420", "9.0.0", flashvars, params, attributes);
swfobject.embedSWF("images/blank2.swf", "blank2", "747", "420", "9.0.0", flashvars, params, attributes);
swfobject.embedSWF("images/blank3.swf", "blank3", "747", "420", "9.0.0", flashvars, params, attributes);
</script>


<script language="javascript">
function getFlashMovie(movieName) {
var isIE = navigator.appName.indexOf("Microsoft") != -1;
return (isIE) ? window[movieName] : document[movieName];
}

function stopFlash(){
    getFlashMovie("blank1").commandFlash();
    getFlashMovie("blank2").commandFlash();
    getFlashMovie("blank3").commandFlash();
}

var flashvars={};
var params={};
params.play=“true”;
params.loop=“false”;
params.menu=“true”;
params.quality=“高”;
params.scale=“showall”;
params.wmode=“不透明”;
params.bgcolor=“#ffffff”;
params.devicefont=“false”;
params.allowscriptaccess=“始终”;
var属性={};
swfobject.embeddeswf(“images/blank1.swf”、“blank1”、“747”、“420”、“9.0.0”、flashvars、params、attributes);
swfobject.embeddeswf(“images/blank2.swf”、“blank2”、“747”、“420”、“9.0.0”、flashvars、params、attributes);
swfobject.embeddeswf(“images/blank3.swf”、“blank3”、“747”、“420”、“9.0.0”、flashvars、params、attributes);
函数getFlashMovie(movieName){
var isIE=navigator.appName.indexOf(“Microsoft”)!=-1;
返回(isIE)?窗口[movieName]:文档[movieName];
}
函数stopFlash(){
getFlashMovie(“blank1”).commandFlash();
getFlashMovie(“blank2”).commandFlash();
getFlashMovie(“blank3”).commandFlash();
}

HTML:



谢谢你的反馈

在您的SWF中,是否导入了flash.external.ExternalInterface

如果没有,您需要这样做,然后还需要在SWF中公开“commandFlash”方法。您可能也需要在您的域上允许这种通信

import flash.external.ExternalInterface;

System.security.allowDomain('*');
var flashAvailable:Boolean = ExternalInterface.available;

ExternalInterface.addCallback('commandFlash', null, commandFlash);
function commandFlash( args... ){
  //
}
除上述情况外,您的SWF可能隐藏在显示中:无;在某一点上的页面,然后透露?这在过去的Firefox中给我带来了一些奇怪的感觉


(不确定您是否在SWF中使用AS2/3)

您的SWFObject代码有错误:缺少express install参数

swfobject.embedSWF("images/blank1.swf", "blank1", "747", "420", "9.0.0", "expressinstall.swf", flashvars, params, attributes);
swfobject.embedSWF("images/blank2.swf", "blank2", "747", "420", "9.0.0", "expressinstall.swf", flashvars, params, attributes);
swfobject.embedSWF("images/blank3.swf", "blank3", "747", "420", "9.0.0", "expressinstall.swf", flashvars, params, attributes);
当然,您需要将“expressinstall.swf”替换为expressinstall.swf文件的正确路径。如果不想使用快速安装,只需输入一个
false
布尔值即可

swfobject.embedSWF("images/blank1.swf", "blank1", "747", "420", "9.0.0", false, flashvars, params, attributes);
swfobject.embedSWF("images/blank2.swf", "blank2", "747", "420", "9.0.0", false, flashvars, params, attributes);
swfobject.embedSWF("images/blank3.swf", "blank3", "747", "420", "9.0.0", false, flashvars, params, attributes);

排序-成功解决了问题(见下文),感谢大家的投入/支持! 现在唯一的问题是internet explorer在触发stopFlash命令的按钮上返回错误“object不支持此属性或方法”,但至少它仍然有效。Grrr

var flashvars = {};
var params = {wmode:"opaque", allowscriptaccess:"always" };
var attributes = {};

swfobject.embedSWF("images/clients/blank1.swf", "blank1", "747", "420", "9.0.0", false, flashvars, params, attributes);
swfobject.embedSWF("images/clients/blank2.swf", "blank2", "747", "420", "9.0.0", false, flashvars, params, attributes);
swfobject.embedSWF("images/clients/blank3.swf", "blank3", "747", "420", "9.0.0", false, flashvars, params, attributes);


function getFlashMovie(movieName) {
var isIE = navigator.appName.indexOf("Microsoft") != -1;
return (isIE) ? window[movieName] : document[movieName];
}


function stopFlash(){
getFlashMovie("blank1").commandFlash();
getFlashMovie("blank2").commandFlash();
getFlashMovie("blank3").commandFlash();
return true;
}

你好,Danjah,谢谢你的回复,我正在使用AS3,并在我的swfs中导入了flash.external.ExternalInterface。当我以“标准”方式(使用发布的代码)嵌入swf时,单击按钮时,swf会“停止”,但当我使用swfobject时,swf不会停止。使用swf测试COM可用性时会返回什么?或者你甚至不能从SWF那里得到这些?有一个网址我可以看一看吗?我知道我有点不知所措还有很多东西要学!我不确定什么是通信可用性(对不起)。我确实有一个URL,但由于该网站不是我的,我有点不愿意发布链接。它与AC_RunActiveContent配合得很好,但如果最终用户没有flash,我就无法显示“替换”图像,因此我想我应该改用swfobject,这似乎比我最初遇到的问题更多!如果你只想给我发一个链接,danjah+@+gmail.com,否则我说的“coms可用性”是指你能联系SWF看看外部接口是否可用吗?也许只是提醒(“EI可用:+getFlashMovie(“blank1”).ExternalInterface.available)。或者在这之前,也许只需确认getFlashMovie()实际上正在找到您期望的内容。
var flashvars = {};
var params = {wmode:"opaque", allowscriptaccess:"always" };
var attributes = {};

swfobject.embedSWF("images/clients/blank1.swf", "blank1", "747", "420", "9.0.0", false, flashvars, params, attributes);
swfobject.embedSWF("images/clients/blank2.swf", "blank2", "747", "420", "9.0.0", false, flashvars, params, attributes);
swfobject.embedSWF("images/clients/blank3.swf", "blank3", "747", "420", "9.0.0", false, flashvars, params, attributes);


function getFlashMovie(movieName) {
var isIE = navigator.appName.indexOf("Microsoft") != -1;
return (isIE) ? window[movieName] : document[movieName];
}


function stopFlash(){
getFlashMovie("blank1").commandFlash();
getFlashMovie("blank2").commandFlash();
getFlashMovie("blank3").commandFlash();
return true;
}