Flash在WIN8上的IE10上没有通过javascript API响应

时间:2013-06-27 07:20:39

标签: javascript flash windows-8 internet-explorer-10 externalinterface

我正在努力实现以下目标:

我有一个javascript对象,可以获取两个flash对象。 然后将两个flash对象添加到页面中,第一个我设置了play = true和 我用play = false设置的第二个。

我在下载后正在使用play = true呈现一个,并将另一个与play = false放在一个隐藏的容器中。

当我按下第一个时,它会与我的javacsript交互,然后是js代码 隐藏第一个flash div容器并更改第二个flash(隐藏的一个) 要显示的div容器。

完成此操作后,我还将此flash的播放属性从false更改为true,以便开始播放。 完成了两个操作,即更改DOM可见性并将play属性更改为true 在两个不同的setTimeout函数中(设计约束!)。

我遇到的问题是在WIN8上的IE10上,flash对象不符合播放命令。 为了更准确地说我的行为,我正在使用以下方式获取flash obj: var myObj = document.getElementById("MY_OBJ_ID"),然后我尝试使用标准Play()方法flash曝光myObj.Play();将播放设置为true。 当然我在击败Play()之前检查对象是否存在。

另外,在我按下第一个闪光灯后,假设将所有上述动作设置在运动中, 没有任何反应......如果我在控制台中手动编写相同的行:

var myObj = document.getElementById("MY_OBJ_ID");
myObj.Play();

然后电影播放,一切正常。

我再次提到,这只发生在WIN8上的IE10上。 我会很感激这个问题的任何帮助,我正在打破这个问题而无法理解。

更新 - 30/06:

我认为我在某种程度上弄清楚了这些问题,确实没有发生。 在IE 10中,您可以使用flashObj.Playing属性查询flash obj,我发现它返回false。 在这种情况下,我只需使用setTimeout调用该函数,并每次都检查属性状态,直到它为真。 但我发现此属性在其他浏览器中无效,并且在所有浏览器中都有另一个API函数 - flashObj.IsPlaying()

是否有跨浏览器实现可以让我检查flash对象是否处于播放状态? 我们这样说:

flashObj.TGetPropertyAsNumber("/", 4) >= 1) || flashObj["IsPlaying"]()

它会检查第一帧或更多帧是否已播放,或检查“IsPlaying”是否返回true?

更新 - 01/07: 嗯,上面的方法证明在所有浏览器上都能正常工作,所以我的问题有所解决。 为了知道flash播放器是否已加载,我需要进行上述检查,如果没有加载闪存,我调用我用来通过setTimeout再次设置播放的功能。

但是我仍然对IE8上的WIN8行为感到困惑。 我不明白为什么flashObj.Play()第一次在所有浏览器上工作时我第一次调用它而在IE10中我需要做setTimeout才能使用它。

0 个答案:

没有答案