`

[转]通过监测焦点来控制影片或游戏的播放暂停

阅读更多
http://bbs.9ria.com/viewthread.php?tid=77454&extra=page%3D1%26amp%3Borderby%3Ddateline%26amp%3Bfilter%3D2592000




资讯类型: 翻译
来源页面: http://www.emanueleferonato.com/2011/03/29/pausing-a-flash-game-or-movie-detecting-its-focus/
资讯原标题: Pausing a Flash game or movie detecting its focus
资讯原作者:
我的评论:这个技巧在提升用户体验方面还是有用的。
对这篇文你有啥看法,跟贴说说吧!欢迎口水和板砖,哈哈。欢迎大家和我们一同分享更多资讯。
有時候我們希望製作的Flash game 或 movie在用户没有玩/观看的时候能自动停止。

还有我的博客阅读者经常向我反映,当他们阅读文章的时候,经常需要重新加载页面才能看到flash影片,因此它总在阅读到那里的时候已经播放完毕。

根据adobe工程师Tinic Uro的说法,这种现象属于flash的可视状态和不可视状态之间的切换。
当SWF是可视的:

    * SWF 帧频是受限的,并尽量和标准对齐。 比如每秒60帧.
    * timers (AS2 Interval and AS3 Timers) 是受限的,并尽量和标准对齐。
    * local connections 是受限的,并尽量和标准对齐。 这意味着2个SWF之间来回的通信间隔至少是33毫秒. 有些报告称它可以达到40ms.
    * 视频没有强制锁定,可以在任意的帧频下播放。这增加了视频回放的保真度。

当SWF是不可视的:

    * SWF帧频锁定到2帧/秒。 不再进行渲染。
    * timers (AS2 Interval and AS3 Timers) 锁定到2帧/秒。
    * local connections 锁定到2帧/秒。
    * video使用空闲CPU时间进行解码 (不再进行渲染) 。
    * 当音频播放时,为了回放的需求,我们覆盖了2帧/秒的帧频并提高到8帧/秒.

不管什么原因,flash游戏或影片在失去焦点的时候应该暂停下来。

当Flash Player 一个AIR application获取到操作系统的焦点时,会派发一个flash.events.Event.ACTIVATE事件并激活自身,当Flash Player 一个AIR application失去操作系统焦点的时候会派发flash.events.Event.DEACTIVATE事件并变为非激活状态。

使用这2个listeners,我们可以创建一个从左移动到右的圆形动画,并在游戏暂停时显示一个暂停画面。
package {
        import flash.display.Sprite;
        import flash.events.Event;
        public class Main extends Sprite {
                private var circle:circleMc;// a simple circle we will move around
                private var pausedMovie:pausedMc;// the pause DisplayObject
                public function Main() {
                        pausedMovie=new pausedMc();
                        addChild(pausedMovie);
                        circle=new circleMc();
                        circle.y=100;
                        circle.x=-50;
                        addChild(circle);
                        addEventListener(Event.ACTIVATE,onActivate);
                        addEventListener(Event.DEACTIVATE,onDeactivate);
                }
                private function onActivate(e:Event):void {
                        addEventListener(Event.ENTER_FRAME,onEnterFrm);
                        removeChild(pausedMovie);
                }
                private function onDeactivate(e:Event):void {
                        removeEventListener(Event.ENTER_FRAME,onEnterFrm);
                        addChild(pausedMovie);
                }
                private function onEnterFrm(e:Event):void {
                        circle.x++;
                        if (circle.x>690) {
                                circle.x=-50;
                        }
                }
        }
}


它虽然简单,但完全实现了我们的需求:
分享到:
评论

相关推荐

    根据驾驶员的注视,在自动驾驶期间自动暂停和恢复媒体内容.zip

    标题中的“根据驾驶员的注视,在自动驾驶期间自动暂停和恢复媒体内容”揭示了这一技术的核心理念:在自动驾驶模式下,系统能够监测驾驶员的视觉焦点,并据此调整车载媒体播放的状态。这涉及到多个关键领域的知识: ...

    分布式高速喷墨数字印刷系统软件设计.pdf

    系统控制器的功能包括预览、打印、取消打印、停止打印、暂停打印和恢复打印,还包括对外围设备的控制以及显示系统各部分日志信息等。 通过这一系列技术的应用,分布式高速喷墨数字印刷系统能够有效提高打印速度,...

    流媒体Searim 相关资料,对论文有大帮助

    4. 播放控制:包括播放、暂停、快进、快退等操作,需要实时监测网络状态并动态调整数据流,确保播放流畅。 二、Searim与论文关联 Searim可能是研究者为某一特定流媒体技术或系统起的代号,其可能包含以下几个方面...

    单片机实验指导书.doc

    在输出实验中,学生将设计程序来控制显示设备(如LED),形成特定的显示模式或“花样”。这不仅要求学生掌握基本的并行口控制技术,还需要对数字逻辑和显示原理有所了解。输入实验则关注如何读取并行口的状态,例如...

    live.2018.07.01.tar.gz

    它提供了诸如播放、暂停、快进、快退等操作,并允许客户端和服务器之间进行交互。 2. **live555**:live555 是由 Live Networks 公司开发的一个开源库,支持多种实时流媒体协议,包括 RTSP、RTCP(Real-time ...

    智能手机发展趋势.pdf

    例如,通过集成空气污染监测传感器,智能手机网络可以用于全球范围内的环境监控,帮助我们理解和应对气候变化和环境污染问题。 此外,智能手机与健康监测的结合也是未来的一大趋势。高精度的传感器可能能够测量用户...

    防截屏的软键盘-密保魔方客户端源码

    例如,监测摄像头活动,当检测到摄像头开启时自动遮挡或暂停输入;或者在软件层面分析屏幕变化率,当检测到异常的屏幕录制行为时进行警告或阻止。 "密保魔方客户端源码"中的组件包括: 1. `help.html`:用户帮助...

    行业分类-设备装置-用于广播测量用户注意力的多媒体内容的方法.zip

    1. **用户行为分析**:通过追踪用户与广播内容的交互,如播放、暂停、快进、回放等,来推断其兴趣和注意力水平。 2. **眼球追踪技术**:在实验室环境下,使用眼球追踪设备来观察观众视觉焦点的变化,从而量化他们对...

    儿童肥胖营养不良贫血防治与干预.ppt

    儿童的健康成长是每个家庭和社会关注的焦点,然而,近年来,儿童肥胖、营养不良和贫血等问题日益突出,成为影响儿童健康的重大挑战。了解这些问题的定义、常见合并症、筛查方法以及干预策略至关重要。 一、超重与...

    Proteus入门教程

    需要注意的是,该窗口并没有传统的滚动条,用户可以通过预览窗口来调整可见区域,以便查看整个电路图的不同部分。 ##### 2. 预览窗口 (The Overview Window) 预览窗口具有两个主要功能:首先,当在元件列表中选择...

    OPhone应用开发专题——【第一季】

    可以通过重写Activity的生命周期方法来监测Activity的状态变化,例如在`onPause()`方法中记录日志,表明Activity进入暂停状态。 **1.5 Activity完整的生命周期** 完整的生命周期包括了从`onCreate()`到`onDestroy...

    一种口罩生产用压平装置的制作方法.docx

    在现代工业化生产中,口罩已成为一种不可或缺的日用品,尤其在特殊时期,其生产效率和安全性更是成为关注焦点。传统的口罩生产流程中,压平环节往往存在操作者直接接触工作区域的风险,这不仅容易导致人身安全事故,...

    protues入门教程

    - 包括运行、单步运行、暂停、停止等控制按钮,用于控制仿真过程。 #### 二、操作简介 **1. 绘制原理图** 绘制原理图需在原理图编辑窗口内的蓝色区域完成。正确操作方式包括使用左键放置元件、右键选择元件、...

    Proteus6.9教程

    仿真工具栏包括了运行、单步运行、暂停和停止等控制按钮,便于用户控制仿真进程。 #### 三、Proteus 6.9 操作简介 1. **绘制原理图**:在原理图编辑窗口的蓝色方框区域内进行,通过左键放置元件、右键选择元件、...

    Proteus 入门教程

    其次,当用户的鼠标焦点位于原理图编辑窗口时(例如,在放置元件之后或点击原理图),预览窗口会显示整个原理图的缩略图,并高亮显示一个绿色矩形框,该框表示当前可见的原理图区域。通过在预览窗口中移动绿色矩形框...

    儿童超重肥胖筛查、评估和干预.ppt

    总的来说,儿童超重和肥胖问题需要通过系统性的筛查、评估和干预来有效管理和预防。这包括定期的身体检查、合理的营养指导、增加体育活动、以及对家庭环境的教育和支持,以确保儿童能够健康成长,减少肥胖带来的长期...

    android Activity生命周期 详解

    例如,`onCreate()`用于初始化,`onPause()`和`onResume()`可以用于暂停和恢复操作,`onStop()`用于保存数据。开发者还可以覆盖`onSaveInstanceState(Bundle outState)`来保存临时状态,并在`onRestoreInstanceState...

    [降脂:他汀依然安全有效]降脂药他汀类的副作用.rar

    对于肝功能异常,定期监测肝酶水平是必要的,一旦发现异常,可暂停用药或调整剂量。此外,他汀类药物可能影响血糖控制,糖尿病患者需注意。 4. 他汀类药物的适用人群 他汀类药物主要适用于有心血管疾病史的患者,...

    临时经营场所加油区及储油罐区安全监控制度精选.doc

    综上所述,通过这些综合性的安全控制措施,能够形成一套全面的安全监控体系,最大限度地降低临时经营场所加油区和储油罐区的潜在风险,确保人员和设施的安全。这一制度的严格执行和持续维护,不仅能够显著降低事故...

    基于机器学习的心电信号相关疾病检测方法研究_毕业论文.pdf

    心电信号是心脏电生理活动的直接反映,记录心肌细胞激动时产生的电位变化,因此,心电信号在临床上被广泛用于各类心脏疾病的诊断与监测。近年来,机器学习技术的发展为心电信号的自动分析和疾病检测带来了新的可能。...

Global site tag (gtag.js) - Google Analytics