zoukankan      html  css  js  c++  java
  • flash全屏控制

       在FLVPlayer项目升级过程中中使用到flash全屏,而全屏有两种方式,一种是点击外面的菜单或使用快捷键调用flash控件(ActiveX)的callFunction去调用swf里面的函数使之全屏, 另一种是在swf里的按键的事件中写上全屏代码,然后点击按钮实现。

       但是,这两种有着本质的区别,第一种实际上只是改变swf里的一些自定义参数并没有使swf全屏,全屏的实际上是窗口,在调用callFunction调用swf里面的函数后,swf使用fscommd向宿主容器也就是我们的FLVPlayer.exe发送一些消息,然后在消息响应中控制窗口的大小,把窗口的一些部分隐藏,使之看起来像全屏。第二种,则是在事件处理函数中写上Stage["displayState"] = "fullScreen";使之全屏, 这样的全屏才是真正的全屏, 在全屏时会出现几秒“按ESC退出全屏”的按钮,这是adobe flash player自带的全屏。

       然后我把第一种的假全屏换成第二种的真全屏,我先看了代码,发现实际上假全屏的callFunction调用的函数和第二种真全屏的按钮事件调用的是一样的代码。我就奇怪了,为什么会有这种情况呢,同样的代码不同的调用方式会出现不同的效果,然后我在网上查了一下,发现以下信息。

    “在 ActionScript 中处理全屏模式时,需要记住以下注意事项:
    只能通过 ActionScript 响应鼠标单击(包括右键单击)或按键才能启动全屏模式。
    对于有多个显示器的用户,SWF 内容将展开且只填充一个显示器。Flash Player 使用度量信息来确定哪个显示器包含 SWF 的最大部分内容,然后使用该显示器提供全屏模式....”

    那就是说,swf内容全屏必须是手动点击按钮才行。

       好的,上面那个问题告一段落,在搜索的信息中我发现了其它有用的信息,1、fscommand(“fullScreen”,‘true’)也能使swf全屏,2、有没有可能实现自动全屏。

      关于,第一个,我将代码中的Stage["displayState"] = "fullScreen";全部换成相应的fscommand(“fullScreen”,‘true’),然后在把用来测试的fla文件编译出swf文件,然后单独打开这个文件(注意,调试状态下不能全屏),点击全屏按钮可以全屏。然后把这些As代码编译到FlvPlayer项目使用的SWF文件中,然后替换到项目build文件夹下的相关文件

     结果不可以全屏。

    第二个,在我的应用场合基本上没有可能实现自动全屏,限制就是必须是响应鼠标消息才能全屏。当然AIR除外,AIR是可以在启动时自动全屏的。

  • 相关阅读:
    fastjson 解析 字符串 为对象
    fastjson 对类模板进行 parseObject
    VUE路由跳转传递参数的几种方式
    ES 常用设置修改
    springboot图片路径形式获取图片
    Elasticsearch根据ID进行查询
    linux 常用命令
    Elasticsearch常用操作
    java8 stream接口终端操作 count,anyMatch,allMatch,noneMatch
    logstash数据迁移
  • 原文地址:https://www.cnblogs.com/k1988/p/2165727.html
Copyright © 2011-2022 走看看