このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

HyperCard 2.4b9 公開

発言者:田中求之
( Date Thursday, January 08, 1998 12:09:21 )


HyperCard 2.4 のβ版(b9)が公開されました。

主な変更点は、QuickTime Movie を扱う機能の強化です(Movie XCMD の改良等)。
また、Open URL コマンド(Internet Config で指定したブラウザでページが
開かれる)が追加されています。

バージョン番号が示すように、基本的には 2.3.x のバグフィックス&機能追加版
で、根本的な変更( QT との統合のような)はありません。

なお、同じディレクトリにて QT3 のβ版も公開されています。

→  Apple FTP Unsupported directory

田中求之 さんからのコメント
( Monday, February 09, 1998 14:20:26 )

HyperCard 2.4 に関して、Apple の Kevin Calhoun 氏の AOL での
チャットセッションの記録が HyperCard Heaven で公開されています。



→  Chat Session with K. Calhoun

田中求之 さんからのコメント
( Friday, February 27, 1998 15:37:12 )

HyperCard 2.4b16 が公開されました。今回は3月14日まで有効。


→  Welcome to HyperCard

ku-kotti さんからのコメント
( Monday, December 28, 1998 01:14:34 )

こんにちは!
XCMDについて聞きたいんですが、QuickTimeのムービーをながすような
XCMDはHyperCardのリソースをそのままコピーするとXCMDが入ってくるのでしょうか?
ムービーを流すXCMDを探してるんですが、ちょっと解りません。
もし良ければ、コマンドがあるようなサイトをおしえていだけないでしょうか?
お願いします。

田中求之 さんからのコメント
( Monday, December 28, 1998 16:07:34 )

QuickTime Tools というスタックに QT を扱う XCMD が入っています。

ku-kotti さんからのコメント
( Thursday, January 21, 1999 08:38:08 )

ありがとうございます。>田中さん

またまたなんですが、そのスクリプトの書き方などが書いてある、
HPなどがわかるとありがたいです。

例  QTMovieXCMD ""などですが。。。

田中求之 さんからのコメント
( Thursday, January 21, 1999 10:48:37 )

QuickTime Tools にも説明がありますが、実際に動いているものということであれば、
このスタックのスクリプトを覗くのがよいと思いますよ。ちょっと分かりにくいですが。


A.M. さんからのコメント
( Thursday, January 21, 1999 13:53:07 )

基本的に田中さんのコメントと同じですが、QuickTime Toolsをご覧ください。
HyperCard2.4からQuickTimeはHyperTalkで動かせるようになったので、MovieXCMD
は必要なくなりました。
XCMDをインストールする場合、私はResCopyというXCMDスタック
を使っています。

A.M さんからのコメント
( Friday, January 22, 1999 10:57:29 )

「HyperCard2.4からMovieXCMDをインストールする必要がなくなった」というのが
正しいようです。pictureコマンドと同じ扱いになったと考えられます。書式はXCMDのままで、
 Movie filename,"borderless","97,106","invisible","floating"
というふうに書きます。「Movie filename」だけでもとりあえずQTが表示されます。
そのほかにHyperTalkでコントローラーを制御したり、Movieを回転させたりできるように
なりました。たとえば次のスクリプトは画像を180度回転させます。
send "rotate 180" to movie filename

ありがとうございます>皆さん さんからのコメント
( Saturday, January 23, 1999 07:11:34 )

ありがとうございます。
あとなんですが、今あるHyperCardは2.2版なんですが、さきほどの
send "rotate 180" to movie filenameは正常に作動しますでしょうか?
もしうごくのであればそれらのコマンドなどを聞きたいです。
例えばスキュー(傾ける)とかが2.4版で出きるときいております。
教えて下さい。お願いします。

