このページの本文へ

前へ 1 2 3 4 次へ

  • twitterでつぶやく
  • はてなブックマークに登録
  • del.icio.usに登録
  • livedoorクリップに登録
  • Buzzurlに登録
  • StumbleUponに登録
  • Google Bookmarksに登録
  • Facebookでシェア
  • Yahoo!ブックマークに登録
  • お気に入りに登録
  • 本文印刷

古籏一浩のJavaScriptラボ ― 第27回

BridgeのGUIをJavaScriptで操ろう!

2010年03月05日 14時00分更新

文● 古籏一浩


フィルター処理と組み合わせる

 最後に、前回作成した画像フィルターのスクリプトを追加して完成させましょう。前回のスクリプトはmyFilter()という名前の関数にし、描画するドットの数を引数として受け取るようにします。GUIのボタンがクリックされたら以関数myFilterを呼び出し、parseInt()で値を整数化します。3.14なら3になりますし、215pxと入力されていた場合は215の数値部分だけを返します。実際には数値かどうか、あまりに大きい数値や負数が入力されていないかなどをチェックする処理を入れた方がよいでしょう。


myFilter(parseInt(dlg.edttext.text));


 フィルター処理が完了したらclose()メソッドを使ってダイアログウィンドウを閉じます。継続してダイアログウィンドウを表示させておきたい場合にはdlg.close();は不要です。

 これですべての処理が完成しました(サンプル05)。


●サンプル05


#target "Bridge"
var dlg = new Window("dialog", "ランダムピクセル描画フィルタ設定ダイアログ", [100, 100, 400, 300]);
dlg.btn = dlg.add("button", [20, 160, 280, 180], "実行"); // (20, 160)-(280, 180)にボタンを表示
dlg.add("statictext", [20, 30, 280, 50], "■ランダムピクセル描画");
dlg.add("statictext", [20, 70, 280, 90], "ランダムに表示する点の数:");
dlg.edttext = dlg.add("edittext", [20, 100, 280, 120], "100");
dlg.btn.onClick = function(){
    myFilter(parseInt(dlg.edttext.text)); // 指定された値を関数に渡す
    dlg.close();
}
dlg.show();
// ランダムドット描画フィルター
function myFilter(count){
    var myCanvas = new BitmapData(320, 240);
    for(var i=0; i<count; i++){
        var x = Math.floor(Math.random() * 320);
        var y = Math.floor(Math.random() * 240);
        var R = Math.floor(Math.random() * 256);
        var G = Math.floor(Math.random() * 256);
        var B = Math.floor(Math.random() * 256);
        var myColor = new Color(R, G, B);
        myCanvas.setPixel(x,y, myColor);
    }
    var savePath = File.saveDialog ("保存先とJPEG保存ファイル名を指定してください", "")
    if (savePath) { myCanvas.exportTo(savePath, 100); }
}


 ここまで全6回にわたってAdobe BridgeのJavaScript機能について解説してきましたが、いかがだったでしょうか。単なる画像ビューアやファイル管理ソフトではなく、まったく別の可能性もあると感じてもらえたでしょうか。今回紹介した以外にも、Bridgeにはメニューの追加などたくさんの機能が用意されています。この機会にBridgeのJavaScriptを使ってみてはどうでしょうか。


オマケ:
Bridgeで定期的にサーバーからデータを取得する方法

 最後にもう1つだけ、Bridgeの便利な機能を紹介します。Bridgeには定期的に処理を実行するタスク機能が用意されています。一定間隔ごとに指定されたスクリプトを実行するapp.scheduleTask()という機能です。最初の引数には定期的に実行させたいスクリプト、2番目の引数には実行間隔をミリ秒で指定します。3番目は定期的に実行するかどうかのフラグで、trueなら定期的に実行し、falseなら1回だけ実行します。

 app.scheduleTask()を利用するとサンプル06のように定期的にWebサーバーからデータを取得できます。実行中のタスクを中止させる場合はapp.cancelTask()を使い、引数にタスクIDを指定します。タスクIDはapp.scheduleTask()の戻り値です。


●サンプル06


#target "Bridge"
var taskID = app.scheduleTask('app.openUrl("http://ascii.jp/web/");', 10*1000, true);
app.scheduleTask("app.cancelTask("+taskID+")", 30*1000, false)


前へ 1 2 3 4 次へ

カテゴリートップへ

この連載の記事

ASCII.jp会員サービス 週刊Web Professional登録

Webディレクター江口明日香が行く

みんなが買ってる最新アイテムはコレだ!

Microsoft Windows 7 Home Premium 通常版 Service Pack 1 適用済み

iPhone 4S/4 防指紋性・高光沢機能性フィルム PRO GUARD AF for iPhone 4S/4 / PGAF-IPH4

iPhone 4S/4 防指紋性・高光沢機能性フィルム PRO GUARD AF for iPhone 4S/4 / PGAF-IPH4

マイクロソリューション Micro Solution Inc.

83人が購入

BenQ 24型 LCDワイドモニタ XL2420T

BenQ 24型 LCDワイドモニタ XL2420T

ベンキュージャパン

37,238円〜

3人が購入

jQuery Mobile スマートフォンサイト デザイン入門 (WEB PROFESSIONAL)

jQuery Mobile スマートフォンサイト デザイン入門 (WEB PROFESSIONAL)

アスキー・メディアワークス

2,499円〜

20人が購入

メモリーカード 32GB (PCH-Z321J)

メモリーカード 32GB (PCH-Z321J)

ソニー・コンピュータエンタテインメント

7,772円〜

6人が購入

Amazon.co.jp