15: メニュー、タブ・パネル

この章の概略
  • LiveCodeの開発環境にあるメニュー・ビルダーを使って、基本的なメニューの構成と、スクリプトのフォーマットを作ります。
  • メニューを設置する事で、プラットフォーム間で起きる違いについて。
  • テキスト・フィールドで使用できる、エディット・メニューのスクリプト。
  • ディセエイブルド、ニーモニック、ショートカット、サブ・メニュー、タブ・メニュー。条件の違いで変えるメニュー・セッティング。
  • スタックからブラウザーでウェブページを開くスクリプト。


メニュー・ビルダー

いまさら書くような事でもないのですが、一般的なMac OSとWindowsののアプリケーションのメニューは、見た目が違っています。Mac OSはメニューバー(menubar)と言って、アプリケーション毎にデスクトップの最上部にメニューが並びます。それに対してWindowsでは, 個々のウインドウの内側の左最上部に小さくメニューが並びます。クロスプラットフォームで同じアプリを開発する場合は、まずその事を考慮に入れてください。

新しくメインスタックをFileメニューから作って、スタック・インスペクターでスタックの名前(name)を「menuStudy」タイトルを「Menu Study」としてください。サイズはデフォルトのままで「400 x 400」とします。「Toolsメニュー」から「Menu Builder」を開きます(下図)。



メニュー・ビルダーが開かれたら左上のボタン「New...」をクリックして 「Create a New Menu Bar」を開きます。「Menu Bar Name:」を「myMenu」とします。「Menus:」には、「File, Edit, Help」の3つのメニュー名が、デフォルトで入っています。後からでもこれらは直せますから、取り敢えずこれで「OK」をクリックします(下図)。



始めに開けたメニュー・ビルダーには、新しく作った「myMenu」が「Menu Bar:」に入って、左側にデフォルトの3つのメニューと、右にはそれぞれのメニューのメニュー・アイテム(menuItem)のリストが入っています(下図)。メニュー・アイテムにはちょっと見慣れない「&記号」とか斜線もありますが、後から説明します。下の図はMac OSの開発環境ですから、メニュー・ビルダーの右上には「Preview in Menu Bar」があります。Windowsには左に「Preview ("File" Menu)」があります。Mac OSで「Preview in Menu Bar」をチェックすると、LiveCodeの編集用のメニューが見えなくなってしまうので、編集中はチェックを入れないでください。



入門用には「Editメニュー」のスクリプトを書いて行くのが実用的かと思うので、左のメニューから「Edit」を選んでハイライトにしてください(下図)。右のメニュー・アイテムのリストもそれに伴って、「Editメニュー」のデフォルト・アイテムに変わります。4項目のメニュー・アイテムと、ハイフォン(-)の下にもう1項目、全部で6ラインあります。上から4番目の「Clear」を「Select All」に変更します。「Clear」をハイライトにして、上にあるアイテム名を変えられるテキスト・ボックスに、「Select All」とタイプします(下図赤枠)。



次にアイテム・リストの下の方にある「Shortcut」にチェックを入れて、その右の「+記号」の処にショートカットのキャラクター「A」を入れます。これは「Select All」の為のショートカットです。下にある「Ctrl」と「Cmd」は、現在の開発環境がWindowsなら「Ctrl コントロール」に、Macなら「Cmd コマンド」にチェックを入れます(上図右下赤枠)。これはMac OSが開発環境でも、このLiveCodeドキュメントをWindowsに持って行けば、「コントロール+A」のショートカットに自動的に切り替わりますから大丈夫です。逆にWindowsの開発環境だったら「Ctrl コントロール」にチェックしておけば、Macになった時に「Cmd コマンド」になります。

エディット・メニューのスクリプトを書き込む前に、左下にある「Auto Script(上図左下赤枠)」をクリックして、あらかじめフォーマットを書き込んでおくのが便利です。



オート・スクリプトの内容のウインドウが開きます。メニュー・アイテムも「Clear」から「Select All」に直されています。これはまだ基本のフォーマットだけで、後からもう少し具体的なスクリプトを書き込んで行きます。「OK」をクリックして「Auto Script」ボタンの左の「Edit Script」をクリックすると通常のスクリプト・エディターが開かれます(下図)。



