我有一个flash游戏的问题。我必须在网页上的iframe中实现它,它必须在Firefox中运行。游戏本身是一个自己的网页,它用库swfobject加载flash对象。如果我直接在Firefox中打开游戏,它会加载并可玩。如果我打开开发者工具,那么游戏的视频会被隐藏,我只看到一张白色音乐还在播放
奇怪的行为是,当我点击body标签时,游戏是不可见的。如果我点击header标签,游戏是可见的。当我在iframe中打开游戏时,它是不可见的,就像当开发者工具打开时一样。
我有一些其他的游戏,加载完美。他们之间的区别是wmode。不工作的游戏使用wmode的“gpu”。其他的“透明”。但游戏本身需要wmode的gpu或直接,因为它使用stage 3D或什么。
iframe从angular-material库中加载到一个md-dialog中。我也使用了AngularJS。
这款游戏在Chrome中运行得非常完美!
有人知道怎么解决这个问题吗?
这是在游戏的index.html中。
<script type="text/javascript">
// For version detection, set to min. required Flash Player version, or 0 (or 0.0.0), for no version detection.
var swfVersionStr = "11.1.0";
// To use express install, set to playerProductInstall.swf, otherwise the empty string.
var xiSwfUrlStr = "playerProductInstall.swf";
var flashvars = {};
var params = {};
params.quality = "high";
params.bgcolor = "#ffffff";
params.allowscriptaccess = "sameDomain";
params.allowfullscreen = "true";
params.wmode = "gpu";
//params.scale = "noborder";
var attributes = {};
attributes.id = "Flash";
attributes.name = "Flash";
attributes.align = "middle";
swfobject.embedSWF(
"flash.swf", "flashContent",
"1180", "660",
swfVersionStr, xiSwfUrlStr,
flashvars, params, attributes);
// JavaScript enabled so display the flashContent div in case it is not replaced with a swf object.
//swfobject.createCSS("#flashContent", "display:block;text-align:left;");
</script>
index.html正在加载以下内容:
<iframe id="iframe" scrolling="no"></iframe>
$('#iframe').attr('src',vm.urlD);
其中vm.urlD是游戏index.html的解析URL。
CSS样式iframe:
iframe{
left: 0;
top: 0;
right: 0;
bottom: 0;
margin: auto;
height: 100%;
width: 100%;
overflow: hidden;
border: none;}
1条答案
按热度按时间k4emjkb11#
您是否设置了iframe的大小?如果您不固定容器元素的大小,有时Flash嵌入在某些浏览器中无法正常工作。它只是在您更改浏览器的大小之前工作(例如打开开发者工具或调整窗口大小等)。
示例:
PS:你应该展示你为它做的代码,人们可以得到正确的答案。