RRML-J で出された話題のダイジェストです。断片的な情報ですが、役に立ちそうなものを Tips として集めてみました。一応下に行くほど古い話題で、ML が現在の形( eGroups 上の ML )になる前のトピックをまとめてあります。
  RRML-J は SCUJ から派生した ML で、 <http://www.egroups.co.jp/group/Runtime_Revolution_Users_Japan> から入会手続きをすることが出来ます。また過去ログも参照できます。

 この文書の文責はUDIにあり、またUDIはこの文書についての一切の債務を負いません。 間違いがありましたら eudio@chabashira.co.jp までお知らせ下さい。


○ ウィンドウリサイズ時に発生する resizeStack メッセージは実際にはリサイズ「前」に送られてくる。resizeStack ハンドラで send "myAfterResizeStack" to me in 1ticks のようにすれば、リサイズが済んだタイミングで何かを実行させることが出来る。

Q スクリーン上の任意の一点のカラーを得たい。
A set the screenMouseLoc でマウス座標を移動して the mouseColor を読む。 image オブジェクト内のデータならば、the imageData of image xx でビットマップデータを得ることが出来る。(1ピクセル4バイト 0RGB の並びのバイナリデータ)

○ RunRev のフィールド上では改行コードは LF( numToChar(10) ) 。 return 定数、CR 定数、LF 定数は全て numToChar(10) で定義されている。 CRLF 定数は numToChar(13) + numToChar(10) で定義されている。

○ set the htmlText of fld xx to ... でフィールドに表示させたウェブページのタイトルは、フィールドの the label に入っている。

○ 現在の規約では、ライセンスが切れたあとでも任意のタイミングでライセンスを更新することが出来る。ただしライセンス規約が変わる可能性はある。

Q メニュー文字列に "/" や "&" を使いたい。
A "/" は "//"、"&" は "&&" でエスケープ出来る。 "You&Me" というメニューは "You&&Me" と書けば良い。

Q move 命令使用時に moveStopped メッセージが来ない。
A move .. without waiting と言う形で使った時だけ、移動させているオブジェクトにメッセージが送られる。 without waiting を併記しない場合は移動が終わるまで他のスクリプトを実行せず、またメッセージも送られて来ない。

○ ポインタツール使用時に、Control キーを押しながらマウスをクリックする(コンテクストメニュー)と、便利な機能が使える。

Q スタンドアローンのプロパティを他のスタックから操作したい。
A プロパティを操作するスクリプトを send する。 send ( "set the tgProp of this stack to " &quote& "myValue" &quote ) to program "myApp" 値を得たい時は return を含んだスクリプトを送る。 send "return the tgProp of this stack" to program "myApp" 同様にしてフィールド操作なども可能。ただしこれらは全てマックのみの機能。

○ メッセージボックスは "Message Box" と言う名前のスタック。上のフィールドは fld 2 ( field "Message Field" )。下のフィールドは fld 1 ( field "Results" )。 the script of stack "Message Box" でメッセージボックススタックのスクリプトにアクセス出来る。

○ ヘルプスタックのフィールド文字列を取り出すには、ヘルプ以外の全てのスタックを閉じてから、メッセージボックスで put fld 1 などを実行する。スクリプトやプロパティも取り出し可能。put "xxx" into fld 1 のようにして書き込みも出来、メッセージボックスから save this stack を実行すると変更が保存される。

○ 乱数を使う時に the randomSeed を設定することが出来る。同じ値を設定すれば同じ乱数列が得られるので、乱数列を再現したい時に利用可能。

Q マックで作ったスタックをWinで開くと、ボタンに四角い枠が付いてしまう。
A プロパティパレットの Button タブの "Can Receive Keyboard Focus" のチェックを外す。

-- 2002.11 --

Q スクリプトから image オブジェクトにイメージファイルをセットするには?
A set the filename of image "myImage" to imagePath

Q ファイルのクリエータを得たい。
A the long files を使った関数を作るか、AppleScript や xfcn を利用する。

○ load URL は non-blocking であるため、ダウンロードを開始するとそのまま続きのスクリプトが実行される。また load URL は get URL に比べて速い。

Q get URL 実行時にボタンが押せてしまうのは何故?
A get URL は blocking であるためダウンロードが終わるまで次のスクリプトは実行しないが、その他の処理をすることは出来る。ダウンロード中に押されて困るボタンなどは disable するなどの処理が必要。

○ スタンドアローンでは mainStack の preOpenStack から subStack を扱えないことがある。一旦 mainStack を invisible で開いておいてから作業する。

○ フィールドに入れた日本語の文字列は別のOS上で化けてしまう。これを回避するにはターゲット OS 上で文字列入力処理を行う。具体的には on openCard などで以下のことを行う:フィールドのテキストフォントを欧文にする。テキストファイルやカスタムプロパティなどのテキストをフィールドに書き込む。フィールドのテキストフォントを日本語に変える。 ただしラップ(折り返し)機能は正しく働かない。2.0 では Uni-code を通して多バイト言語がサポートされる模様。