メニュー・アイテムの「Cut カット」や「Copy コピー」の実際のスクリプトを書き込む前に、少しメニューのオブジェクトと視覚多的な説明をします。スクリプト・エディターもメニュー・ビルダーも、ここで一旦閉じてください。


Mac OSとWindowsメニューで起こる違い

Mac OSではブラウズ・ツールを持って、開発スタック「menuStudy」をアクティブにしていれば、メニュー・ビルダーで作ったメニューの「myMenu」が、メニューバーに表示されます。「myMenu」は作ったメニュー全体に付けた名前ですから、ユーザー向けにはどこにも表示されません。「Editメニュー」をクリックしてアイテムをプルダウンさせると、4項目だけのメニュー・アイテムが見えます(下図)。



同じLiveCodeの書類をWindowsで開いて「Editメニュー」をプルダウンさせてみると、Macと同じ4項目の下にグレーのラインと「Preferences」が見えます。上にある図のメニュー・ビルダーで作った Editメニューのメニュー・アイテムを見てみると、「Select All/A」の下に「- ハイフォン」と「Preferences」があるので、Windowsではメニュー・ビルダーで見える通りですが、Macではなくなっています。



それではMacの「Preferences」はと言うと、アプリケーション名(今は「LiveCode」)のメニュー・アイテムの「環境設定」にあります。このプロジェクトが完成してスタンドアロン・アプリケーションになったら、そのプログラム名が今ある「LiveCode」に変わって、アップル・メニューの右隣に入ります。これは「メニュー・アイテムのPreferences」が、自動的に言語環境に合わせて翻訳された言葉で表示される、Mac OSのシステムに沿ったもので、同じように「Helpメニュー」にある「About」もアプリケーション名のメニューに移動します(下図)。こちらは翻訳はされずにメニュー・ビルダーで設定した「About Menu Study」で表示されます(経過は見せていませんが、「Helpメニュー」の「About」を「About Menu Study」にしました)。



オブジェクトとしてのメニューを説明しなければいけないのだけれど、なかなかたどり着けませんね。Windowsだとメニューのオブジェクトはカードの左上に見えています。開発環境がMac OSだったら、メニューバーから取り外してみましょう。メッセージ・ボックスから

set the menubar of stack "menuStudy" to empty

 スタック「menuStudy」のメニューバーを空にしなさい。

これはメニュー・ビルダーのメニュー名の横にある、「set as stack Menu bar」のチェックを外したのと、同じ機能のスクリプトです。これでMac OSのスタックの左上にも、Windowsのメニューと同じように3つのメニューが現れます。アプリケーション・ブラウザーでカードにある「myMenu」をセレクトしてみると、3つのメニュー・ボタンをグループ化したものである事が分かります(下図)。





アイコン・メニューの「Select Grouped(上図赤丸)」でグループ内がセレクトできるようにすると、中のにあるボタンが選べます。これはツール・パレットから作るプルダウン・メニュー(pulldown menu)の、ボーダーを取ったボタンと同じオブジェクトです。



Mac OSが開発環境の人だったら、スクリプトでグループ「myMenu」を見えるようにした時、少しだけスタックの天地が伸びたのに気が付いたかもしれません。 開発環境がMac OSだったら、スタック・インスペクターでサイズを確認してください。「22ピクセル」デフォルトだった天地よりも伸びています(上図)。実際のアプリケーションになった時には、Mac OSではグループ「myMenu」が隠れるので、スタックの天地は400ピクセルですが、同じLiveCode書類をWindowsのアプリケーションにした場合は、メニューの分だけ大きくなって、スタックの天地が422ピクセルになる事を、心に留めておいてください。逆の場合、天地400ピクセルでWindowsで開発して、その書類でMac OSのアプリにすると、今度は天地378ピクセルのMac OSのアプリになります。



