Edition」の初級から中級のチュートリアルです。このチュートリアルは、中学・高校生からプログラミングが始めての方達を対象にして、Mac&Winのアプリを同時に作ります。エクスターナル、辞書この章の概略LiveCodeのエクスターナルの説明と、エクスターナル開発キットのインフォ。ウェブ・ブラウザーの機能を作るエクスターナル「revBrowser」のスタック。メディアをリンクしたり、テキストをインポートしたりする時に必要な、開発書類が保存してあるフォルダーまでのパスを求めるファンクション。LiveCode辞書の使い方と、言葉を探すコツ。LiveCodeで言うエクスターナルは、スタンドアロンの外部からイメージやサウンド、ビデオ等をリンクして、アプリケーション内に表示させるメディアと言う意味と、もうひとつはLiveCodeエンジンでは扱えないコンピュータの機能を、LiveCodeよりも低レベルの(より機械言語に近い)言語で特定の機能だけを開発して、外部部品としてカスタム・コマンドやカスタム・ファンクションにして取り付ける事を指す場合とがあります。LiveCodeの開発環境では、後者のエクスターナルがすでにビルトインされているものもあって、「revBrowser」「revFont」「revSpeech」「revZip」「revdb」「revxml」「revVideoGrabber」等がそれらです。References」で、アプリケーションに組み込むリンクをしなければいけません。OSならアプリケーションのパケージ内に、Windowsなら「Externalフォルダー」にファイルごとリンクされます。OSとWindowsではエクスターナル・ファイルの拡張子が違っていて、Macは「.bundle」、Windowsは「.dll」が付きます。LiveCodeにビルトインされているエクスターナルから、LiveCodeのスクリプトに取り込む言葉は、カスタム・コマンド、カスタム・ファンクションのライブラリーですから、普通の日常英語のような表現を取らない事が多く、始めに「rev」が付いている言葉が多くあります。エクスターナル開発に興味ある人の為に、RunRev社の解説ページ(英文)を書いておきます。Revolution」と言っていた頃に、サードパーティの「Altuit社」が開発したエクスターナルをRunRev社が買い取り、開発キットに標準で装備されるようになりました。「revBrowser」は、スタックにウェブ・ページを取り込んでウェブ・ブラウザーの機能を作り出します。エクスターナルの「revBrowser」を使ってみましょう。「revBrowser」は、スタックのカード上に座標で設定した四角形に、インターネット・ブラウザーの表示機能を作ります。Explorerをベースに開発されています。Explorerでは、同じHtml原稿でも天地の長さが変わってくるので、スクロール・バーを持たせないで特定のページだけを表示させたい場合、プラットフォーム(platform)別に、設定するエリアを少し変える必要があります。これからサンプルで作るスタックは汎用性を持たせて、一般的なウェブ・ブラウザーのように、ウインドウのサイズを変えたり、アドレスがユーザーに書き込めるようにしてあります。手っ取り早く実物を見てみます。下のスクリプトを、メッセージ・ボックスにコピペしてリターンキーを叩くと、サーバーからスタック「longiLati.livecode」が呼び出せます。"http://kenjikojima.com/livecode/download/longiLati.livecode"こんな感じのものです。OSでピッタリ入るように作っているので、Windowsで見ると右にスクロールバーが出て来ます。『preOpenStack』でWindowsで開いたサイズも調整できますが、今回はそこまでやっていません。言う、地球上各地の太陽の運行を表示させるアプリケーションの、補助のウェブ・ページです。Mapの機能から緯度経度を知るウェブ・ページを、このチュートリアル用に日本語にして整理しました。試してみてから作ってみましょう。他のURLに移った時マップのイメージが画面に残ってしまいます。ホームのページ設定を他のURLにすれば修正されます。2)グーグルマップの仕様が変わったので、現在はこのサンプルページのスタックに経度、緯度の数値が表示されません。Latitude」として、ファイル「longiLati.livecode」を保存してください。開かれた時に「http://kenjikojima.com/jikankei/GoogleMap.html」を表示させるようにします。スタックのサイズは左右(width)「800」、天地(height)「650」にします(上図)。Wrap(dontWrap)」にします。その下にブラウザーの表示エリアをグラフィック(graphic)で作り、名前は「tBrowser」にします。図では薄いグレーの矩形の部分です。回りのアキは、スタック・サイズが変わっても、それぞれ20ピクセル取るようにスクリプトを書きます。ブラウザー機能の表示には、プレイヤーやイメージのようにオブジェクトの必要はないのですが、レクタングル(rectangle)の範囲がはっきり分かるように、グラフィック「tBrowser」をカード上に置きます。アドレス)このファンクションでブラウザーを初期化をして、セッションのイニシャルIDを取得します。プロパティの値のパラメータに使います。プロパティは「ボーダーを見せる」「表示範囲」の2つを設定します。これがカードに入れる大雑把なスクリプトの流れです。カードに入れるスクリプトをを書きます。コマンド「revBrowserOn」が中心的なスクリプトです。エクスターナル「revBrowser」を使う機会があったら、これをそっくりそのままコピーして使うのが良いかもしれません。他のプロパティをセットするパラメータは、辞書の「revBrowserSet」にあります。この章に「辞書を使う」の項目があります。スクリプトから日本語は削除してください。URLが変わる前に許可を求める。「revBrowser」の機能のひとつに付け加えました。returnInField開発書類が保存してあるフォルダークロスプラットフォームでエクスターナルのメディアをリンクしたり、テキストをインポートしたりする時に必要なファンクションです。一通りの説明は付けましたが、細かな処がわからなくても、ファンクション「theFolderPath」として、このように使えれば問題ないです。"/images/mySlide.jpg"ファイル・パスを得るファンクションは、イメージ・オブジェクトのファイルネーム(fileName)などをセットする時に使います。stack」が違っているので、それを修正するファンクションです。MacOSではスタンドアロン・アプリケーションの中に「Contents」が入っていて、またその中の中にスタックがあるので、スタンドアロンと同じホルダー(階層)に置いている、他のファイルとのパスに違いが出てしまいます。スタンドアロン・アイコンの右クリックで中を見る事ができます(図:mySlideShow.app)。開発時にデスクトップに置いたフォルダー「LiveCodeStudy」の中に、下の図のように開発書類の「mySlideShow.livecode」と、イメージを入れたフォルダー「images」があるとします。stack」を求めると/Users/kenjikojima/Desktop/liveCodeStudy/mySlideShow.livecodeこのような結果が返されます。左右の文字詰めの関係で2行にしています。開発時とスタンドアロンでは同じ結果が得られないので、ファイルパスを求める為の修正ファンクションが必要です。ファンクション「theFolderPath」は、メインスタックのスクリプト・エディターに書き込んで使います。stack」はメインスタックの名前に変えてください。"mySlideShow"のようにします。tResultスタンドアロンのMacOSでは、アプリケーションのパケージに「Contents」と言うフォルダーからのパスが、メインスタックまで続いているので、その分を削除します。"/images/slide01.jpg"のように使います。辞書を使うLiveCodeのめぼしいテーマは一通りなぞって来ました。使うことになるでしょう。Dictionary)が開かれます。辞書は、マルチ・コラムとシングル・コラムの2種類から選ぶ事ができます(上図1、2)。Systems」「Security」のコラムが表示されて、その下に辞書の本文があります。シングル・コラムは左に「keyword」だけが表示されて、その右に辞書の本文があります。ふたつの表示の違いは、LiveCodeのメニューから引き出せるPreferences(環境設定)の「Documentation」から設定できます(上図3)。ひとつLiveCodeのウェブ・ページにもありますから、どれでもあなたの好みで使ってください。Dictionary):http://livecode.com/developers/api/6.0.2/引き出した辞書の内容は、詳しく読むに越した事はないですが、そう英語も読みたくはないでしょうから、見方のポイントだけを説明しておきます。辞書の左側のコラムから「All」を選んで、右上検索フィールドに例えば「set」をタイプすると、「set」が含まれるすべてのLiveCodeの言葉がリストに表れます。setはかなりの語が現れますが、普通はこれほど沢山はリストアップされません。リストをスクロールダウンして行くと、「Keyword」の欄に「command」と「keyword」の2つの「set」があるのがわかります。今はコマンドの「set」を見てください。リストのラインがハイライトになってその内容が出ます。command」は、この言葉がどのタイプに属しているかを示しています。他に「function」「property」「keyword」「message」などに分類されます。意味不明なので「シンタックス」と私は言っています。LiveCode的な意味でシンタックスを日本語にすると、基本文型とでも言いますか、文の成り立ちに必要な単語や要素を組み合わせた、基本的な文の型と言う意味です。シンタックスはこの辞書の中でも大事な部分で、読み方さえ分かれば理解しやすいですから、必ず見てください。」に囲まれた語とイタリックの語があります。シンタックスは1つだけとは限らないで、何行か書かれている場合もあります。」は、オプションの言葉なので、場合によって省くことができます。この辺りの判断は、英語的な感覚で「the」を付けた方が、読んだ時に語感の落ち着きが良いとかなんでしょう。他の言葉で「the」を使う場合は注意してください。ファンクションでパラメータなしで「the」を必ず付ける事があります。それからイタリックで書かれた部分、たとえば「set」の例だったら「property」や「value」は、他の言葉や数値に、置き換える部分です。別の語「put」を見てみます。」に囲まれた語は、文の構成には不可欠な語で、文を成り立たせるためには、どれかひとつを選ぶ必要があります。」(タテ棒、パイプとも言う)によって区切られています。使ったら、カーリー・ブラケット内の一つの語は文を構成するために必ず必要です。Also:」には、その語と関連のある他の語が列記されていますから、関係のありそうな語をクリックして、参考に見る事ができます。要約)」は、言葉の意味、または役割を簡単に記述したものです。property.」は「値をプロパティに割り当てる(設定する)」と言う意味になりますが、サマリーは無理に日本語の文章に翻訳しないで、単語の意味だけ調べてシンタックスと例文から類推した方が、理解できるかもしれません。例文)」は、シンタックスと同じに大事な部分です。シンタックスの語順通りのスクリプトが例としてあげられていますから、シンタックスと対で見てください。例文は数行ある事も多く、どう使われるのかを具体的に知ることができます。ボタン「OK」のテキストフォントを「Arial」にセットしなさい。カーソルをウオッチにセットしなさい。ップしてみてください。ユーザーが色を選べる「カラー・パレット」を出したと思ったら、「color」と辞書で検索してみます。color」のようだと思ったら、本文を見れば分かります。外れても少しは記憶に残って、また何かの時に思い出すでしょう。日本語から和英辞書を使っても参考になるでしょう。出てきた言葉の説明を見て、それをヒントにまた次の言葉を探し出して、目的のLiveCodeの言葉にたどり着くなどということも良くあります。Also:」にある言葉も、とてもに参考になります。LiveCodeは非常に柔軟性のある表現が可能ですから、例文などにはない言い回しで使えることも、しばしばあります。探し出した言葉はすぐにランタイムで試す事ができるので、思いついた可能性はとにかく試してみることが大事です。細かなことはすべて覚えきれないので、基本的な事柄を頼りに辞書をうまく使いこなして行くのが、上達の早道でしょう。Tipsビルトイン・エクスターナルはスタンドアロンにした時、自動でリンクされて「Externalsフォルダー」にファイルが入れられます。開発環境とスタンドアロンのファイルパスの違いは、ファンクション「theFolderPath」で調整します。"スタック名"」に変更しないと、正しいパスが得られません。「theFolderPath」は「empty」を返します。適当なLiveCodeの言葉が思い当たらない時は、知っている意味の近い単語を辞書で検索してみます。時には日本語から和英で単語を探し出すのも有効かもしれません。ランタイムでとにかく試してみる事が大事です。