あと、put "書き込む" into cd fld "field1"といった命令がありますが、
この"書き込む"の中にもし"〜"といったダブルクォーテーションが入った文章はいれることが出来ない
のでしょうか?もし入れるとしたら、どうしたらいいのでしょうか?
教えてほしいです。例としましては put "  〜書き込む"それを"〜といった" into cd fld "field1"という感じですが、
これではもちろんうまくいきません。どうしたらいいでしょうか?

ku-kotti さんからのコメント
( Saturday, January 23, 1999 07:12:37 )

あ、上の発言はku-kottiからです。
念のため。

ku-kotti さんからのコメント
( Saturday, January 23, 1999 07:21:03 )

またまたなんですが、先ほどのスクリプトを書いて実行しましたが、(TT)
いきませんでした・・。こういう命令を2.2版でするにはどうしたらいいのでしょうか?
また、2.4版はシェアウェアなのでしょうか?多分容量が大きすぎてDLできないと思うのですが、
どうでしょうか?
教えて下さい。

実行出来なかった。くっっっっ。無念

田中求之 さんからのコメント
( Saturday, January 23, 1999 15:10:54 )

まず QuickTime を操作するコマンドですが、これは HC 2.4 (2.3.5)で追加されたもの
ですので、2.2 では無理です。

HC 2.4 は製品ですので、2.2 からは有償のアップグレードになります。また、日本語版は
2.3.5 で止まっていますので、英語版を購入することになります。

次に、ダブルクォーテーションをフィールドなどにいれる場合には、quote という定数を
使います。

put "彼が" & quote & "愛がなくっちゃね" & quote & "と言った" into fld 1

という感じです。

田中求之 さんからのコメント
( Saturday, January 23, 1999 15:12:31 )

… 2.4 の player があるので、リソースの知識があれば、抜け穴が無いわけではないと
思うのだが、動作するかどうかは不明だなぁ…

ku-kotti さんからのコメント
( Sunday, January 24, 1999 00:50:51 )

ありがとうございます。実は2.3版でした。そして、2.4版にUpDateが成功しました。
これでQTコマンドが使えることになりました。
いろいろとお世話になりましたが、皆さんの援助のおかげでいくことができました。
それでなんですが、コマンドを教えていただきたいです。
QTを制御したいです。
Skyu-とかをお願いします。

ku-kotti さんからのコメント
( Sunday, January 24, 1999 01:16:02 )

あ、ダブルクォーテーションはありがとうございます>田中さん

ku-kotti さんからのコメント
( Sunday, January 24, 1999 03:44:49 )

今までの2.3版に書いていたスタック上でムービーの制御があまりできなかったのですが、
ResEditでいらないリソース(movie xcmdなど)を削除したらムービーの制御などが実行できました。
これはこのやり方でいいのでしょうか?
一応今のところはうまくいっているのでこのままでいくつもりですが、
もしこの先なにか不具合が起きたら・・とおもって書きました。
大丈夫でしょうか?

あ、あとコマンドなんですが英語だらけでわかりません、少しずつ辞書片手に
しらべてはいるのですが、時間がありません(卒論なのです)もしどこかに
日本語の説明があるサイトがありましたら教えて下さい。

田中求之 さんからのコメント
( Sunday, January 24, 1999 23:53:55 )

>ResEditでいらないリソース(movie xcmdなど)を削除したらムービーの制御などが実行できました。
>これはこのやり方でいいのでしょうか?

この場合、HC 2.4 に内蔵の movie XCMD が使われるようになったわけです。

ですから、スタックの動作条件は HC 2.4 以上ということになります。もし他人に
配付するとか、他の環境でも使う可能性がある場合は、かならず、スタックの Open
ハンドラーで、HC のバージョンチェックを行って、2.4 以上になっているかどうか
などの環境チェックの処理を行ってください(もし 2.4 でない場合には、2.4 以上
を使うようにメッセージを出すなどの誘導を行います)

ku-kotti さんからのコメント
( Monday, January 25, 1999 19:39:52 )

