H.M.F.B AppleScript.



QuickTimeをすくりぷてぃんぐぅ〜♪ と言う事で、
前回のPictuerViewerの親玉であるQuickTimeを使って同じ物を作ってみました、今回は色々組み込みたかったのですがどうしてもムービーが本業だったので、あまり良い物は作れませんでした(僕がまだまだと言う事もありますが、、、汗)


001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022





tell application "Finder"
  set my_folder to (choose folder with prompt "連続表示させたい...")
  display dialog "画像の..." & return & "秒数を..." default answer "2"
  set My_time to text returned of result
  if My_time is "" then
    set My_time to "1"
  end if
  repeat with aFile in (every file of my_folder)
    set My_Name to name of aFile
    set my_picture to (my_folder & My_Name) as text
    tell application "QuickTime Player"
      --activate --ここは好みでチョイスしてください
      open file my_picture
      set scale to current --他に half/normal/double/screen/などあり。
      delay My_time
      --close window My_Name
    end tell
  end repeat
  tell application "QuickTime Player"
    quit
  end tell
end tell

repeat文の所は前回と同じですね、今回はQuickTimePlayerということで、011〜017行目が少し違うだけですね、、。
なんで同じ物を作ってみたか?というのは、「アプリケーションの特性をつかまない限りはマトモなScriptは作れない」というものあるし、「どっちが良い?のかは使用方法で選ぶ」というのもあります。

さて、同じ物を実際に書いてください。(サボっちゃ自分の為にならないよ めんどくさいけどね)

どうしても出来ない上手く動かないという人はこれをD/L→ 012-QuickTimeView.sit



さて、まず、今回の対象アプリケーションとなるQuickTime Player4.1を開いてください。
今回使用するQuickTimePlayerは本来ムービー再生、編集などを行えるソフトです、ハッキリいうと画像のプレビューを行なうのには向いていません、この点を考えるならば前回のPictuerViewerを使用したプレビューワーの方が優れていると思います。

しかし、前回と違ってQuickTimePlayerの方が使える命令が沢山あって面白かったので今回紹介しようと思いました。
まず、AppleScriptを作る前に、どのアプリケーションが適しているのか?とまず考えますよね、例えばワープロソフトで画像のプレビューをさせてるような事はやってもいいけど、得はないということです。


AppleScriptで今回のスクリプトを動かしてみましたか?ちゃんと画像が一枚ずつ切り替わって表示されたでしょうか? なぜ、closeを設定せずにペラペラとめくれたのかというと、QuickTimeのデフォルトの初期設定で定義されている動きをQuickTimePlayerが行なったに過ぎないのです。

これはどうやって設定(見る)のかというと、QuickTimeの編集、初期設定、一般、、にその項目があります。

上記の画像の一番下のチェックボックス「新しいPlayerでムービーを開く」のチェックボックスでこれは切り替えが出来ます。
(デフォルトはチェックが入ってない状態だと思います。)


今回のQuickTime Playerは残念ながら初期設定がAppleScriptから操作出来ない(と思っている)アプリケーションだったので、僕はAppleScriptから画像ファイルを閉じるという命令をせずに、ユーザー側の初期設定で設定してもらうという方法をとりました、。

それはAppleScriptで操作するよりもアプリケーション自体で制御した方がスクリプトというか操作自体が速くなるから、また設定が出来ないから。 と、スクリプトを作る上でどちらが良いのか?というのを常に忘れないようにしてください。
って、ほんとに話題がそれてしまったな、、笑


010
011
012
013
014
015
016
017
018





repeat〜〜〜
    tell application "QuickTime Player"
      --activate --ここは好みでチョイスしてください
      open file my_picture
      set scale to current --他に half/normal/double/screen/などあり。
      delay My_time
      --close window My_Name
    end tell
end repeat

さて、repeat文の説明は前回をご覧頂くとして、問題の011〜017行です、ここは、PictuerViewerとほとんど同じで014行目に set scale to current が加わってそのかわりQuitが無くなりました。

014行目 set scale to current
scale ←これはQuickTime playerの用語説明にあるmovieの項目を使用しています。

    scaleに属するオプション
    half 画像サイズを半分にして表示させる。
    normal 元のサイズで表示
    double 2倍の大きさで表示(画面からはみ出ることもある)
    screen お使いのスクリーンサイズを基準とし上下、左右どちらか目一杯に表示
    current カレントサイズ(normalと同じ?)

を、値を設定する時に使用する setto 〜 で設定しました。

016行目 close window (ファイル名)
ここはアクティブにしてなく、コメントとしてありますが、QuickTimePlayerのAppleScriptではcloseが設定出来るのでオプションで記述してみました。
また、用語説明のclose見ると
close reference -- the movie or window to close
の一文がありますね、ここは、close window でも、close movie でも同じ動作をします。

またsaving yes/no/ask
seving in alias などを使用しする事が可能なのですが、すこし上手く行かなかったのでこれはまた今度の課題にしたいと思います。(なんかメモリー不足になっちゃうんだ、、なんでだろ?)



どうでしたか?今回のQuickTime Playerの方は、、今回はAppleScriptというよりもアプリケーションの考え方?のような所に重点をおいて置いて解説してしまいました。
QuickTimePlayerにはもっと多くの命令があるのですが、画像を扱うというよりムービー用のソフトということもあり、目的の「画像をペラペラめくる」というのには向いていませんでしたので使用しませんでした、、set scale to 〜〜 の代りに present というのも面白いんですけど、、画像用じゃないんだね、、ムービーだと画面がブラックアウトして楽しめるのだが、、残念。


(c)HandyMacForBeginner's