アドビの言語設計リサーチグループに所属する Avik Chaudhuri のブログに、現在開発中の次世代 ActionScript コンパイラ Falcon の情報が公開されています。コメントも含め興味深い内容ですので、関心のある方はご一読をお勧めします。

The V8 Myth: Why JavaScript is not a Worthy Competitor

... 以下は、簡単な内容の紹介です。

ActionScript で記述されたコードは、バイトコードにコンパイルされて、AVM 上で実行されます。現在の実装では、AS コードをコンパイルする時の最適化は殆ど行われず、実行時の JIT による最適化がパフォーマンスの要となっています。

(AS コンパイラには、もうちょっと頑張って欲しい気がしますよね)

Flash Player 11.2 と AIR 3.2 のベータ版が更新されました。

大きな変更点は、Stage3D 及び StageVideo の利用環境の拡大です。現行の Flash Player 11.1 では、2009 年以降のドライバがインストールされた環境でのみ利用できましたが、これが 2008 年まで緩和されました。より多くの環境で GPU が利用できることになります。

今回公開されたバージョンは、以下の通りです。どちらもデスクトップ版のみです。

  • Flash Player : 11.2.202.183
  • AIR : 3.2.0.1720

Edge プレビュー 4 が Adobe Labs に公開されました。昨年の秋にプレビュー 3 が公開されてから久しぶりの更新になります。 (Edge@Labs

ダウンロードはこちらのリンクです。ダウンロードには Adobe ID が必要です。サポートされる OS は、以下の通りです。

  • Windows 7, Windows Vista
  • Mac OS X 10.6, 10.7

時間をかけただけあって、今回はいくつもの新機能の追加やユーザビリティの改善が行われています。以下がその主な項目です。

Starling では、指による操作も、マウスによる操作も、どちらも同じイベント (TouchEvent) として扱います。

Flash Player のマウスイベントとは異なり、イベントの種類は TouchEvent.TOUCH の 1 つだけです。そのため、触れた、移動した等の操作の状態は、イベントに含まれる Touch オブジェクトの属性から判断することになっています。

Starling の全ての表示オブジェクト (Sprite, Stage, Quad, ...) は、TouchEvent を扱えます。ただ、Button クラスは、内部的にタッチイベントを triggered イベントに変換しているため、独自のリスナを追加するのは、注意した方がよいかもです。

また、表示オブジェクト自身や親オブジェクトの touchable 属性が false の場合は、TouchEvent を受け取ることはできません。

Starling には、ボタンを簡単に実装できるよう Button クラスが用意されています。

Button クラスは DisplayObjectContainer クラスのサブクラスです。なので、任意の表示オブジェクトを子に持つことができますが、基本的には、スキン画像とタイトルを表示するだけのクラスです。あと、ボタンのクリックを通知する機能があります。

下が、Button のコンストラクタです。最初の引数は、ボタンのスキンとなるテクスチャです。オプションとして、第 2 引数にタイトルを、第 3 引数に押されたときのテクスチャを指定できます。

Button(upState:Texture, text:String = "", downState:Texture = null)

Flash Professional で作成するボタンと違って、"オーバー" のスキンは指定できません。おそらく、これは、タッチデバイスでの利用を前提としているためだと思われます。

Starling では、文字を表示するために TextField というクラスが提供されています。フォントの種類、大きさ、色、位置などを指定して、テキストを画面に表示できます。

とはいえ、GPU で直接フォントを扱えるわけではありません。実際には、裏で Flash Player の TextFiled を使って CPU 描画したものを、ビットマップ化して GPU にアップロード、という動作をします。

つまり、Starling の TextField が提供するのは、与えられたテキストとフォントから、動的にテクスチャを生成する機能です。

そのため、カーソルで、表示されたテキスト内の文字を選択する、といった操作はできません。 (ただのビットマップなので)

また、特に動的に生成する理由のないテキストは、TextField を使うより、事前にテクスチャとして準備しておいた方が、実行時の効率は良さそうです。

Flash でアニメーションと言えばやはり MovieClip ですが、Starling にも MovieClip というクラスがあります。もちろんアニメーション用のクラスです。

前回少し触れましたが、Starling で画面に表示できるのは、ビットマップ画像か色を指定した矩形です。そのため、名前は同じ MovieClip でも、Starling の MovieClip は、フレーム毎に割り当てられたビットマップを表示するクラスとなっています。

また、Starling の MovieClip には子オブジェクトを管理したり、フレームにスクリプトを持つ機能がありません。この点も Flash Player の MovieClip とは大きく異なります。

(Starling では、表示リストの管理は Sprite の担当です。一方、MovieClip は Image クラスにタイムライン機能を足した Image のサブクラスです。MovieClip が Sprite のサブクラスである Flash Player とは異なり、両者の役割はほとんど被りません。)

今月の Flex 関連の情報のまとめです。

まず、Flex 3 から Flex 4.5 まで全てのバージョンに影響するセキュリティ問題の件です。
(最新の Flex 4.6 は対応済みです。Flash Builder 4.6 に含まれる Flex 3.6A SDK も対応済みです)

XSS 関連の問題なので、AIR アプリは対象外です。また、Flex 4.x SDK で、RSL を使って Flex フレームワークをリンクしている場合も、ごく一部の例外を除き影響を受けません。

直ぐにこの問題に対応できるよう、AIR ベースのパッチツールが提供されています。 (APSB11_25_Patch_Tool.air: Win と Mac 上で実行可能)

パッチツールを起動してから、SWF ファイルを指定すると、問題のあるバイトコードを置き換えてくれます。また、SWF に脆弱性が含まれているかを確認する目的でも利用できます。

2012年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        

最近のコメント

  • 澄定: これは素晴らしい記事ですね。 Starlingを基礎から説明してくれるのはほんと助かります。 Sta 続きを読む
  • moderntique: いつも拝見させていただいています。 この記事の考察、大変興味深く読ませていただきました。 僕個人的に 続きを読む
  • ackie: dh さん、こんにちは。 ご連絡ありがとうございました。 レジスタ数の件については認識がありませんで 続きを読む
レンタルサーバー
Powered by Movable Type 4.261