Flash & ActionScriptの最近のブログ記事

マイコミジャーナルで下記のような記事がありました。

「Adobe CS5のiPhoneアプリ書き出し機能はライセンス違反!? - 元Adobe技術者が指摘」 
http://journal.mycom.co.jp/articles/2010/03/22/adobe_cs5_violation/index.html

これまで得た情報やこの記事を読むかぎり、ライセンス違反している可能性は高いでしょう。
しかし、たとえライセンス違反だったとしても、AdobeとAppleの関係が良好であれば、別途ライセンスを結ぶこともできます。

ですがその可能性は非常に低い。

以前、当ブログの記事「代替できないプラットフォームに依存することの危険性」でも書きましたが、AppleのApp Storeの審査基準は厳密になりつつある上に、一方的に変更されます。

最近、AppleとAdobeのFlashをめぐるバトルが激しいですね。
AppleおよびSteve Jobsが、Flashはバグが多いから云々・・・と言いがかりをつけていますが、あちこちで言われているように、FlashでiPhone/iPadアプリをオーサリングでてきてしまうと、App Storeを中心としたAppleのビジネスモデルが崩れてしまうから・・・というのが本当の理由です。

AdobeがFlash擁護に必死なのは、Flashをスルーされる流れが定着してしまうと、Flashのオーサリングソフトで儲けているAdobeのビジネスモデルが根底から揺らぐからです。

「Flashがスルーされる=Flashクリエイターの減少、つまりFlashオーサリングツールの購入者が減る」ということを意味しています。

SWF上のテキストフィールドに入力した内容を、別のテキストフィールドに特定のフォントで表示させる実験。
今回の実験では、下記の項目をあえて必須要素としました。

  1. 埋め込みフォントを使用し、フォントがインストールされていないPCでも、見た目が変わらないようにする。
  2. フォントシンボルを共有ライブラリとして外部SWFに置く。つまりテキストフィールドに入力させるSWFと、フォントシンボルの入ったSWFをそれぞれ別々にする。

■制作上の注意点

  1. フォントシンボルを共有ライブラリSWFにする必要がある。
  2. 共有ライブラリのシンボルの読み込みは、それが配置される直前のフレームである。
  3. つまりムービーがロードし終わっても、共有ライブラリのフォントシンボルはまだ読み込まれていない。
  4. それを回避するため、間にもう一つ共有ライブラリを読み込むためだけのSWFをはさむ。
  5. 結局、合計3つのSWFが必要となる。
    • フォントシンボル共有ライブラリSWF
    • 共有ライブラリSWFをからのMCに読み込み、キャッシュさせるSWF
    • テキストフィールドに入力、表示させるSWF

■フォントシンボル共有ライブラリSWFの作成

  1. 空のテキストフィールドを作成、使用したいフォントを埋めこむ。「例:A-OTF 新ゴ Pro M」
  2. 識別子:myFont
  3. リンケージは下記のようにチェック
    • ActionScriptに書き出し
    • ラインタイム共有用に書き出し
    • 最初のフレームに書き出し
  4. SWFにパブリッシュ

■キャッシュさせるSWFの作成

  1. 先に作成した、外部ライブラリの読み込みでmyFontを読み込み。
  2. 識別子:myFont
  3. リンケージは下記のようにチェック
    • ラインタイム共有用に読み込み
  4. ステージ上に配置
  5. SWFにパブリッシュ

JavascriptとActionScriptの連携をいくつかのケースに分けて実践してみたいと思います。
最初のケースは、別のHTMLに埋め込まれているswfの特定のタイムライン(ラベル)にジャンプさせる方法です。

今回のケースでは下記の条件を設定しました。

1.リンク先のHTMLファイルは一つ、swfファイルも一つとする。
2.swfのタイムラインにラベルを記載。リンク元のHTMLから、リンク先swfの特定のラベルのあるタイムラインを最初に表示するようにする。

リンク元HTMLファイル名を、index.html
リンク先HTMLファイル名を、jsas.html
リンク先HTMLに埋め込まれたswfファイル名をjsas.swfとします。

実行結果を見る

サンプルソースは下記の通り。

2006年4月のパッチ以降、Internet ExplorerでFlashなどのアクティブコンテンツ上にマウスカーソルを持っていくと「このコントロールをアクティブ化して使用するにはクリックしてください」 と表示されます。
様々な解決方法がありますが、現在のところ最もスマートと思われる方法がありましたので紹介します。

cyanoというサイトの
「2006年4月のActiveXパッチがあたったIEでFlashなどを従来通り表示させるためのJavaScript(Flashのバージョン検出機能付き)」
で公開されていた、swfTagWriter.jsです。

FLVエンコードの画質チェックを実施しました。
調査したFLVエンコーダおよびエンコードソフトは下記の通り。

【調査したFLVエンコーダ】
Sorenson Spark (Flash 7形式)・・・Flash Professional 8にてエンコード
On2VP6 (Flash 8形式)・・・Flash Professional 8にてエンコード
Riva FLV Encoder

各エンコーダの詳細な説明に関しては、今回は割愛します。

【エンコード設定】
元ファイル:wmv形式 (8.39MB)
ムービーのサイズ:480x264
フレームレート:30fps
ビデオ ビットレート:400kbps
オーディオビットレート:80kbps(stereo)
オーディオ サンプリングレート:22050hz

【変換後のFLVのサイズ】
Sorenson Spark (Flash 7形式)・・・7.91MB
On2VP6 (Flash 8形式)・・・8.50MB
Riva FLV Encoder・・・8.16MB

【画質確認URL(各リンクをクリック)】
Sorenson Spark (Flash 7形式)
On2VP6 (Flash 8形式)
Riva FLV Encoder(Flash 7対応)

同一条件にてエンコードするとその違いが一目瞭然ですが、やはりOn2VP6が最も良好です。
際立って画質が悪いのがSorenson Spark。特に動きのある部分のブロックノイズが酷い。
Riva FLV Encoderはその中間ですが、On2VP6と違い、Flash Player7で再生できる強みがあります。

このアーカイブについて

このページには、過去に書かれたブログ記事のうちFlash & ActionScriptカテゴリに属しているものが含まれています。

前のカテゴリはAptanaです。

次のカテゴリはMovableType&CMSです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。