-- 2002.10 --

○ メッセージボックス上部のアイコンには、グローバル変数やグローバルプロパティを参照する機能などがあり、デバッグに役立つことがある。

Q エラー番号の意味を知りたい。 load URL 時に urlStatus で得られるエラーの一覧が欲しい。
A (未解決)

○ RunRev は AppleScript を実行することは出来るが、RunRev を AppleScript でコントロールすることは出来ない。

Q ウエブブラウザの Helper Application で .rev を RunRev に関連付けたのに、ダウンロードが終了して開いたスタックは、動作がおかしい。
A .rev ファイルをダブルクリックしたのと同じモードになっているので、一部の機能に制限がある。

Q exit to top はどういう効果があるのか。
A exit <handler> では、実行中のハンドラを呼び出した親ハンドラに戻って、続きのスクリプトが実行される。 exit to top は親ハンドラに戻らずに、全てのスクリプトをその場で終了する。

Q get URL で得たバイナリファイルを書き出したい。
A put tgBinData into URL ( "file:/" & tgBinName )

Q MetaCard のキーワードを検索をしたい。
A MetaCard 上で、Help →Meta Talk Referrence →Find

○ RunRev は使い初めは落ちやすい傾向があるが、使っているうちに何故か安定して来る。

○ プロパティパレットのタブをドラッグして、独立したパレットとして利用することが出来る。

○ MetaCard のスタックの拡張子を .mc から .rev に変えると、RunRev で開けるようになる。

○ マックでメニューバーを作る時、メニュー用のカードを最後に一枚作り、そこにメニューボタンを並べておくと、カードのレイアウトが狂うのを防ぐことが出来る。

○ send-in ループはポインタツールに持ち変えてもキャンセルされない。

Q  send-in でタイマーを組んだオブジェクトがカードにある時、カードを移動するとこのタイマーはどうなるのか。
A send はカレントカード以外のオブジェクトにも送ることが出来るので、このタイマーは生き続ける。

Q グループに属しているボタンから、そのグループ名を知りたい。
A the name of the owner of btn "myBtn"

-- 2002.09 --

Q .rev ファイルをダブルクリックして RunRev を起動すると、一部のスクリプトが機能しない。
A 特殊なモードで起動しているので、一部の機能に制限がある。 RunRev を先に起動しておけば全機能が使えるモードになる。 2.0 ではこの仕様は変更される模様。

Q ヘルプにある Dictionary の内容をテキストで得たい。
A option キーを押しながらドラッグしてコピーする。或いは、http://www.sonsothunder.com/ の、Developer Resources -> Revolution からテキスト版の revDoc を入手可能。

Q 日本語システムかどうかを調べるには?
A 例えばマックであれば、fontNames() contains "Osaka" で日本語フォントが入っているかを調べることは可能。

Q スタイル付きテキストを OS 9 で書き出させたい。
A the htmlText of fld xx を使って、HTML テキストを書き出すことは出来る。

Q 音ファイルの鳴らし方は?
A AIFF であれば Play filePath で再生可能。 QuickTime がインストールされているなら、set the vcPlayer to aiffPath ; play the vcPlayer で AIFF 以外の音声ファイルも再生出来る。 Player オブジェクトを利用すれば細かい制御も可能。

Q Play filePath で再生している音を止めたい。
A Play Stop

○ the sound は Play filePath で再生している audioClip 名を返す。再生が終わっている(または何も再生していない)時はは done が返される。

Q タブボタンの向きを逆さま、中央にしたい。
A 現在のバージョンでは south などはサポートされていない。自作する。

Q 日本語表記の日付を得たい。
A 現在のバージョンでは U.S. フォーマットのみ。( the dateFormat で得られる文字列は使用されない) convert xx to dateItems を使って各値を得て、自分で文字列を作る。

Q get URL で壊れたデータが取り込まれる。
A 壊れたデータがキャッシュされている可能性がある。 unload などで対処するか、変数を local 宣言して初期化されるようにしておく。

Q player オブジェクトのコントローラーが機能しない。
A プロパティパレットで player タグの Buffer チェックを外す。

-- 2002.08 --

○ Transcript の the itemDelimiter はローカルプロパティなので、ハンドラ内のみ有効。 2.0 では the lineDelimiter プロパティも実装される模様。

○ RunRev のフィールドの改行コードは return なので、ファイルを読み込んでフィールドに表示する時は replace return with CRLF in .. で CRLF を return に変える。

○ 日本語のファイルをフィールドに入れる時は、フィールドの the textFont を欧文(またはダミーのフォント名)にした状態で行い、書き込みが終わってから日本語フォントに変える。

○ do xxx as AppleScript でアップルスクリプトを実行することが出来る。返値は the result 入る。

○ SuperTalk では charToNum(&) で "&" のアスキー番号が得られるが、Transcript では文字をクォートで囲って charToNum("&") としなければならない。

-- 2002.07 --


-- 2002.11.20 --
編集/文責:UDI

inserted by FC2 system