10.1の最近のブログ記事

Flash Player 10.1 と AIR 2 から、セキュリティ関連の新しい機能が追加されました。他のドメインから読み込むファイルの種類を制限できる機能です。

セキュリティドメイン

新機能の前に、セキュリティドメインについて確認です。

セキュリティドメインは、Flash Player に読み込んだ SWF ファイルを管理するための機能です。同じセキュリティドメイン内のリソースには自由にアクセスできますが、他のセキュリティドメイン内のリソースには (通常) 勝手にアクセスできないようになっています。

基本的には、SWF ファイルの置かれているサーバーのドメインごとに、セキュリティドメインが作られます。例えば、最初に読み込まれた SWF ファイルと、その SWF ファイルが読み込んだ SWF ファイルが、それぞれ別のサーバーから読み込まれた場合、2 つのセキュリティドメインがつくられます。そして、2 つの SWF ファイルは、それぞれ対応するセキュリティドメイン内に置かれます。

"基本的に" と書いたのは、外部ドメインのファイルを、ファイルを要求した SWF のセキュリティドメインに読み込む手段があるからです。以下の 2 つの API が提供されています。

1 つ目は、LoaderContext.securityDomain 属性に、読み込む側のセキュリティドメインである SecurityDomain.currentDomain を設定してから Loader.load() メソッドを呼ぶ、というものです。これで、外部ドメインのファイルでも、load() を呼んだ SWF と同じセキュリティドメインに読み込まれます。下はそのサンプルです。

var ld:Loader = new Loader();
var lc:LoaderContext = new LoaderContext();
// 読み込む側のセキュリティドメインを指定
lc.securityDomain = SecurityDomain.currentDomain;
// 第2引数にLoaderContextを指定
ld.load(new URLRequest("http://not.my.domain.jp/foo.swf"), lc);
 

かなり遅くなってしまいましたが、Flash Player 10.1 からセキュリティ上の理由で変更された仕様関連の情報です。変更は全部で 4 つあります。

まず、以下の 3 つは、既存のコードに影響が出る可能性のある変更です。

リダイレクトされた URL の切り捨て

1 つ目は、SWF ファイルやイメージを読み込んだ後に、読み込んだファイルの URL がドメイン名までしか見えなくなる、というものです。

この影響を受ける属性は、AS 3 では LoaderInfo.url と Sound.url それから AS 1 / AS 2 では MovieClip._url です。これらの属性値が、例えば、http://sample.jp/xxx/yyy/my.swf のはずなのに http://sample.jp/ になっている、という場合が起こりえます。

この状況が起きるのは、以下の 3 つの条件すべてが揃った場合です。

  1. ファイルの読み込み中に HTTP リダイレクトが発生
  2. ファイルを要求した SWF のドメインと、読み込まれたファイルのドメインが異なる
  3. ファイルを要求した SWF が、読み込まれたファイルへのアクセス許可を持たない

リダイレクトが発生した場合、リダイレクト後のURL 情報を見せない、というのが新しいセキュリティポリシーのようです。

URL 情報が一部隠されているかどうか、を知らせるため、AS 3 には新しい属性が追加されています。LoaderInfo.isURLInaccessible と Sound.isURLInaccessible の 2 つです 。AS 1 / AS 2 には、状況を示す属性の追加はありません。

リダイレクトされて (条件 1 を満たす) 他のドメインからファイルを読み込んだんだけど (条件 2 を満たす) URL が知りたい!というときは、ファイルへのアクセス権を与えます ( 条件 3 を満たさなくなる)。 設定方法は、読み込むファイルのフォーマットによって異なります。

読み込んだファイルが SWF の場合は、読み込まれた SWF が Security.allowDomain (AS 3) または System.security.allowDomain (AS 1 / AS 2) を実行します。これにより、ファイルを要求した SWF にアクセス権を与えます。

読み込むファイルがイメージやサウンドの場合は、サーバー上のポリシーファイルを使ってアクセス許可を設定します。その際、読み込む側の SWF が AS 3 の場合には、LoaderContext.checkPolicyFile や SoundLoaderContext.checkPolicyFile の値を true にして、確実にポリシーファイルが読み込まれているようにするのが良いでしょう。

なお、この変更は AIR 2 のアプリケーションコンテンツには影響しません。Flash Player 10.1 上で実行される全ての SWF ファイルと、AIR 2 の非アプリケーションコンテンツが影響を受けます。