>スタックの Openハンドラーで、HC のバージョンチェックを行って、2.4 以上になっているかどうか
などの環境チェックの処理を行ってください。
すいませんここがよく分かりません。バージョンチェックはどのように行えばよろしいのでしょうか?
HC自体のバージョンは2.4.1になりました。スクリプトで見ることがわかりません。

スタックのハンドラーを見るとopen stack  などがあります。on openStack
  AddColor install
  pass openStack
end openStack  という風になっております。
ここで、このリソースが組み込まれているらしく、たまにこのスクリプト
が分かりませんとこちらに聞いてきます。このリソースを削除した方がいいのでしょうか?

田中求之 さんからのコメント
( Monday, January 25, 1999 20:24:07 )

>バージョンチェックはどのように行えばよろしいのでしょうか?

openStack ハンドラの中で the version 関数を呼び出してチェックします。

HyperTalk の参考書なり、リファレンスを見ればわかると思います。

もしバージョンチェックのスクリプトが書けないということでしたら、動作条件
を明記することは最低限忘れないでください。

AddColor は、Color Tools スタックによってスタックをカラー化する際に必要となる
ものです。スタックをカラーにしているのであれば必要な命令です。カラーにしていない
のであれば、不要です(XCMD も)。

スタック、特にスクリプトで色々なことを行うスタックを作る場合、自分ですべての
スクリプトの働きと意味(たとえば、なぜこのハンドラーに書かれているのかといった
こと)を理解する必要があります。理解できないのでしたら、少なくとも他人には配る
べきではありません。ですから、じっくりとスクリプト(HyperTalk)を理解するよう
にしてください。

A.M. さんからのコメント
( Tuesday, January 26, 1999 11:23:00 )

私は次のようにヴァージョン・チェックしています。on openStackの中に
  if the version of HyperCard <2.4 then
    answer "ご使用のHyperCardのヴァージョンは" && the version of HyperCard && "です。このスタックはヴァージョン2.4以上でご覧ください。"ツ
    with "スタック終了" or "Cancel"
    if it is "スタック終了" then
      if enabled of menuItem "close stack" of menu "File" is true then
        doMenu "Close Stack"
      else doMenu "Quit HyperCard"
    else exit openStack
 end if
HyperCard2.4から加わったQT関係のコマンドは、QuickTime3.0から
対応しているものが多いので、そのチェックも必要です。ボタンの
スクリプトの一例です。
  if the version of quicktime <3 then
    answer "QuickTime 3.0以上をインストールしてください。"
    exit mouseUp
  else
    send "rotate 180" to movie "hitomoji"
  end if
私は今のところHyperCard2.4以上とそれ以前用の二つのヴァージョン
を作るようにしています。
<a href="http://www.na.rim.or.jp/~hypercd/index.html">HyperCard Park</>にスクールというコーナーがあります。私はフォーラム
しか行ったことがないので、内容は分かりませんが、役に立つかも知れません。

ku-kotti さんからのコメント
( Tuesday, January 26, 1999 14:08:18 )

ありがとうございます。
やはり、バージョンはかなり大切なことがわかりました。
バージョンをチェックしたいと思います。
HP行ってみたいと思います。
ちょっと簡単な質問なんですが、ボタンとかにはあんまりスクリプトをかかない方
がいいんでしょうか?  聞く話によりますと、だいたいスタックやカードにスクリプトを
かいて、ハンドラで呼び出す。というらしく、私は今の今まで、ボタン1つ1つに
スクリプトを書いて呼び出してコマンド命令をさせてました。
なかなか、global関数とかいうのがわからなく避けてきましたが、そのようにした方がいいのでしょうか?
わからなにのが、
on pqt
global loadRAM
QTMovie Openmovie,wmode,topleft of btn ""
end pqt
というスクリプトなんですが、どうもかなり古いスクリプトらしいです。
今のHCでこのように書いてもうまく動作しません。
根本から間違っているのでしょうか?
それとも、スタックに定義するのが先決なのでしょうか?
loadRAMというのをしらべてっも載っていません。
教えて欲しいです。
あと、QTmovieと呼び出すとそれも動作しません。
前に質問したMovieの動作は出来るのですが、このやり方が分からなく聞いてみました。
もしかしたら4方8方に目を回すなとか言われるかもしれませんがどうしてもこのスクリプトを
しりたいです。もし知っていたらおしえてください。