上の左の図は、開発環境Mac OSで「400 x 400」のデフォルトのメインスタックを作って、「400 x 400」のカラーのグラフィックをカードのセンターに置いてから、メニューをメニュー・ビルダーで作ったスタックです。左の図は同じように開発環境Windowsで400 x 400」のデフォルトのメインスタックを作って、「400 x 400」のカラーのグラフィックをカードのセンターに置いてから、メニューをメニュー・ビルダーで作ったスタックです。ここでは共にメニューを見せていますが、Mac OSでスタンドアロン・アプリにした場合、上のメニュー部分が隠れてスタックの天地はこれよりも短くなります。

ほとんどのアプリケーションで、この天地の違いはさほどの影響はないのですが、この事を知っていないと、どうも何か違っているなと、後から考えなくてはならなくなります。


OSの違いでメニューを設定する

グループ化したメニューのプロパティについて、もうひとつ言っておかなければ行けない事は、バックグラウンド・ビヘイビア(backgroundBehavior)にしているので、追加であたらしく作って行くカードの全てで、同じメニューとしての役割をします。



Mac OSでメニューをデスクトップのメニューバーにセットするのは、スタックのメニューバーをメニュー名(ボタンのグループ名)にセットすると言う表現します。

set the menubar of stack "menuStudy" to "myMenu"

 スタック「menuStudy」のメニューバーを「myMenu」に設定しなさい。

クロスプラットフォームで同じオブジェクトをメニューに使うので、メニューの設置の違いを心配するかもしれませんが、メニュー・ビルダーの「Set as stack Menu bar」にマークしておけば、LiveCodeエンジンがプラットフォームで自動でメニューの設定をしてくれます。しかしMac OSでメニューバーにセットしていると、開発書類のスタックがアクティブになっている間は、開発書類のスタックのメニューがメニューバーに出ています。LiveCodeの編集用メニューを出すには、LiveCodeのツール・パレット等をマウスでアクティブにしなければいけません。Mac OSで開発中にメニュー・オブジェクトを出しておく事もしばしばあって、スクリプトでメニューの設置を知っておいた方が問題がありません。

クロスプラットフォームでメニュー設定を使い分けるには、スタックがオープンされる前(preOpenStack)に、プラットフォーム(platform)の違いを判断して、メニューバーにメニューを設置するか、それともスタック(ウインドウ)の上部にメニューを表示するかの指示を出します。スクリプトは、メインスタックのスクリプト・エディターに書き込みます。

on preOpenStack
   if the platform is "MacOS" then
      set the menubar of stack "menuStudy" to "myMenu"
   else
      set the menubar of stack "menuStudy" to ""
   end if
end preOpenStack

 オン プレオープンスタック  -- スタッックが開かれる前に働くメッセージ・ハンドラー    もしプラットフォームが「MacOS」なら      スタック「menuStudy」のメニューバーを「myMenu」にセットしなさい。    そうでなかったら      スタック「menuStudy」のメニューバーを「」にセットしなさい。 -- empty    エンド イフ(if文終わり)  エンド プレオープンスタック  -- プレオープンスタック終わり



エディット「Edit」 ・メニューのスクリプト

メニュー・ビルダーのオート・スクリプト(Auto Script)で、スクリプトのフォーマットを書き込んだままになっていますから、完成させましょう。メニュー・ビルダーをもう一度開いて「Editメニュー」のスクリプト・エディターを開く事もできますが、Mac OSだったら

set the menubar of stack "menuStudy" to ""

でメニューのグループを編集用に出して(Windowsだったらそのまま)、エディット・ツールでグループ「myMenu」をセレクトしたら、LiveCodeのアイコン・メニューの「Select Grouped」をクリックして、グループ内のオブジェクトが選べるようにします。次に「Editボタン」を選んで、スクリプト・エディターを開いてください。アプリケーション・ブラウザーでボタン・オブジェクトを選んで、スクリプト・エディターを開いても、もちろん良いです。



メッセージ・ハンドラーが「menuPick」でパラメータが「pWhich」に、「switch文」のスクリプトが書き込まれています。メニューピック(menuPick)は「11: 2種類のイメージ」にありましたが、「swicth文」は使わないでパラメータで写真のリンクを入れ替える時に使いました。「switch文」は「12: イメージはバイナリー・データ」で説明をしています。その時の説明を引用しましょう。