今回の変更は大きく 2 点です。

まず、Mac 版に、ハードウェアを利用した H.264 ビデオの再生機能が追加されました。この機能は、OS X 10.6.3 以降の Apple Video Decode Acceleration framework がサポートされる Mac 上で利用可能です。より詳しい機種情報は、以前の記事をご参照ください。

それから、セキュリティ関連の修正が行われました。

修正された問題は 6 つで、重要度は非常に高いため、すみやかに最新版へのアップデートが推奨されています。対象となるのは、全てのプラットフォーム (Android 版を除く) の Flash Player 10.1.53.64 以前の全てのバージョンと、Adobe AIR 2.0.2.12610 以前の全てのバージョンです。

Flash Player 10 のサポートされない環境 (Windows 98, Windows ME, OSX 10.1-10.3, RHEL 3 & 4) 用に、Flash Player 9.0.280 もあわせて公開されています。

ダウンロードページは、

です。

デバッグ版とスタンドアローン版は、Flash Player Support Center からダウンロードできます。Flash CS3 Professional と Flex 3 用に、Flash Player 9.0.280 も同じページにあります。

今週の Android 2.2 のオープンソース公開に合わせ、Andoroid 用の Flash Player 10.1 が正式に公開されました。これにより、いよいよスマートフォンのブラウザ内でも、デスクトップと同様の Web 体験が実現されるようになります。

Flash Player 10.1 では、デバイスをターゲットにしたパフォーマンスの最適化や、ジェスチャーによる入力、加速度計や GPS のサポートなど、Flash Player 10 からたくさんの変更が行われました。その他にも、バッテリーの消費を少なくするための機能やメモリ管理機能の改善なども行われています。

Android 2.2 の搭載されたデバイスをお持ちの方は Android Market から入手可能です。http://www.adobe.com/go/getflash_jp/ にアクセスしてみてください。

Android アプリを開発したい人には、Android 用の AIR が控えています。こちらはまだ一般公開されていませんが、プレリリースプログラムに参加すると、プログラム内での情報共有やベータ版を使ったテストができます。英語サポートのみで構わなければ、プレリリースプログラムには誰でも参加できます。サインアップはこちらから。

 

Flash Player 10.1 と AIR 2 が正式に公開されました。

今回公開されたのは Flash Player, AIR どちらも Windows, Mac, Linux 版です。

Android 版については、Flash Player 10.1 は今月末を目処に公開が予定されているとのことです。AIR 2 はまだ具体的な情報が公開されていません。

