先日 Adobe Labs に公開された Adobe AIR Extension for Dreamweaver が日本語版の Dreamweaver CS3 ではテストされていないことをお伝えしましたが、社内有志によるテストの結果、いくつか不具合はあるもののお試し目的であれば十分使えそうだということが分かりました。
現在判明している大きな問題は以下の2つです。
- Dreamweaver の起動、終了と新規ファイルの作成の度に JavaScript Error のダイアログが2回ほど出ます。かなりうざいバグですが機能には影響ないようです。
- UTF-8 以外のエンコーディングで AIR にパッケージすると文字化けします。当面 AIR アプリケーションを開発する際は UTF-8 を使用する必要があります。
もし他にもバグが見つかったら是非ご連絡いただければと思います。日本語版の CS3 もやっと出荷されましたので是非お試しください。
ところで、AIR のベータから透過な HTML アプリケーションが開発できるようになった件について、何件かお問い合わせをいただきましたので補足説明です。
この機能は HTML をルートとするアプリケーションに関するものです。AIR のベータでは JavaScript から HTMLControl オブジェクトの paintsDefaultBackground 属性を使って背景の表示/非表示を指定することができます。
<script> function init(){ // HTML の背景を透明に window.htmlControl.paintsDefaultBackground = false; } </script> <body onload="init();">
これでアプリケーション記述ファイル内でメインウインドウの背景が透明になるように設定すれば、背景の透過な HTML アプリケーションを実行することができます。
7月4日追記 : 下記コメントをいただいたので確認したところ、アプリケーション記述ファイル内で transparent が true の場合は AIR が起動時に paintsDefaultBackground = false の設定をするようです。つまり、背景を透過にしたい場合は、アプリケーション記述ファイルに指定するか、JavaScript から paintsDefaultBackground の値を設定する、のどちらかで実現できます。
以上、訂正です。ご指摘ありがとうございました。
試してみました!
で、もしかするとHTMLの透明化は、アプリケーションディスクリプタの設定のみで可能かもしれません(^^)
白石さん、こんにちは。
早速お試し&情報ありがとうございます。
確かに paintsDefaultBackground = true がデフォルトになってるみたいですね。
ドキュメントと実装どっちがあってるか確認してみます。
air extension for Dreamweaver CS3は、
既存ファイルのオープン/クローズごとにも、
エラーダイアログを吐き出してきますねー。
ウザい!
>・Dreamweaver の起動、終了と新規ファイルの作成の度に
JavaScript Error のダイアログが2回ほど出ます。
これの回避法がアドビのフォーラムに出ていました。
正しいものかは分かりませんが、ブログにまとめてみました。
通りすがりさん、すみません。
tomo さん、まとめありがとうございます。
正規のコメントとしては、次のアップデートまでお待ち下さいになりますが、
あくまで自己責任でお願いしますということでフォローすると、以下の修正を行えばエラーが出なくなるようです。
AIRInit_onOpen.htm ファイル (Windows XP の場合、ユーザディレクトリ下の
Application Data\Adobe\Dreamweaver 9\Configuration\Commands 、
Vista の場合、appdata\roaming\Adobe\Dreamweaver 9\Configuration\Commands 、
OS X の場合 ライブラリ/Application Support/Adobe/Dreamweaver 9
/Configuration/Commands にあります) の 73 行目
var attrName = keywordsNodes[j].getAttribute("name");
if (attrName && attrName.toLowerCase() == "client keywords")
を以下のように変更します。
var attrName = keywordsNodes[j].getAttribute("id");
if (attrName && attrName.toLowerCase() == "codecolor_javascriptclient")