『スイッチ(switch)は、いくつかの可能性のあるバリュー(value)から、該当するものを選ぶ構文で、得られる結果は「if」とも似ています。「if」の場合は、該当しなければ、次々に「もしそうでなければ」「もしそうでなければ」と、ドンドン中に入ってチェックして行きます。「switch」は複数の可能性を並列に用意して、「case ケース」を使って、「この場合は」「この場合は」と上から順にチェックして、該当するバリュー(value)に当たった時、その中に用意したスクリプト(ステートメント)を実行します。』

今回は「いくつかの可能性のあるバリュー(value)」は、メニューピック(menuPick)のパラメータの「pWhich」によって決まります。メニュー・アイテムのどれかが選ばれると、その値は「pWhich」に受け取られて、スイッチ(switch)の「case」に当てはまる値を上から順にチェックして、該当する値に出会った処で、そのステートメントが実行されて、「break」で他の残りのケース(case)をスキップして、スイッチ(switch)文から抜けます。

それでは実行するステートメントを完成させます。カード上にテキスト・フィールドがあって、その為のエディット(編集)機能と言う事にします。上の図のスクリプト・エディターにある2つのハイフォン(--)の付いた行にステートメントが入ります。

on menuPick pWhich
   switch pWhich
      case "Cut"
         cut
         break
      case "Copy"
         copy
         break
      case "Paste"
         paste
         break
      case "Select All"
       if the selectedField is not empty then 
            select text of the selectedField
         end if
         break 
      case "Preferences"
         answer "No Preferences."
         break
   end switch
end menuPick

 -- この翻訳は「Select All」と「Preferences」のみを書いています。  ケース「Select All」    もしセレクトしたフィールド(selectedField)が、空でなかったら      そのフィールドのテキストを(すべて)セレクトしなさい。    エンド イフ(if文終わり)    ブレーク -- スイッチ文を抜ける  ケース「Preferences」    「No Preferences.」とダイアログで応えなさい。    ブレーク -- スイッチ文を抜ける

「Cut」「Copy」「Paste」は、まったくそのマンマです。「Select All」はカーソル(cursor)が入っているテキスト・フィールド(the selectedField)のテキスト全部をセレクトします。「Preferences」は、アンサー・ダイアログでメッセージを表示させています。

カード上にフィールドを作って、適当に文章を書き込んだら、エディット・メニューをテストしてください。ショートカットもうまくできますか。Mac OSだったら、メニューバーにも設定して試しましょう。



ディセエイブルド、ニーモニック、ショートカット

メニュー・ビルダーでメニュー・アイテムを見た時、「&」や「/」が見えると上に書きました。それではもう一度メニュー・ビルダーを「Toolsメニュー」から開けてください。Mac OSでスタックのメニューをメニューバーに設定していると、「myMenu」がメニューバー出ています。LiveCode開発用メニューを出すのは、LiveCodeアプリのツール等のウインドウを、カーソルでアクティブにします。



メニューをスタックに表示していると、メニューの内容が表示されないメニュー・ビルダーが出ます。「Edit(上図赤枠)」をクリックして、もうひとつウインドウを出して、どのグループをメニューにするか選びます(上図)。ここでは1つだけのグループですが、スタックに沢山のグループが作られている可能性があります。



メニュー・ビルダーにメニュー内容が表示されたら、左のメニュー・リストから「Edit」 を選んで、右にメニュー・アイテムを表示します。「&Copy/C」を選ぶと「mnemonic ニーモニック」にチェックが入って「C」の文字が右に出ます(上図左赤枠)。ニーモニック(mnemonic)はMacでは使わないですが、LiveCodeのデフォルトのメニュー・アイテムのセッティングにあるので、説明をしておきます。Windows環境でオルトキー(alt key)と、メニューアイテムにアンダーラインのあるキャラクター・キーとの組み合わせて、メニューをポップダウンさせる一種のショートカットです。上の図左でハイライトされている「Copyメニュー・アイテム」で言えば、「&記号」の次のキャラクター「C」がニーモニック(mnemonic)のアンダーライン・キャラクターを示唆しています。右の図のWindowsのメニューで見てください。「Copy」では「C」にニーモニックのアンダーラインがあります。その上の「Cut」では「t」にアンダーラインがあります。上の図左でハイライトされている「&Copy/C」の「/ スラッシュ」の次にある「C」ば、Mac OSでは「コマンドキー + C」Windowsでは「コントロールキー + C」のショートカットのキャラクターを示唆しています。



