Flash Playerの作り方

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    Flash Playerの作り方 - Presentation Transcript

    1. Flash Player の作り方 小林 悠 (yukoba)
    2. 自己紹介
      • JavaScript 上で動く処理系をいろいろ作ってきました。
        • Java
        • Ruby
          • Browser 版、Flash 版
        • Scheme
    3. Open Screen Project
      • 2008年5月1日 – Adobe Open Screen Project にて、 Flash の仕様書を読んだ人も Flash Playerを作ってもよくなりました。
      • 前は、
        • 読んでいない人->作ってOK
        • 読んだ人->作っちゃだめ
      • たぶん、ECMAScript 4がActionScript 3ベースにする予定だったためか?(推測)
    4. Flash Playerの要素
      • 以下の3つが Flash Player を作るうえでの肝
        • AVM (ActionScript Virtual Machine)
          • ActionScript を実行します。 1 と 2 の両方を作る必要あり。
        • 描画
          • gyuque さんが話すよ!
        • タイムライン
          • この部分が最もドキュメント不足。 Gnash の Wiki が最も情報多いです。
          • onLoad 、 onUnload 、 onEnterFrame の呼ばれるタイミングなどが不明確。あまりにも難しい話が多すぎて話せません。
      • 全体として、ドキュメントが不十分。仕様不明のため作るのが困難。
    5. 互換性の問題
      • ドキュメント化されていない部分に、バグとしか思えない仕様が多数あります。
      • 互換性維持のため、Flash 5用にパブリッシュしたら、Flash 5のバグぽい部分もFlash Player 10で再現。
      • Flash 6は変数の大文字小文字区別しないが、Flash 7は区別します。同じAVM1。
      • Flash Player 10 = 1+2+3+4+…+10
      • これは作るの、大変…
    6. with
      • AVM2 (ActionScript3) の場合
        • var a = 456;
        • with({a: 123}) {
        • trace("a = " + a);
        • }
        • 456 と出る。 JavaScript は 123 。
      • AVM1 は
        • 静的スコープでなく、動的スコープ
        • movieClip のプロパティとかぶると、 read と write でスコープ解決のルールが変わる
      • Flash Player の完全再現は大変…
    7. JavaScriptのJIT
      • JavaScriptにJITがのり、劇的に高速化されました。
        • Firefoxは次の3.1から
        • Safariも次から
        • Google Chromeはすでに搭載済み。
      • JIT (Just in Time)とは、実行時にCPUのネイティブコードに変換すること。
    8. AVM2 on JS with JIT
      • ActionScript 3のソースコード
      • -> SWFファイル by Flex 3
      • -> ActionScript バイトコードを文字列に変換 by Tamarin
      • -> JavaScript で読み込む
      • -> ActionScript バイトコードを JavaScript のソースに変換。
      • -> 高速に実行!
    9. 作り方
      • ABC
        • pushshort 5
        • pushshort 3
        • multiply
        • setlocal_1
      • JS
        • 自前のコンパイラ用のスタックを用意して、
        • {type: “number”, value: 5} をスタックに積む
        • {type: “number”, value: 3} をスタックに積む
        • {type: “src”, src: “(3 * 5)”} をスタックに積む
        • local1 = (3 * 5); を出力
    10. ベンチマーク
    11. ベンチマーク
    12. ベンチマーク(イメージ)
    13. Flash 11 への希望 AVM1 AVM2 LLVM AS1,2 AS3 C/C++ Flash Player 11 CPU GPU
    14. Thank you!
    15. URL
      • ブログ
        • http:// d.hatena.ne.jp /yukoba/

    + yukobayukoba, 9 months ago

    custom

    4256 views, 1 favs, 1 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 4256
      • 4226 on SlideShare
      • 30 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 14
    Most viewed embeds
    • 30 views on http://kawa.at.webry.info

    more

    All embeds
    • 30 views on http://kawa.at.webry.info

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories