我的Flash SWF是否在屏幕上?

时间:2013-06-11 17:56:27

标签: actionscript-3 flash

我希望我的flash动画在屏幕上可见之前不播放,然后在屏幕外暂停。有没有办法捕获一些事件,表明swf正在呈现或可见,或者在浏览器窗口的可见范围内,我可以添加事件,以便我知道它何时在视图中?

1 个答案:

答案 0 :(得分:0)

使用Flash的ExternalInterface调用一个javascript函数,检查是否关闭屏幕元素。在javascript中,使用JQuery和Viewport插件来判断我们是否在屏幕外。 (http://www.appelsiini.net/projects/viewport)。

我还没有测试过Viewport插件,但是我已经和使用过它的人交谈了,而且对他们来说没问题。

在as3中:

var returnValue:int = ExternalInterface.call("jsCheckerFunction");

if(returnValue == 1) // your flash is on-screen.

在javascript中:

function jsCheckerFunction()
{
    if($("#flashContent:in-viewport").length > 0) 
        return 1; // flash div visible
    return 0; // returns 0 if the element is offscreen  
}

您可以让它在每个帧上调用jsCheckerFunction以查看状态是否已更改。