skip to main |skip to sidebar
显示标签为“flash player”的博文。显示所有博文
显示标签为“flash player”的博文。显示所有博文

2008-03-20

[Flash Player]2008年4月的 Flash Player 的安全策略的变化

在 Adobe 上公布了将在4月份改变 FLash Player 9 的安全策略。(Preparing for the Flash Player 9 April 2008 Security Update

这次的改变纯粹是为了安全,没有增加任何的新特性。但是默认的策略发生了一些改变,有可能会导致现有的一些程序无法正确地工作。

javascript 协议的改变

在以前,loadMovie() 里可以使用 javascript:... 的形式,但新的版本里只在 getURL()navigateToURL()ExternalInterface 里支持 JavaScript。

allowScriptAcces的变化

allowScriptAccess 是指定从 swf 访问 HTML 里的 Script 的方式的属性。以前的 Flash player 对于版本7以下的 swf 的 allowScriptAccess 属性的默认值为 always,版本8以上的默认值为 sameDomain

但新的版本对所有的版本的 swf 的默认值都将变为 sameDomain。版本7以下的 swf 必须明确地指定 allowScriptAccess = always

传送 HTTP Header 时的变化

使用 XML.addRequestHeader()LoadVars.addRequestHeader()URLRequest.requestHeaders 可以添加 HTTP 请求的 Header。在新的版本里向非同域名的服务器发送请求并添加 Header 时先必须要取得服务器的的许可。

具体的是需要在服务器上的 crossdomain.xml 添加添加以下项目:

<allow-http-request-headers-from domain="www.example.com" headers="HeaderName"/>

Socket 连接服务器时必须使用安全策略文件

XMLSocket 与 Socket 连接服务器的安全策略将会更严。新的版本在连接同域名时也需要使用安全策略文件,并且请求安全策略文件的端口固定为843。

2008-02-17

永远的 SoundComplete 事件

这已经不是什么新闻了,只是关注度好像不是很高,但我认为很有必要说几句。

自从 Flash Player 升级为 9.0.115.0 后 Sound.soundComplete 事件就消失了!没有任何征兆,一夜之间就从这个世界消失得无影无踪。

不要小看这个事件,没有它音频控制几乎不可能。比如以前一直使用 Sound.soundComplete 事件来实现音频的连续回放等各种特效,现在一切变为了南柯一梦。特别是 popforge 项目,一个 使用 AS3 来创作与修改音频的先端开发的新兴项目成为了最大的受害者之一,它有可能因此而从此玉损了!

大家署名来抗议吧The silent death of onSoundComplete event - a petition

2007-12-16

[Flash Player]Flash Player 9.0.115.0 的安全策略的变化

前几天公开的 Flash Player 9.0.115.0 的安全策略发生了一些变化,有可能导致安装了新的 Player 后无法正确显示某些内容。

这次变更主要有以下3点:

安全策略文件的格式

如果安全策略文件的格式不是正确的 XML,将会被忽视。比如顶级标签必须为 <cross-domain-policy>

Adobe 已经公开了每个协议的安全策略文件的正确的格式,详细请查看以下的 xsd(XML Schema) 文件。

Flash Player 9.0.115.0 的 Debug 版添加了安全策略文件的历史记录功能,如果有问题可以查看历史记录。

在域名内的重定向

在请求安全策略文件时,如果发生了在域名内的重定向,Flash Player 9.0.115.0 将对重定向后的 URL 使用安全策略。

比如请求 http://example.com/foo/crossdomain.xml 时,如果重定向为 http://example.com/bar/crossdomain.xml,读入的安全策略文件将会对 http://example.com/bar/ 以下的 URL 生效。

这个信息也会写到历史文件里。

Content-type 的值

Flash Player 9.0.115.0 以后,读入的安全策略文件如果不包含以下任意的值的话,将会被忽视。

  • text/*
  • application/xml
  • application/xhtml+xml

这样多少可以保证安全策略文件为文字文件。

Socket的连接

从 Flash Player 9.0.115.0 开始,不管是否在同一个域名,ActionScript 连接Socket 时都必须使用安全策略文件。

但实际上 Flash Player 9.0.115.0 在大多数的情况下只是弹出警告,是可以连接的。但连接本地服务器等时必须按照新的规则来制定安全策略文件。

历史文件

首先需要安装新的 Debug 版的 Player。(下载:Flash Player Support Center

再编辑 mm.cfg 文件(在用户的根目录,如果没有,就创建一个),追加一下2句。

PolicyFileLog=1   # 启用安全策略文件的历史记录
PolicyFileLogAppend=1  # 是否为追加模式,默认为0即不(可要可不要)

启动 Flash Player 9.0.115.0 后将会在以下的地方做成叫 policyfiles.txt 的历史文件。

  • Windows --------- C:\Documents and Settings\username\Application Data\Macromedia\Flash Player\Logs
  • Windows Vista -- C:\Users\username\AppData\Roaming\Macromedia\Flash Player\Logs
  • Macintosh -------- /Users/username/Library/Preferences/Macromedia/Flash Player/Logs
  • Linux -------------- /home/username/.macromedia/Flash_Player/Logs

关于本次变更的详细情况可以参照Security changes in Flash Player 9(e文)

2007-10-02

Flash Player 10的特大新闻!

在US的MAX大会上,公布了Code名为Astro的Flash Player 10的部分新功能如下:

新的Text Layout 渲染引擎

Astro将会添加新的Text Layout 渲染引擎。有了这个就有可能能够做到类似于HTML的表现能力的Text。这个功能有可能会在Flash Player 9的新版本中添加。

3D

终于来了!

Flash 的 MovieClip将会能够在3D空间内操作了。虽然Demo是很简单的效果,离真正的3D还有一定的距离,但表现将会有大幅度的提升。

自定义滤镜,混合模式,特效

将会可以自己开发滤镜等了。这些的制作将会使用已发布的Adobe Image Foundation (AIF) Toolkit。AIF Toolkit虽然为预览版,但已经能够下载了。会C,OpenGL的开发者可以试一试。(Adobe Image Foundation (AIF) Toolkit@Labs

看来Flash Player 与 Silverlight的大战开始了!

2007-09-05

Flash Player9的普及率突破90%的大关!

Flash Player9的普及率终于突破90%的大关!

AS3.0终于可以成为主流了!

2007-06-17

Flash player开始支持硬件渲染了!

Flash Player Setting

Flash player开始支持硬件渲染了!

看来以前的软件渲染已达到了极限了。将来,3D有望了,调用GPU的API也不远了。

2007-06-15

Flash Player的新的全屏模式(2) - Video

Flash Player的新的全屏模式(1),来介绍一下Video的全屏模式。

用硬件缩放来全屏Video比用Stage来做效率高。但与普通的不同,有几个重要的点。

  • 最好把smoothing设为false。
  • 最好把deblocking设为0。
  • 把属性设为初始值。
这样效率会有显著的提高。

下面是把myVideo用全屏播放的例子。

import flash.geom.*;
public function goFullScreen():void {
  // 保存现在的属性
  myVideo.savedWidth = myVideo.width;
  myVideo.savedHeight = myVideo.height;
  myVideo.savedSmoothing = myVideo.smoothing;
  myVideo.savedDeblocking = myVideo.deblocking;

  // 把属性设为初始值
  myVideo.width = myVideo.videoWidth;
  myVideo.height = myVideo.videoHeight;
  myVideo.smoothing = false;
  myVideo.deblocking = 0;

  // 全屏
  Stage["fullScreenSourceRect"] = new Rectangle(
myVideo.x, myVideo.y, myVideo.width, myVideo.height);
  Stage["displayState"] = "fullScreen";
}

2007-06-14

Flash Player的新的全屏模式(1)

前面公开的Flash Player Update 3追加了硬件支持的全屏模式。以前的全屏模式还会支持。

硬件缩放的用法

Flash Player Update 3的Stage对象追加了一个fullScreenSourceRect的属性。这个属性可以在AS2.0和AS3.0里使用。它把Rectangle的领域缩放为全屏。用fullScreenSourceRect指定领域用硬件来画,比以前的效率与画质高不少。

语法

fullScreenSourceRect : flash.geom.Rectangle;

全屏模式的例子:

//Actionscript 3.0
import flash.geom.*;
public function fullScreen():void {
  Stage["fullScreenSourceRect"] = new Rectangle(0, 0, 
Stage.width, Stage.height);
  Stage["displayState"] = "fullScreen";
}

在Flash CS3的类重新定义之前无法用Stage.fullScreenSourceRect的写法,会通不过编译。fullScreenSourceRect指定的领域在Stage外也可。

在AS3.0使用的注意点

要在AS3.0里使用新的全屏模式,必须替换playerglobal.swc。新的playerglobal.swc包含在以下文件里。

full_screen_demo.zip (zip, 49.2 MB)

取出playerglobal.swc,把它放在以下地方

Flash CS3: Adobe Flash CS3\en\Configuration\ActionScript 3.0\Classes\

Flex Builder: Flex Builder 2\Flex SDK 2\frameworks\libs

Flash Player支持硬件了!接下来的事我拭目以待!