A.M. さんからのコメント
( Wednesday, January 27, 1999 10:35:33 )

loadRAMはスクリプトを書いた人が定義したものなので、調べても出てないはずです。
でもなんでスクリプトの中に出てこないんでしょう。QTmovie XCMDがデフォルトでサ
ポートしてるんでしょうか?
「QTMovie Openmovie,wmode,topleft of btn ""」の部分はQTmovie XCMDがインストー
ルされてなければ動きません。
ボタンに固有のスクリプトなら当然ボタンに書きますが、同じ表現をほかのボタンで
も使っているなら、ハンドラーにして複数のボタンが参照できるより深い層のスクリ
プトに書くのが原則です。変更やバグ修正の見落としがなくなります。原則として
全体のスクリプトの行数を一行でも減らすようにこころがけているとスマートなスク
リプトになります。start using stack,target,引数を持つfunctionなどもコンパクト
なスクリプトを書くのに威力を発揮します。
(ほかの言語のファンクションは引数のあるハンドラーという感じで使い手があるん
ですが、HyperTalkのfunctionは値しか返せないという特殊なものなので、けっこう
意識的に使って行かないと習熟しません。)


ku-kotti さんからのコメント
( Thursday, January 28, 1999 11:13:55 )

わかりました。ありがとうございます。

やはり、用途によってそれぞれ違うのですね。

論文がんばりたいと思います。

ku-kotii さんからのコメント
( Monday, February 01, 1999 01:24:59 )

こんにちは、ご無沙汰してます。
またまた質問なんですが、グローバル変数を使いたいんですが、ちょっと難しくてよく分かりません。教えていただきたいと思いまして書き込みました。
というのは、教材を作っているのですが、あるカード(1)でポップアップの選択ボタンを選びます。2択ですが、正解なら10点。不正解なら0点。
また次のカード(2)で選択の解答をする。正解なら10点。不正解なら0点。これを5回繰り返します。
そして最後にフィールドに点数を書き込みたいのですが、できるのでしょうか?
こんなスクリプトを聞いて申し訳ないのですが、教えていただきたいです。
また自分では
on mouseUp
global A
put 0 into A
get the selectedtext of btn "選択"
  if it is "1" then
put A+1 into A
if it is "2" then
put A+0 into A
end if
end mouseup
と考えたのですが、いきません。違うカードで点数をいれるには・・・?
ちょっとよく分かりません。上の内容でわかる範囲でいいんですが、スクリプトをおしえて頂きたいです。
いつも無理な質問ですいません。
またグローバル変数はカードに定義してもいいんでしょうか?

野本夏俊 さんからのコメント
( Monday, February 01, 1999 12:29:14 )

>いつも無理な質問ですいません。
全然無理じゃないです。とりあえず2択だけのサンプルを作りましたので
ダウンロードして見てください。
あとはご自分で工夫して見たほうがいいでしょう。

HyperCardの質問はここでもいいかもしれませんが、「HYPERCARD PARK」
http://www.na.rim.or.jp/~hypercd/index.html
でもかなり親切に教えてくれますよ。

→  サンプル

ku-kotti さんからのコメント
( Monday, February 08, 1999 03:39:41 )

こんにちは、おひさしぶりです。
卒論もいよいよおおずめを迎え心中の整えに入っています。