メニュー・アイテムの一番下にある「Preferences」をハイライトにして選んでください。「Disabled」にチェックマークを入れると、前に左側のカッコが付いて「(Preferences」となります。これでメニュー・ビルダーを閉じるとメニュー・アイテムの「Preferences(環境設定)」は、薄いグレーになってセレクトできないディセエイブルド(disabled)になります。しかしこれはメニュー・ビルダーでやっても、必要がある時にスクリプトで「enabled できるようにする」ができないと困りますね。メニュー・ビルダーは、大体のメニューの構成が作れれば良いくらいに考えておいて、スクリプトでも操作できるようになっていないといけません。

メニューはプルダウン・メニュー・ボタンをグループにしているので、ひとつひとつのボタンに入っているアイテムを、スクリプトで書き換えればそれが可能になります。「Edit」のボタンのアイテムを知るのは

the text of btn "Edit"



これでディセエイブルド(disabled)も、ニーモニック(mnemonic)もショートカット(shortcut)も含む、メニュー・アイテムが返されるので、「(Preferences」を「Preferences」に差し替えれば、「enabled できるようにする」になります。

get the text of btn "Edit"
put "Prefrerences" into line 6 of it
set the text of btn "Edit" to it

 ボタン「Edit」のテキストをゲットしなさい(itに入る)。  「it」のライン6に「Preferences」を入れなさい。  ボタン「Edit」のテキストを「it」に設定しなさい。

もう一度「Disabled」にするには「Preferences」の前に「( カッコ(parenthesis)」を付けます。

get the text of btn "Edit"
put "(Prefrerences" into line 6 of it
set the text of btn "Edit" to it

 「( カッコ」はアスキー(ASCII)で「40」ですから、2行目を  put numToChar(40) & "Prefrerences" into line 6 of it  とすることもできます。

その他メニューがチェックされている印「!c」も、ワリと使われると思うので書いておきます。

get the text of btn "Edit"
put "!cPrefrerences" into line 6 of it
set the text of btn "Edit" to it

 !c -- メニューがチェックされている印



サブ・メニュー

もうひとつサブメニューも重要なので書いておきます。例ではメニュー・アイテム「Open」から2つのサブメニュー「Image...」と「Video...」が引き出せるようにします。



どちらもアイテム名の後に「...」を付けているのは、そのメニュー・アイテムを選ぶとダイアログ等のウインドウが開かれると言う、ユーザー・インターフェイスの慣用的な表現で、「Preferences...」とされることも多いです(メニュー・ビルダーのデフォルトでは付いていません)。



"File"ボタンのインスペクターを開いてください。アイテム「Open」の下に2行「Image...」と「Video...」を追加します。追加した2行をサブメニューにするには、サブメニュー・アイテムの前に「tab」のアキを作ります(上図)。サブメニューの「Image...」が選ばれると、ボタンの中のメッセージ・ハンドラー「menuPick」のパラメータ「pWhich」には、タテ棒のキャラクター「| numToChar(124)」で繋がれた「Open|Image...」が入りますから、「switch」の「case」は「Open|Image...」とします。



on menuPick pWhich
  switch pWhich
  case "New"
    --Insert script for New menu item here
    break
  case "Open|Image..."  -- サブメニュー
    answer "Selected " & quote & "Image..." & quote
    break
  case "Open|Video..."  -- サブメニュー
    answer "Selected " & quote & "Video..." & quote
    break
  case "Close"
    --Insert script for Close menu item here
    break
  case "Quit"
    --Insert script for Quit menu item here
    break
  end switch
end menuPick

サブメニューが選ばれると、アンサー・ダイアログを出すようにしています。ストリングスの中の文をダブル・クォートで括るのは、始めを「quote & "」で、終わりを「" & quote」にします。正確には「double quotes 二重引用符」と言いますが、LiveCodeでは「"」をquote(クオート)と書きます。


タブ・メニュー

タブ・メニューを作ります。イメージとビデオをタブで切り替えるサンプルです。タブ・メニューを理解するためだけのもので、実際にイメージとビデオが働くまでのスクリプトは書き込みません。上に書いたメニューから続いていて、終わりにメニューの動きディセエイブルド(disabled)と連動させます。「Obejectメニュー > New Card」で新しくカードを作ったら、ツール・パレットから「Tab Panel」をカードにドラッグ&ドロップします。デフォルトのタブ・パネル(Tab Panel)はタブが3つあります。Mac OSはセンターに、Windowsは左にタブが寄せてあります。インスペクターを開けると「Tab 1」「Tab 2」「Tab 3」が3行で入っています。ここでのサンプル用に「Image」「Video」と2行入れてください(下図)。タブ・パネルは2つのタブになります。


ツール・パレットからイメージ・オブジェクト(Image Area)をドラッグ&ドロップして、300ピクセルくらいの横巾にします。その上にQuickTimeプレイヤーを乗せます。これでボタン・タブ・メニュー(button "Tab Menu")をセレクトしてスクリプト・エディターを開けます。エディターには他のボタン・メニューと同じように「menuPick」ハンドラーと「switch」が用意されています。
	
on menuPick pItemName
   switch pItemName
      
   end switch
end menuPick



タブを切り替えた時にパラメータ「pItemName」に「Image」か「Video」が入りますから、「case」はその2つに対処します。

	
on menuPick pItemName
   switch pItemName
       case "Image"   -- 「Image」タブが選ばれた
         hide player 1
         show image 1
         break
      case "Video"   -- 「Video」タブが選ばれた
         show player 1
         hide image 1
         break
   end switch
end menuPick



条件やカードの違いでメニューを変える

これで、切り替えができました。実際のイメージやビデオをリンクするスクリプトは、ここではやりませんが、タブが選ばれた時に「Fileメニュー」のオープンのサブメニューも同時に切り替わるようにします。

	
on menuPick pItemName
   switch pItemName
      case "Image"
         hide player 1
         show image 1
         get the text of btn "File"
         put tab & "Image..."  into line 3 of it
         put tab & "(Video..." into line 4 of it
         set the text of btn "File" to it
         break
      case "Video"
         show player 1
         hide image 1
         get the text of btn "File"
         put tab & "(Image..."  into line 3 of it
         put tab & "Video..." into line 4 of it
         set the text of btn "File" to it
         break
   end switch
end menuPick

タブを切り替えると「Fileメニュー」の「Image...」「Video...」も同時に切り替わります(下図2つ)。






次は前のページに移るボタンを作ります。ボタンがクリックされてカード1(cd 1)が開けられると、「Fileメニュー」の「Open」を無効にして、サブメニューが開けないようにします。上でやっているスクリプトとほとんど同じです。



ボタン「Go Top Page」のスクリプト
	
on mouseUp
   open cd 1
   get the text of btn "file"
   put "(Open" into line 2 of it   -- "Open" を無効(disabled)にする
   set the text of btn "file" to it
end mouseUp

カード1(card 1)からカード2(card 2)を開くのもほとんど同じですが、もしカード2でビデオ・タブが開けられていたら、イメージ・タブに切り替えるスクリプトを入れておきます。



ボタン「Go Image Video」のスクリプト
	
on mouseUp
   lock screen   -- スクリーンをロックして、タブの切り替えが見えないようにする
   open cd 2   -- カード・ナンバー2を開く(スクリーンはロックされています)
   get the text of btn "file"
   put "Open" into line 2 of it   -- "Open"を有効に(enabled)にする
   set the text of btn "file" to it
   set the menuHistory of btn "Tab Menu" to 1   
     -- メニュー・ボタンのメニュー・ヒストリー(menuHistory)を「1」に
end mouseUp    -- スクリーンのロックが解除されます

メニュー・ヒストリー(menuHistory)は、メニュー・ボタンの選ばれたアイテムを「the text」のライン・ナンバーで返します。タブ・パネルの場合は、メニュー・ヒストリー(menuHistory)をナンバーにセットすると、そのライン・ナンバーのタブをクリックしたのと同じ効果が得られます。カード2を開けてメニュー・ヒストリー(menuHistory)をセットすると、一瞬セット前のタブ・パネルが見えてしまうので、スクリーンをロックして「lock screen」、ユーザーに見えないようにします。ロック・スクリーン(lock screen)は、メッセージ・ハンドラーを抜けるとアンロック・スクリーン(unlock screen)になって解除されます。ハンドラーの中でアンロックしたい場合は、その箇所に「unlock screen」と書きます。


ウェブページをブラウザーで開ける

「Helpメニュー」に「Open Kenji Kojima's Web」を付け加える事にしましょう。スタックのメニューから、ユーザーがデフォルトに設定しているブラウザーで、ウェブページを開けるメニュー・アイテムです。「Helpメニュー」の2行目に「Open KenjiKojima's Web」を加えて、メニュー・ビルダーのオート・スクリプト(Auto Script)で、スクリプトのフォーマットを書き込みます。スクリプト・エディターを開いて

on menuPick pWhich
  switch pWhich
  case "Help"
    --Insert script for Help menu item here
    break
  case "Open KenjiKojima's Web"
    revGoURL "http://www.kenjikojima.com/"
    break
  case "About Menu Study..."
    --Insert script for About Menu Study menu item here
    break
  end switch
end menuPick

「revGoURL」はLiveCodeの以前の名前「Revolution」から来ています。LiveCodeでは始めに「rev」と付いた言葉はリザーブされているので、カスタムのコマンド、ファンクション、バリアブルでは使えません。「URL」は「Uniform Resource Locator」のアクロニム(acronym 頭文字を取った短縮語)で、一般にはウェブ・アドレスと言っているものです。

revGoURL "ウェブ・アドレス"

で、目的のページがブラウザーで開かれます。アドレスは必ずクオート(quote)で括ります。


Tips

  • メニュー・ビルダーはメニューの大体の構成を作るには適していますが、開発が進むにつれて条件その他でメニューを操作しなくてはいけない箇所も出てくるので、メニューをスクリプトで操作できるようになる事が重要です。

  • メニューバーを設置すると、Mac OSとWindowsではスタックの天地がメニューのサイズ分変わってくるので、クロスプラットフォームでの開発では、そのことを留意しなくてはいけません。

  • メニュー・アイテムをサブ・メニューにするには、始めにタブ(tab)を挿入します。

  • メニュー・ヒストリー(menuHistory)で、メニュー・ボタンをセットすると、メニュー・アイテムが選ばれたのと同じ動作になります。

  • スタックからウェブページをブラウザーで開けるのは「revGoURL」を使います。



この章で新しく出て来た言葉

menubar

プロパティ(property)トップにあるスタックのメニューバーに設定されている名前

set the menubar of stack "menuStudy" to empty
set the menubar of stack "menuStudy" to "myMenu"

preOpenStack

メッセージ(message) スタックが開かれる前にカードに送られる

on preOpenStack
  set the menubar of stack "menuStudy" to ""
end preOpenStack

cut

コマンド(command)セレクトしたテキストやオブジェクトをコピーして削除する

cut

copy

コマンド(command)セレクトしたテキストやオブジェクトをクリップボードにコピーする

copy

paste

コマンド(command)クリップボードにコピーした内容を、
セレクトした処にカーソルの入っているフィールドにペーストする

paste

selectedField

ファンクション(function)テキストがセレクトされているか、
マウスが入っているフィールドのナンバーを返す

select text of the selectedField

quote

コンスタント(constant)ダブル・クオート・キャラクター(ASCII 34)

quote & "Image..." & quote

tab

コンスタント(constant)タブ・キャラクター(ASCII 9)

put tab & "Image..." into line 3 of it

revGoURL

コマンド(command)ウェブ・ブラウザーでURLを開く

revGoURL "http://www.kenjikojima.com/"




14: マルチメディア2

16: プロパティ、テーブル、アレイ(Array 配列)




ⓒ 小島健治 / Kenji Kojima

 

 
この章で使われる英単語