Flash Player のデバッグプレーヤーとスタンドアローンプレーヤは US のサポートセンターからダウンロードできます。日本のサイトも直ぐに更新されると思いますがとりあえずはこちらをお使いください。(Adobe Flash Player Support Center Downloads

Flash Player 10.1 のベータ版をインストールしている環境では、一旦ベータ版の Flash Player をアンインストールしてからインストールする必要があるとのことです。アンインストール用のプログラムは、こちらもとりあえず US のサポートページからダウンロードできます。(How to uninstall the Adobe Flash Player plug-in and ActiveX control

それから、AIR 2 SDK は 6 月 15 日頃に公開予定とのことです。Flash Professional や Flash Builder など関連製品のアップデートも順次公開されることと思います。

新機能については、今までもお知らせしていたように、パフォーマンスや消費電力の改善、マルチタッチサポート、プライバシーモード追加、などなど盛りだくさんです。特に Mac の Flash Player は完全に Cocoa 対応になりました。Gala の機能はまだ含まれていません。

その他、詳しくはそれぞれの製品紹介ページをご覧ください。(まだ更新中みたいですが)

Flash Player 10.1 release candidate 6 と Flash Player "Gala" preview 2 for Mac OSX 10.6.3 が Adobe Labs に公開されました。(Flash Player 10.1@Labs

特に、Flash Player 10.1 RC6 は正式な公開が近いと思われるので、早めにテストをしておいたほうがよさそうです。ダウンロードはこちらから。必ずアンインストーラを使って既存の Flash Player を削除してから新しいバージョンをインストールして下さいとのことです。

Android 2.2 をお使いの方には Flash Player for Android のベータ版が公開中です。こちらのテストも是非是非。

Flash Player 10.1 (と AIR 2) の新機能であるマルチタッチとジェスチャーのサポートについて、まずは概要を少しばかり。

はじめに

既にご存知の方は飛ばしていただければと思いますが、Flash では新しい分野なので、最初に言葉の整理をしておくと、

  • タッチ: デバイスに触れた、移動した、離れた、などの個々の動作
  • マルチタッチ: 複数のタッチを同時に扱うこと
  • ジェスチャー: 複数の動作の組み合わせ (例: 指をデバイスに 「触れて」 から 「横に移動」 する)

という感じかと思います。

"タッチ" はマウスの代わりにデバイスに直接触れることにより行う入力行為です。「クリックしていない」 という状態が無いことを除けばほぼマウスと同じように扱うことができます。Flash Player 10.1 ではタッチによる操作を処理できるよう、新しく TouchEvent が追加されています。

マルチタッチに対応するには、複数の指で操作が同時に行われた時、個々の指の動きを識別できる必要があります。そのため、TouchEvent にはタッチポイントを識別するための ID が属性として定義されています。指がデバイスに触れてから離れるまでの間、その指からの TouchEvent には同じ ID が割り当てられます。

さて、ジェスチャーは、特定の動作に特定の意味を持たせるものです。例えば、2 本の指を反対の方向に広げる → 拡大表示、というのは良く知られたジェスチャーです。その他にも、円を描いたらメニューを表示するというジェスチャーの使い方もあるかも知れません。また、ショートカットキー代わりに画面に文字を書いたら対応するコマンドを実行するというジェスチャーもあるかもしれません。とりあえず識別可能な動作であればジェスチャーとして使用される可能性を持っています。

まとめると、タッチは、デバイスの機能として検出可能な操作、という理解でよいかと思いますが、ジェスチャーは、ユーザーがデバイスに対して行うことのできる動作の捕捉、と捉えることができそうです。デバイスにユーザーが合わせる (タッチ) とユーザーにデバイスが合わせる (ジェスチャー) というコペルニクス的な (ちょっと大げさ) 視点の転換が両者の間にはありそうです。

容易に想像できるように、利用できるジェスチャーはプラットフォームにより異なります。また、ジェスチャーの実装の仕方も、ジェスチャーの判別を行ってくれるプラットフォームがあれば、タッチイベントだけ通知してそれらからジェスチャーに組み上げる作業は開発者任せのプラットフォームもあります。Flash Player 10.1 では標準的なジェスチャーの発生を知らせるジェスチャーイベントがサポートされていますが、TouchEvent を使ってジェスチャー処理用のライブラリを開発するという方法も選択できるようになっています。

マルチタッチと環境について

GUI であればポインティングデバイスが使える、というのはもはや "当然のこと" として受け入れられているかと思います。一方、マルチタッチやジェスチャーはその歴史が浅いこともあり、きちんと使える環境はまだまだ限られています。Flash Player 10.1 がサポートする、だけではマルチタッチ/ジェスチャーの利用には十分では無いのです。

Flash Player 10.1 の RC (Release Candidate) が Adobe Labs に公開されています。(Flash Player 10.1@Labs

RC 版は、何も無ければこのままリリースされるという位置づけのバージョンですので、サイト運営やコンテンツ開発を担当されている方は、今動いているものがそのまま動作するか、確認よろしくお願いします。

ダウンロードはこちらから: Adobe Labs Downloads/Flash Player 10.1

バグを発見したらこちらへ: Adobe Bug and Issue Management System/Flash Player (英語のみです)

今のところ、OSX 10.6.x + Safari 4 / Chrome だと32-bitモードにしないと日本語入力できないことが判明していて、近いうちに何とかなる予定だそうです。

念のため、バージョンチェックについてはこちらの記事もご参照ください。(Flash Player 10 バージョン判別チェックリスト

引き続き Flash Player 10.1 のハードウェア描画機能の話題です。今回は GPU によるグラフィックス描画機能について。

Flash Player 10.1 は、OpenGL ES 2.0 をサポートする "デバイス" 上で、全てのグラフィック要素 (Pixel Bender シェーダを除く) を GPU を使って描画します。この機能はデバイス限定で、デスクトップ OS 用の Flash Player 10.1 は従来どおりソフトウェアによる描画処理を行います。将来はデスクトップでも GPU 描画がサポートされる予定です。

Flash Player 10 との違い

Flash Player 10 にも GPU を利用する機能があります。これは、Flash Player がソフトウェアにより個々のグラフィック要素の描画を行い、GPU がそれらを合成するというもので、wmode=gpu の指定をすると有効になります。パフォーマンスに関しては、早くなるケースがあれば遅くなるケースもあるという感じでした。

一方、Flash Player 10.1 での GPU サポートは、合成だけでなくグラフィックスの描画自体も GPU で行うものです (描画される対象は、ベクター・ビットマップ・ビデオ・テキスト・フィルター等全般)。 "最適化された" コンテンツであれば相当なパフォーマンスが改善が期待できることになっています。

Flash Player 10.1 の GPU 描画機能は、サポートされる環境であれば自動的にオンになるため、明示的に wmode=gpu を指定する必要はありません。但し、wmode=opaque や wmode=transparent を指定すると自動的に GPU 描画機能はオフになり、ソフトウェアによる描画が行われます。

GPU 描画の特徴について

ソフトウェアによる描画と違い、GPU による描画は 100% のピクセル精度を持っていません。これは、GPU がベクターグラフィックスの描画を行う際に、グラフィックの形状を小さな 3 角形のメッシュに分割 (テセレーション - tessellation: もともとはモザイク模様にするという意味 - と呼ばれる処理です) してから描画することによります。Flash Player 10.1 では、デスクトップでは引き続きソフトウェアによる描画が行われますので、デバイス用の Player が "公開されたら" 注意して比較してみてください。

それから、デバイス上では、パフォーマンス向上のため画質のデフォルト値が "中" になるようで、この点もテスト時には注意が必要そうです。一般的にデバイスはデスクトップ機のディスプレイよりもピクセル密度が高いため、"高" 画質でなくてもあまり気にならないことが多いのではないかと予測されます。iPad (Flash Player 載る予定無いみたいですけど Packager for iPhone があるのでいちおう) は ppi が低めなので辛いかもしれません。

あとは、GPU では忠実に再現されないブレンドモードがあります。細かい表示まで気にする場合は、"標準" と "アルファ" 以外は避けた方がよいようです。特に "レイヤー" はパフォーマンスにも影響します。

また、今回のバージョンでは Pixel Bender のハードウェアによる描画がサポートされないため、Pixel Bender で描いた領域が黒い四角になってしまったりとかするようです。これも将来の Flash Player 待ちということになっています。

。。。などなど、GPU 描画 (つまりデバイス上の描画) は、今まで見慣れていたものと違う箇所が散見されることになりそうです。従来のソフトウェア描画とはロジックがまったく異なるため、ある程度の割り切りは必要そうですね。

現在ベータ 3 が公開中の Flash Player 10.1 (Flash Player 10.1@Labs) ですが、新しく追加された機能の一つに 「ハードウェアを利用した描画処理」 があります。

これは、グラフィック描画関連処理の高速化と、必要なリソースや消費電力の削減を目的としたものです。具体的に、新しいハードウェアによる描画機能には、以下の 2 つ

  1. H.264 ビデオのハードウェアによるデコード
  2. GPU によるグラフィックスの描画

が含まれています。今回は 1 つ目の H.264 ビデオのデコード機能についてのまとめです。

従来、Flash ビデオにとって H.264 は品質が高い一方デコードが重たくなりがちという難点がありました。が、Flash Player 10.1 では GPU 等のハードウェア機能を使ったデコードができるため、CPU に負荷をかけず且つ高速に H.264 ビデオ再生が可能になるというものです。

スマートフォンやネットブックなどの非力な環境では特にありがたい機能になりそうです。

サポートされる環境

まず、ハードウェアを使った H.264 ビデオのデコードは全ての環境でサポートされるわけではありません。

特定のハードウェアに適切なドライバーが組み合わされた環境でのみ正しく動作します。サポートされるハードウェアのリストはベータ版のリリースノート (Flash Player 10.1 public beta release notes) をご覧ください。この記事の最後にもコピペしておきます。

ベータ版の Flash Player 10.1 はドライバーのバージョンチェックを行わない (つまりサポートされない環境でもハードウェアデコードを行ってしまう) ため、環境によっては Youtube を見ようとした瞬間にブラウザが落ちる、といったことが起きる可能性があります。その場合、そもそもハードウェアがサポートされない古い PC をお使いであれば、とりあえずコンテキストメニューから設定パネルを開いて "ディスプレイ" タブ内のチェックをオフにしておきましょう。

(Flash Player 10.1 の正規版では、正しいドライバがインストールされているかをちゃんと確認した後でハードウェアを使ったデコードを行うそうです。ですのでこの件はベータ版だけでの注意事項ということです)

一方、ハードウェアデコードがサポートされる環境のはずなのに再生された映像が怪しいという場合はバグかもしれません。こちらの PDF (Instructions for reporting video bugs) を参考にバグレポート (英語しか受け付けて貰えないようですが) を急いで送りましょう。

なお Flash Player 10.1 では、Mac OS X と Linux 版でのハードウェアデコードはサポートされません。Linux 上では必要な API の標準がまだ確立されていないため、OS X 上では必要な API の利用方法が公開されていないため、が理由との事。将来のバージョンでのサポートは引き続き検討される、だそうです。

Adobe Labs に Flash Player 10.1 のベータ 3 が公開されました。(Flash Player 10.1@Labs

ダウンロードはこちらです。あいかわらず、デバイス向けは未公開で、お試しできるのは Windows, Macintosh, Linux です。新しいビルド番号は 10.1.51.95 です。

昨年末に公開されたベータ 2 からは多くのバグが修正されていて、FTE での IME サポートの改善やビデオ再生の安定性向上などが行われています。

ベータ版は日本語を含む各国語に対応していますが、インストーラーは英語のときのみ正しい表示がされます。またバグに対するフィードバックも現時点では英語でのコメントのみ受け付けているとのことです。

詳細はリリースノートをご覧ください。 (Flash Player 10.1 Beta 3 Release Notes: PDF)

Flash Player 10.1 ベータが Adobe Labs に公開されました。(Adobe Flash Player 10.1@Labs

今回公開されたのは、Windows版、Mac版、Linux版です。ダウンロードページはこちらになります。(Flash Player 10.1@Labs download) モバイルプラットフォーム向けの Flash Player は次回以降のベータで追加される予定です。

また、Linux 向け 64 bit 版 Flash Player のアルファ版の情報も更新されています。(Flash Player 10 for 64-bit Linux@LabsFAQ によると 64 bit 版は次のメジャーアップデートのタイミングで Windows, Mac, Linux ともにリリースを予定しているようです。

さて、10.1 をインストールする際は既存の Flash Player を事前にアンインストールする必要がありますのでご注意ください。Windows では "プログラムの追加と削除" から行えます。Mac の場合はこちらのテックノートからアンインストーラをダウンロードしてお使いください。

以前にもお伝えしていますが、主な新機能のリストです。今回のベータではまだ実装されていないものもあります。また、デスクトップ版のみのもの、モバイル版のみのものもありますがとりあえず。

  • モバイルプラットフォームのサポート
    Android 等デバイス向けの OS をサポートが追加されます。これにより Flash Player の全ての機能がスマートフォンなどでも利用できるようになります。
  • グローバルエラーハンドラ
    ランタイムエラーを一括して処理するエラーハンドラを作れるようになります。例えばユーザにエラーの状況や対応方法を知らせることができます。(この機能は今回のベータには含まれていません - AIR 2 ベータには含まれています)
  • マイクへのアクセス
    マイクから入力されるデータストリームへのアクセス機能が追加されます。音声の加工や解析などの新しい使い方ができるようになります。
  • 新しいメディア配信機能
    新しい HTTP ストリーミング機能 (バッファコントロール、フレームレート最適化等) によりパフォーマンスが改善します。また、Flash Access を使った新しいコンテンツ保護機能もサポートされます。
  • H.264 ハードウェアデコード (Windows のみ)
    ビデオの最盛時にハードウェアの機能を利用します。これにより再生時のパフォーマンスが改善します。

Flash Player 10.1 の新機能を使うには、Flash Builder 4, Flex Builder 3 の環境で新しい playerglobal.swc を設定します。

設定手順は、

  1. 新規プロジェクトを作成して、"Flex ビルドパス" タブを開き、既存の playerglobal.swc を削除
  2. "SWC の追加" から playerglobal.swc をパスに追加
  3. playerglobal.swc のツリーを開き、リンクタイプを外部に変更
  4. "Flex コンパイラ" タブ内を開き HTML ラッパーに必要な Flash Player のバージョンを 10.1.0 に変更

です。

また、メモリ使用量のモニター用コンポーネントも公開されています。(Memory Monitoring Component; ZIP, 6.8 KB) デバイス向けのチューニング用にとのことです。

その他詳細は、リリースノート (英文) をご覧ください。

最後に、Flash Player 10.1 の正式なリリースは 2010 年の前半が予定されています。

2014年1月

Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
レンタルサーバー

月別 アーカイブ

Powered by Movable Type 4.261