ようこそ!浜村拓夫の世界へ

    ブログ内検索

    最近の記事

    ブックマーク数の多い記事

    Blog Translation

    Powered By FC2ブログ

    Powered By FC2ブログ
    ブログやるならFC2ブログ


    FC2ブログ LOGIN

    with Ajax Amazon

    ActionScriptとJavaScriptの違い

    このエントリーを含むはてなブックマーク はてなブックマーク - ActionScriptとJavaScriptの違い あとで読む
    ゲーミフィケーションでUIを作るとき、実装の選択肢は、いくつかある。

    プラットフォーム(OS)に依存しないなら、
    ・JavaScript → HTML5+JS+ライブラリ(enchant.js等)
    ・ActionScript → Flashコンテンツ
    等がある。

    ポリゴンバリバリのド派手3Dじゃなければ、JSやASで十分だな。

    ●ActionScriptとJavaScriptの違い
    ASもJSも、同じECMAScriptファミリーなのだが、言語仕様で微妙に違う部分もある。

    ECMAScript - Wikipedia

    ECMAScript(エクマスクリプト)は、Ecma International によって策定されたスクリプト言語である。
    互換性の低い JavaScript と JScript を標準化すべく、両方の言語に共通する部分を取り入れて作られた。
    Ecma Internationalのほか、ISO/IEC JTC 1からもISO/IEC 16262として標準化されている。
    日本もJIS X 3060としてJIS規格化している。



    JavaScriptの実装が乱立して、ECMAで標準化(共通化)した。
    ECMAの標準をもとに、ActionScriptの言語仕様が策定された。

    Flash CS4 Professional ActionScript 2.0

    ActionScript と JavaScript の違い

    ActionScript は、基本的な部分は JavaScript プログラミング言語と似ています。
    ActionScript の使用および習得に、必ずしも JavaScript の経験は必要ありません。
    ただし、JavaScript の知識があれば、ActionScript をより効率よく学ぶことができるでしょう。

    JavaScript を起源とする ECMAScript (ECMA-262) Edition 3 の言語仕様は、JavaScript 言語の国際標準の役割を担っています。
    ActionScript はこの仕様に準拠しています。

    ActionScript と JavaScript の違いとして次の点が挙げられます。

    ・ActionScript は、ドキュメント、ウィンドウ、アンカーなど、ブラウザ指定のオブジェクトをサポートしません。
    ・ActionScript がサポートする JavaScript ビルトインオブジェクトは限られています。
    ・ActionScript は、ステートメントラベルなど、JavaScript のシンタックス構造をサポートしません。
    ・ActionScript では、eval() 関数は変数参照しか行えません。
    ・ActionScript 2.0 は、クラスや厳密なタイプ指定など、ECMA-262 仕様に含まれていない機能をいくつかサポートしています。これらの機能の多くは、ECMAScript (ECMA-262) Edition 3 の言語仕様 (www.ecma-international.org/publications/standards/Ecma-262.htm を参照) に基づいて設計されました。
    ・ActionScript では、RegExp オブジェクトを使用した正規表現はサポートされません。しかし、Adobe Central で、RegExp オブジェクトがサポートされています。Adobe Central の詳細については、www.adobe.com/products/central/ を参照してください。



    ActionScript2.0の時点で、JSコアとは似てるけど、JSの実行環境に特有のブラウザオブジェクトとかはないと。
    まあ、JSとASの実行環境は違うから、そんなもん要らんわな。

    2008/04/18/JavaScriptとActionScriptの違い - くじらぶろぐD

    JavaScriptは、プロトタイプベースでしたが、ActionScript3.0では、クラスベースでプログラムを作ることができます。これにより、Javaに近い形となりました。



    Javaやった後に、JSやると、最初プロトタイプベースのOOPに慣れなくて、違和感あるんだよなー。
    AS3.0はクラスベースのOOPなので、なじみやすいと。

    (参考)
    Adobe ActionScript 3.0 * Adobe Flash 用 Adobe ActionScript
    Adobe ActionScript 3.0 * ActionScript の学習用リソース
    Adobe ActionScript 3.0 * 言語の概要


    ●swfのコンパイラ
    Flashコンテンツ開発ってのは、要するにFlash Player上で動作するswf(Flashのバイナリファイル)を作る、ということだ。
    swfは、ActionScript以外でも生成できる。

    OCamlで作られたhaXeというプログラム言語:浜村拓夫の世界

    haXe へっくす
    ActionScript風の文法を持つプログラミング言語。単一の言語で、サーバーサイド(NekoVM、PHP)とクライアントサイド(JavaScript、Flash)のコードを生成できる。



    他に、副作用のない関数型言語で、swfをジェネレートできないだろうか?

    さらば愛しき JavaScript —— 愛と欲望の果てに Haskell は fay と出逢う。 - これは圏です

    JavaScript Problem と呼ばれるウェブ開発上の問題があり、手短にまとめてそれは概ね次のようなパラドックスの形を取る。

    ・JavaScript はクソである。
    ・JavaScript は必要である。

    Fay とは?
    JavaScript Problem に対する一つの解として、ここでは Fay を採り上げる。公式サイトによれば、Fay の特徴は概ね次の通りだ。

    ・Haskell の構文的・意味論的サブセット
    ・静的型付き、遅延評価、純粋
    ・JavaScript にコンパイルされる
    ・JS と互換性のある基本的データ型のサポート
    ・簡単な FFI 機構
    ・GHC を用いた型検査
    つまりは、「JavaScript の代わりにほぼ Haskell を用いることが出来る」と云うことだ。



    Haskellは、ライブラリを使えばJSのコードをジェネレートできるらしい。
    →JSができるなら、ASも可能じゃね?


    ●Flex
    わざわざ、AS以外でswfを作る意味があるとしたら、テストの簡略化だと思う。
    =副作用のない関数型言語を利用して、バグの発生を最小限にしたい。

    ・JS+HTML
    ・AS+MXML(=Flex)

    MXMLという余計なDSLの処理を盛り込めば、Flex以外でもswfを作れるだろう。
    youjiublog: MXML as DSL

    まあ、そんな面倒くさいことをしないでも、素直にASを使えばいいって話なんでしょうけど。

    ActionScriptはHTML5が全盛になる未来を考えると、勉強しないほうがよいでしょうか? - ウェブデザイナーになるには
    Shibu's Diary: 関数型言語を広めるためには何が必要なのか?

    JSのついでにAS。
    それで行ってみよう!(・∀・)
    関連記事

    コメント

    コメントの投稿


    管理者にだけ表示を許可する

    トラックバック

    トラックバックURL:
    http://hamamuratakuo.blog61.fc2.com/tb.php/874-6905af2c

    FC2Ad