FlashPlayer11 の細かすぎて伝わらない変更点

やー、ついに Flash Player 11 が公開されましたね。Web3D 時代の到来です。WebGL がまごまごしてるうちに追い抜いてしまいました。こういう早さは、やはり一社提供の強みですね。WebGLも、もうGoogle一社提供にしちゃえばいいんじゃないかな。
Flash Player 11
Flash Player | Adobe Flash Player 11 | Overview
Flash Player 11 Debug Player とか
Adobe Flash Player - Downloads


さて、このFlash11ですがそうとう色々変わってるっぽいので、Web版のFlashPlayer11に絞って(AIR3の変更点は除いて)軽くまとめてみようと思います。

大きな変更点 from リリースノート

(via )

  • なんといってもStage3D!GPUアクセラレーション3D
  • 64-bitのサポート
  • 非同期ビットマップデコード
  • TLS セキュアソケットのサポート
  • SWFファイル圧縮効率の向上
  • JPEG-XRのサポート
  • JSONフォーマットのサポート
  • 乱数の高品質化(暗号で使えるレベル)
  • Gabage Collection の高品質化
  • Graphics.cubicCurveTo()
  • DisplayObjectContainer.removeChildren()
  • MovieClip.isPlaying()
  • flash.events.OutputProgressEvent(Socket Progress Event)
  • G.711 Audio Compression for Telephony ?

乱数の高品質化はどこで反映されるのか良くわかりませんが。Math.random()メソッド?
(10/5修正。flash.crypto.generateRandomBytes()という隠しメソッド(BETA版リファレンスに乗ってるのに最新リファレンスで消えてる、のに実は使える)がそれっぽい。via @9ballsyndrome)

もうちょっと細かい変更点 from AdobeMax参加組の速報

(via Adobe MAX 2011レポート:Flash Player 12(?)の新機能 - IxDGだより つむぎだすデザインと表現)

  • Sound.loadPCMFromByteArray() 16bit int と 32bit float の波形データ読込!
  • Sound.loadCompressedDataFromByteArray() ローカルMP3ファイル読込!

他にも自力で把握できたところがあったので追加

参考:Adobe ActionScript® 3 (AS3) API Reference

  • Matrix3D, Vector3D, Point, Rectangle にcopy系/setTo()メソッドの追加
  • FileReference.browse()がイベントハンドラ内でしか使えない制限の解除(10/5修正。すいません、はやとちりのようです。何らかの制限緩和はあったようです(FP11だとエラーにならないものがある)が、ブラウザ上ではダイレクトには呼び出せないっぽいです。)
  • System.pauseForGCIfCollectionImminent() でGC処理発生の閾値を変更可能(Gabage Collection の高品質化)
  • ByteArray, Dictionary, XML, Date に toJSON() メソッド追加(JSONフォーマットのサポート)
  • TextField.textInteractionMode() ?(謎)
  • flash.crypto.generateRandomBytes() (10/5 via @9ballsyndrome)
  • 環境によっては、Sound Generation の Latency が短くなる!(10/9追加)

まだまだありそうです。

FlashPlayer11++++

個人的には、Stage3D と Sound.loadCompressedDataFromByteArray()、copy系/setTo()メソッド、FileReference.browse()制限解除あたりが魅力です。
Stage3Dは言うに及ばず、webアプリの概念を根底から覆すレベル。
Sound.load...()のローカルmp3ファイル読み込みについては、SiON v0.64 でもローカルmp3読み込みに対応してたのですが、swf経由のバイナリハックだったので、やはり公式メソッドでの対応は魅力です。
Matrix3D, Vector3D, Point, Rectangleのcopy系/setTo()メソッドは、地味にかなり強力だと思っています。これまでのAPIでは、内部で新たなインスタンスを確保する(newする)のが前提だったので、最適化しずらいのが欠点でした。しかしcopy系/setTo()メソッドのおかげで、あらかじめメモリを確保して再利用することが可能になったので相当の最適化が期待できます。
FileReference.browse()の制限解除も地味に嬉しい所です。ファイルを扱う簡単なユーティリティを簡単に作れるようになります。


やー、かなりわくわくしてきましたyo!
あとはわれらが主戦場、wonderfl build flash onlineでの対応が待たれるばかりですね。