1
我正在查找代码以在此页面/选项卡未聚焦或处于活动状态时停止网页上的所有Flash动画。因为这个问题导致任何计算机的性能损失。当窗口/选项卡未聚焦时停止所有Flash动画
任何使用As3或JavaScript的解决方案?
我正在查找代码以在此页面/选项卡未聚焦或处于活动状态时停止网页上的所有Flash动画。因为这个问题导致任何计算机的性能损失。当窗口/选项卡未聚焦时停止所有Flash动画
任何使用As3或JavaScript的解决方案?
它可以阻止他们,但是这是很难恢复他们事后取决于你的代码是如何组织的,使用此功能来停止所有影片剪辑:
function stopEverything(disp : DisplayObjectContainer) : void
{
if(disp is MovieClip)
{
MovieClip(disp).stop();
}
for(var i : int = 0; i < disp.numChildren; i++)
{
var child : DisplayObject = disp.getChildAt(i);
if(child is DisplayObjectContainer)
{
stopEverything(DisplayObjectContainer(child));
}
}
}
然后停止所有对象,你会做:stopEverything(stage);
。
请注意,这只是停止MovieClip动画,所有EnterFrame事件仍将被调用。
另一种聪明的选择是验证应用程序失去焦点,然后做stage.frameRate = 1;
,一旦焦点再次上涨,你可以将其设置回它是什么。
stage.addEventListener(Event.DEACTIVATE, lostFocus);
stage.addEventListener(Event.ACTIVATE, gainedFocus);
function lostFocus(e:Event):void
{
stage.frameRate = 1;
}
function gainedFocus(e:Event):void
{
stage.frameRate = 24; // or whatever it should be
}