そこでぶしつけな質問なんですが、「HypercardでQuickTimeを表示する良いところ」とはなんでしょうか?
自分が思うに、 HC2.4版では大幅にQuicktimeをサポートし、ムービー表示、制御といった点に従来とは比較出来ない支援があるといった点から
HCを用いたのですが、ちょっと根本的な質問になってしまうんですが、
というのは、最近、Java for QuickTimeが発表されたらしく、HCを用いる決定的な違いが欲しいのですが、ちょっと見つかりません。
Javaの方は「Web上でムービーを読み込むのに時間がかかる」といった点でHCが勝っていると感じるのですが、どうでしょうか?
HCはカード型データベースであり、自分の作っている教材はデータベースに最適であり、且つ実画面例を見ながら学習が可能。
というのですが、これだけでは何か、弱いような感じがします。
なにか、QuickTime for Hypercardで他とは違う決定的な違いが欲しいです。
こんなことは自分で考えなければならないのですが、
すいません、何から何まで質問してしまい。
ちょっと他の人の意見を聞きたいです。
決定的な何かを。お願いします。
本当の事を言いますと、卒論発表で「この教材(HyperCardで作った教材)をWindowsで学習するにはどうしたらいい?」
と聞かれた場合を想定して、それ以上の強い必要性が欲しいからです。
お願いします。

田中求之 さんからのコメント
( Tuesday, February 09, 1999 00:29:44 )

HyperCard 上で QuickTime を扱うことのメリットとは、私が考えるには、
(QuickTime Interactive / HC 3 が出ていない現時点では)

1:カスタマイズが簡単(簡単なスクリプティングで柔軟に作り替えていける)

2:MacOS 上の他のソフトとの融合が簡単(AppleScript を使った連携が HC なら
  可能)

といったことだと思います。はっきりいって、動画を再生するだけの環境ならば HC に
たいしたメリットはありません(確かに、スクリプトによってインタラクティブな動画
再生ができりようになりますが)。ディレクタのようなオーサリングツールで、きちんと
したものを作ったほうがよいでしょう。

むしろ、動画を含めた様々な情報を、プロではない人間が、自分の手で、比較的簡単に
まとめることができるという、作りやすさにこそ、メリットがあると考えます。
ユーザーが自分の手で発展させられる情報ツールということです。

ku-kotti さんからのコメント
( Tuesday, February 09, 1999 07:44:51 )

有り難うございます。>田中さん

すごい理論的なことが分かって強い見方になりました。

とりあえず明日発表なので頑張りたいと思います。

いろいろお世話になりました。

ku-kotti さんからのコメント
( Tuesday, February 09, 1999 07:53:22 )

あ、あと少し疑問に思ったのですが、applescriptでムービーを編集できるのでしょうか?
Finderで呼び出すことはできるのですが、
わかりますでしょうか?

田中求之 さんからのコメント
( Tuesday, February 09, 1999 12:54:23 )

ムービーの編集というのがどういう内容を指しているのかわかりませんが、基本的には
AppleScript で Movieplayer をコントロールすることはできません。

ただし、HyperCard で Movie の再生をコントロールするスタックを作り、そのスタックを
AppleScript でコントロールできるようにすることは可能です。つまり、HyperCard で
AppleScript 対応の QuickTime 再生コントロール用ツールを作ってしまうわけです。
(HyperTalk と AppleScript にある程度通じた方なら、簡単なことだと思います)

ku-kotti さんからのコメント
( Tuesday, February 09, 1999 23:53:10 )

うわ、すげ。・・・有り難うございます。

これで「AppleScriptで・・」と聞かれても対応出来ます。

結局はHyperTalkとAppleScriptを併用することで無限に可能性は広がっていくのですね。

1つの箇所だけを見るのではなく、いろんな角度からみることによって視野が広がるのですね。

ありがとうございました。  HyperCard3.0の登場を期待しています。

(しかし、QuickTime for Javaには勝てないような・・・。Web上という強敵には・・)