Actionscript 3 Flash AS3 stage.colorCorrection支持始终解析为不受支持-stage.colorCorrection发生了什么?

Actionscript 3 Flash AS3 stage.colorCorrection支持始终解析为不受支持-stage.colorCorrection发生了什么?,actionscript-3,flash,apache-flex,colors,Actionscript 3,Flash,Apache Flex,Colors,两年半前,Adobe宣布FlashPlayer 10将支持颜色校正。诚然,该实现非常基本,因为它总是假定所有内容都是sRGB编码的,并将该内容转换为系统上使用的当前显示配置文件 激活此功能所需的所有AS3是: stage.colorCorrection = ColorCorrection.ON; …是的,您确实需要阶段访问才能使其工作,不,这不是问题所在 所以,当它还是新的时候,我写了一个小包装器,在Internet Explorer和Chrome中显示图像,这样它们就可以正确地呈现给具有扩展

两年半前,Adobe宣布FlashPlayer 10将支持颜色校正。诚然,该实现非常基本,因为它总是假定所有内容都是sRGB编码的,并将该内容转换为系统上使用的当前显示配置文件

激活此功能所需的所有AS3是:

stage.colorCorrection = ColorCorrection.ON;
…是的,您确实需要阶段访问才能使其工作,不,这不是问题所在

所以,当它还是新的时候,我写了一个小包装器,在Internet Explorer和Chrome中显示图像,这样它们就可以正确地呈现给具有扩展色域显示的用户,并且在基于flash的视频播放器中也使用了这个包装器。 今天重温这两种情况,我发现我所知道的行之有效的东西已经不再有用了。同时改变的是FlashPlayer的版本,很可能还有浏览器版本。我尝试了OSX、Win7、WinXP、icc v2和icc v4在所有这些不同的浏览器版本和flash播放器版本上显示配置文件,但都没有用。 你会说我一定做错了什么,但我现在认为肯定有效的方法现在也失败了。如果您查看Flash小程序,您会发现它会说:

stage.colorCorrectionSupport: unsupported
如果您的系统支持,请评论操作系统、浏览器和版本以及FlashPlayer版本。否则,我将寻找此功能发生了什么的任何线索

引用:因为这个功能在大多数主流浏览器中似乎都是默认禁用的,所以我认为这是一个实验性的web标准提案,已经过时了。我们在这里做的不多,这主要取决于浏览器向我们传递正确的数据并进行正确的颜色转换。我们处在事件链的最底层

我知道这在FlashPlayer发展的某个阶段起了作用。因此,以下内容可能有助于解决问题:

  • Adobe示例是否仍然适用于任何想要查看的人
  • 如果这是关于一个不推荐的浏览器功能,为什么它不再适用于旧浏览器
  • 它是否停止了任何特定FlashPlayer的工作?(我试了几次,但都没能成功)
注:

  • 由于某种原因,wmode transparent无法进行颜色校正(但不透明是可以的)
  • 使用alpha bleding过渡时,颜色校正最初有时也会失败
更新:当wmode设置为“窗口”时,该功能似乎仍然有效。当然,这是非常有限的。如果你在一个页面上有一个灯箱等,那么Flash的内容就会一直放在上面,等等。所以这很糟糕。 对于wmode=“window”,这个例子在OSX 10.6(目前为止我测试的唯一版本)和Win XP 32位上也适用。我尝试的所有win 64位版本仍然失败,但这些系统有多个屏幕,因此可能我必须使用单个屏幕重试,因为下面的第一条评论表明它在win 7 64上工作。 在这些有效的系统上,我尝试了Firefox、Safari、Internet Explorer和Chrome。除了在使用Chrome时,内置Flash player始终提供
stage.colorCorrectionSupport:unsupported
,同时取消内置FP的标签,并使用系统的Flash player与其他浏览器一样工作外,所有功能都是一样的

因此,上面的问题可以缩小到为什么这不再适用于任何其他wmode,特别是“不透明”wmode——它以前确实有效,而Adobe在其在线版本的示例文件中使用了它

更新2:Flash Player较新的wmode“gpu”和“direct”使该功能在上面命名的wmode“窗口”工作的系统/浏览器上失败

更新3:在找到wmode=“window”角度后,我决定在我最初引用的Adobe论坛上发布一篇后续文章。这导致整个问题被认为是Flash player中的一个缺陷:所以我想stage.colorCorrection的问题不会有答案,但希望它能自行解决

更新4:好的,这是一个强制性的愚蠢点。。。当我说我记得wmode“不透明”在出错之前已经工作过了。进一步查看后,我发现很久以前我将
wmode=“normal”
放在我的一个JS文件中,因为
normal
不存在,较旧版本的Flash Player使用了标准的wmode
窗口
,这就是为什么它在那时可以工作的原因。更现代的Flash播放器还有其他默认设置,例如,
direct
,其中颜色管理失败,因此对我来说失败了。因此,我认为除了“窗口”之外,这对任何wmode都不起作用,但我很好奇未来会带来什么…

(是的,这是一个老问题,但我是Flash Player 10的产品经理,所以我想我会回答)

它可以在窗口模式下工作,因为Flash Player可以在浏览器中获得矩形,并且可以完全控制渲染堆栈,并且不必处理与它不知道其颜色状态的项目的合成

当您切换到类似wmode transparent的东西时,您将进入一个非常疯狂的来回过程,在其上下使用渲染元素进行合成。当您进入wmode GPU时,渲染堆栈主要交给GPU(毫不奇怪)。在这两种情况下,flashplayer都会失去对渲染堆栈的一些控制,在这一点上,像颜色校正这样的事情是不可能的

Flash Player 10中使用此功能的主要原因是在Flash Player中启用交互式电子发布(如inDesign SWF export),以及支持可在面向打印的工具链中提供帮助的应用程序。

我尝试了示例SWF。当我在FireFox->stage.colorCorrectionSupport:defaultOff中直接打开(本地)swf时,它似乎可以工作。当我点击“切换”时,我可以看到一些真正的小变化。Firefox是22.0,操作系统是Win7(64),flash是11.7.700。224@djib谢谢你的提示