最近、Adobe AIRで動作するJavaScriptを書くことがありまして、その時に得た知識を投稿しておきます。AIRでJavaScriptを書いた経験のある方は常識と思いますが、AIRはセキュリティによりJavaScriptの一部機能を制限していて使用するとエラーとなります(※)。今回私が対象になったのはその中のeval関数とFunctionコンストラクタで、AIRではこの二つを使用する事ができません。どうもコードの動的生成を制限しているようです。Functionコンストラクタは関数をインライン定義(function(){...})することで大半を置換できるので問題ないですが、eval関数は代替手段がない場合が多いので困ります。
※その他の制限については下記URLに詳細が載っています。
http://livedocs.adobe.com/air/1/devappshtml/help.html?content=ProgrammingHTMLAndJavaScript_04.html#1034123
この制限への対処方法としてSandboxBridgeを使用する方法があるようです。この制限はセキュリティモデルと呼ばれており、FlashとHTMLでそれぞれ二つあります。
Flash : アプリケーションサンドボックス / 非アプリケーションサンドボックス
HTML : アプリケーションサンドボックス / クラシックサンドボックス
HTMLを例に話すとアプリケーションサンドボックスはセキュリティの厳しく、コードの動的生成などができないがAIR APIにアクセスできる。クラシックサンドボックスはセキュリティが緩く、ブラウザのようにコードの動的生成などができるがAIR APIにアクセスできないです。SandboxBridgeはクラシックサンドボックスから一部AIR APIを呼び出すものだそうで、実際は安全なアプリケーションサンドボックスで実行して、どうしてもコードの動的生成などをしたい場合はクラシックサンドボックスで実行する形にすれば良いようです。
より分かりやすい説明がウェブ上にありますので、少しリンクを貼り付けておきます。
http://blog.r-studio.jp/?itemid=62
http://weblogs.macromedia.com/akamijo/archives/2007/10/adobe_air_2_1.html
デフォルトはどちらも安全なアプリケーションサンドボックスなので、既存のライブラリをそのまま使えないことが多いですが、jQueryなど有名ライブラリが徐々にAIRへ対応しているそうなので問題はないと楽観視しています。
JavaScript をこよなく愛する なかじまんソフトウェア株式会社 のスタッフによるブログです。
OpenSocial Container や Social Gadgets の開発を技術面から支援します。
2008-05-09
2008-03-31
STUDIO 8 から CS3 WEB STANDARD にアップグレードしました
Macromedia STUDIO 8 から Adobe Creative Suite 3 Web Standard にアップグレードしました。ネットで調べてみたところ、このアップグレードパスを話題にしているブログやページが少なかったので、気がついたことを紹介します。
アップグレードに使ったパッケージは Windows 版です。また、アップグレードした環境は、STUDIO 8 がインストール済みの Let's note lite R4 (512MB) です。

DVD メディアを使ってのインストールになりますが、既定の構成オプションで、インストールを開始してから終了するまで 45分ほどかかりました。
インストールを開始するとき、1GB 以上のメモリが必要ですよ!というニュアンスの確認が表示されます。無視してインストールしましたが、インストールに不都合はありませんでした。
インストールしてからはじめて何かを起動すると、アクティベーションを要求してきます。このとき入力したのは、DVD メディアに貼られたライセンスキーのみでした。インストール済みだからでしょうか。STUDIO 8 のライセンスキーは求めてきませんでした。
ネットで話題になっていますが、インストールすると、Firefox のフォント設定が変更されます。強制的に変更するのは、何かわけがあってのことかもしれませんが、実用上の問題があるため、インストールまでの設定に戻しました。Firefox のフォント設定を変更していなければ、次のように設定すれば元に戻ります。

インストールしても STUDIO 8 は削除されず残っています(いるようです)。その STUDIO 8 を起動するとどうなるかは、少し不安なので試していません。そうそう。Flash Paper を使って、Microsoft オフィスのドキュメントから PDF は生成できました。
主に Dreamweaver CS3 を中心に使いはじめましたが、STUDIO 8 の設定やコンテンツは引き継がれていますし、今までと同じように使えています。ただ、メモリやビデオ性能が理由でしょうか、STUDIO 8 よりも動作が重くなったように感じます。
インストールでは大きなトラブルはありませんでした。いい感じです。
追記です。Bonjour がインストールされます。-- 2008-03-31
アップグレードに使ったパッケージは Windows 版です。また、アップグレードした環境は、STUDIO 8 がインストール済みの Let's note lite R4 (512MB) です。
DVD メディアを使ってのインストールになりますが、既定の構成オプションで、インストールを開始してから終了するまで 45分ほどかかりました。
インストールを開始するとき、1GB 以上のメモリが必要ですよ!というニュアンスの確認が表示されます。無視してインストールしましたが、インストールに不都合はありませんでした。
インストールしてからはじめて何かを起動すると、アクティベーションを要求してきます。このとき入力したのは、DVD メディアに貼られたライセンスキーのみでした。インストール済みだからでしょうか。STUDIO 8 のライセンスキーは求めてきませんでした。
ネットで話題になっていますが、インストールすると、Firefox のフォント設定が変更されます。強制的に変更するのは、何かわけがあってのことかもしれませんが、実用上の問題があるため、インストールまでの設定に戻しました。Firefox のフォント設定を変更していなければ、次のように設定すれば元に戻ります。
インストールしても STUDIO 8 は削除されず残っています(いるようです)。その STUDIO 8 を起動するとどうなるかは、少し不安なので試していません。そうそう。Flash Paper を使って、Microsoft オフィスのドキュメントから PDF は生成できました。
主に Dreamweaver CS3 を中心に使いはじめましたが、STUDIO 8 の設定やコンテンツは引き継がれていますし、今までと同じように使えています。ただ、メモリやビデオ性能が理由でしょうか、STUDIO 8 よりも動作が重くなったように感じます。
インストールでは大きなトラブルはありませんでした。いい感じです。
追記です。Bonjour がインストールされます。-- 2008-03-31
登録:
投稿 (Atom)