03: オブジェクトとプロパティ

この章の概略
  • メニューからオブジェト(スタックとカード)を作成して、インスペクタで名前等のプロパティ(オブジェクトの持っている様々な特性・属性)を設定します。
  • スタックは「Name, Title, ID」の3種類の名前が付けられています。
  • プロジェクト全体の構成をアプリケーション・ブラウザーから見ます。
  • LiveCodeの書類を保存する際の注意。

メニューからスタックを作る

前章ではメッセージ・ボックスからLiveCodeの命令文を送って、スタックとカードとボタンの3種類のオブジェクトを作りました。LiveCodeはイラストレイタのようなグラフィック作成アプリではなく「プログラミング言語」ですから、すべてのオブジェクトの作成機能は、プログラミング言語のLiveCodeが持っています。しかし「統合開発環境」としての機能性から、直接メニューやツールを使ってオブジェクトを作成した方が効率的でしょう。初級のアプリ作成ではプログラミングでオブジェクトを作る事はあまりないですが、上級になるとオブジェクトや作成ツール自体を作るプログラミングが必要になる事も出てきます。この章で使うメニューやツールも、メニューやツールで作るオブジェクトも、作ったオブジェクトの属性(properties プロパティ)の設定も、プログラミングで作りだせる事を意識しておくと、プログラミング言語LiveCodeの理解が早まるかと思います。

今度はスタックをメニューから作ります。
「File」メニューから「New Mainstack」を選びます。(下図ファイル・メニュー)



「Untitled 1*」と言う名前のスタックがひとつ作られます。始めに作るスタックを「メイン・スタック」と言って、開発してゆく行くプロジェクトの中心になるスタックです。必要があれば、さらにその下に複数の「サブ・スタック」が加えられます。LiveCodeの作成するアプリは、必ずひとつのメイン・スタックと、メイン・スタックの中に1枚のカードが必要です。メイン・スタックを作った時点で、すでにカードは1枚作られています。

 メイン・スタックはサブ・スタックとは違う特徴をいくつか持っていて、  プロジェクトの構成を考える際、それを考慮しなくてはいけませんが、  まだその事については考える必要はありません。


スタックのプロパティ設定

前章と同じようにスタックに名前を付けます。今回は開発環境のインスペクタを使います。メニュー・バーの下に並んだアイコンから「Inspecter(上図赤丸)」をクリックすると、スタック・インスペクタのパレットが現れます(下図)。インスペクタは、オブジェクトが持っている幾つものプロパティ(properties 特性、属性)を、確認したり編集したりするパレットです。スタック、カード、その他のオブジェクトの3種類のインスペクターがあり、今見ているのは「スタック・インスペクタ」で、このスタックの名前や大きさなど、普通よく使われるプロパティを編集する事ができます。

 インスペクタからは設定できない、あまり使われないプロパティは、  LiveCodeのプログラミングで設定できます。またカスタムでプロパティを作ることもできます。



メニューから作ったばかりのスタック・インスペクタのトップにあるバーには「stack "Untitled 1", ID 1003」(IDの数字は違っているかもしれません)とあります。そのすぐ下のボタン・メニューには「Basic Properties」とあって、作られたばかりのスタックには、「Untitled 1」と言う名前(name)がデフォルトで入っています。スタック・インスペクタのこのページに見えているのは、沢山あるプロパティの最も基本となる設定だけです。最上部のボタン・メニュー「Basic Properties」をクリックスすると、その他のカラーやサイズ等のカテゴリーに分けられて、このスタックのプロパティが設定できます。今はこのページ「Basic Properties」にある、上のふたつ「Name」と「Title」だけの設定をします。Nameにワード・スペースなしで「helloWorld」とタイプして、カーソルをいれたままリターンキーを叩きます。オブジェクトの名前(name)に日本語は使えません、必ず英数字を使用します。スタック・ウインドウのトップのバーが「Untitled 1 *」」から「helloWorld *」に変わります。スタック・インスペクタの「Title」の欄には二つの単語(ワード・スペースを取って)で「Hello World」とタイプして、カーソルを入れたままリターンキーを叩きます。こんどはスタック・ウインドウのトップのバーが「Hello World」に設定されます。

 スタックのをタイトルを日本語にする事もできますが、このスタック・インスペクタからはできません。  初歩的な日本語に関しては、後の章でまとめます。

LiveCode7 注:LiveCode7ではオブジェクトの名前に日本語が使えます。今はこのチュートリアルのように英文で進めてください。


スタック・プロパティの「name」と「title」の違い

上の経過から分かる事は、インスペクタの「Title」が空白の時には、スタック・ウインドウのトップ・バーは、インスペクタの「Name」に入れた「helloWorld」+「* アスタリスク(asterisk)」が表示されました。特に書きませんでしたが、空白の「Title」の下にある「Main Stack」のボタン・メニューは、「helloWorld」に変わります。次に「Title」に「Hello World」を入れると、スタックのトップのバーは「Hello World」に設定されます。インスペクタの「Main Stack」のボタン・メニューは「helloWorld」のままで変わりません。

LiveCodeではひとつのスタック(オブジェクト)に、3種類のプロパティで名前を付けています。ひとつづつ説明をすると、まず「name」は、プログラミングの中で使うスタックの名前です。次に「title」は、スタック・ウインドウの最上部のバーに出すタイトルです。あるいは看板のようなモノと言っても良いでしょう。タイトル(title)は、アプリケーションを使用するユーザーが、そのウインドウの特性を理解しやすい名前でしたら、何ワードの語数でも数字でも設定できます。それに対してネーム(name)は、プログラミング中で使い安い簡潔な名前にします。「name」と「title」は必ずしも変える必要はありません。同じに「Hello World」としても差し支えないのですが、私の場合「name」はプログラミン中で使いやすく判断しやすいように、スペースは取り除いてその部分を大文字にし、ひとつの単語にしています。

 基本的にスタックの名前(name)はダブル・クオートで括りますが  ワンワードの単語にしておくと、ダブル・クオートを外してもnameとして使う事ができます。  複雑に入り組んだスクリプト中では、ダブル・クオートなしの方が簡潔に書ける場合も時にあります。

もうひとつの名前の「ID」は、オブジェクトが作られた時にLiveCodeが自動的にそれぞれ違う数字(ユニークID)を割り当てます。スタック・インスペクタのタイトル・バーに表示されている「stack "helloWorld", ID 1003」の、カンマで区切られた2番目のアイテム(数字)です。今は「ID」と言うユニーク・ナンバーが割り振られている、と言う事を知っているだけにしておきます。

以上の事柄をメッセージ・ボックスから確認してみしょう。メニュー・バーの下のアイコン左から3番目「Message Box」をクリックするか、MacOSなら「コマンド・キー + M」、Windowsなら「コントロール・キー + M」のショートカットで、メッセージ・ボックスを開いて、以下の3つのスクリプトをメッセージ・ボックスから送ります。

put the name of this stack

 このスタックの名前を書き出しなさい。



put the title of this stack

 このスタックのタイトルを書き出しなさい。



put the ID of this stack

 このスタックのIDを書き出しなさい。(LiveCodeはスクリプト中で大文字小文字の識別をしません)



以上のような結果がメッセージ・ボックスに書き出されます。あるいは「the name of this stack」だけ予想された「helloWorld」とは違って、「stack "hellowWorld"」となったかもしれませんね。「the name of this stack」から返される値は、正式名称とでも言いましょうか「stack + ダブルクオートで囲われた名前」となります。期待する「helloWorld」だけ得たい場合は、状態を指し示すキーワード(keyword)の「short」を「name」に付けて

put the short name of this stack

 このスタックのショート・ネームを書き出しなさい。

とメッセージ・ボックスから送ると「helloWorld」だけを得る事ができます。「stack 」を含む「the name」を使うか、「the short name」を使うかは、その時のプログラミングの流れの中で判断します。



LiveCode7 注:
LiveCode 7ではスタックのプロパティ「name」も「title」も日本語表記ができます。




メニューからカードを作る




次にメニューを使って新しいカード・オブジェクトを作ります。「Objectメニュー」から「New Card」を選びます(上図)。スタックにはタイトルが設定されているので、前章の時のようにタイトルバーには「helloWorld (2)*」とカードの数字は表示されません。スタック中に何枚のカードがあるのか知るスクリプトを使います。メニューから数枚新しいカードを作ってください。始めにメッセージ・ボックスから

put the number of cards of stack "helloWorld"

 スタック「helloWorld」のカードの総数を書き出しなさい。

put the num of cds of stack "helloWorld"

 number とcards を簡略形にしても、まったく同じに働きます。



メッセージ・ボックスに、スタック「helloWorld」の中にあるカードの総数が返されます。LiveCodeは基本が英語ですから、「カード」は複数の「cards」にしないとエラーになります。その辺りが曖昧な日本語と違う発想に気をつけてください。と言ってもプログラミングで扱うオブジェクトですから、日常生活の語彙数とは格段に数が違うので、幾つかの言葉について気をつければ良いだけの話です。さらにカードの数を増やして、メッセージ・ボックスに書き出された数字が増えているか試してください。


アプリケーション・ブラウザーを使う

統合開発環境でオブジェクト等プロジェクト全体の構成を知るには、アプリケーション・ブラウザーを使います。(もうひとつLiveCode 6になって作られた、ほとんど同じ機能のプロジェクト・ブラウザーというのもありますが、カード・ナンバーが明記される等の理由で、ここではアプリケーション・ブラウザーを使う事にします)「Toolsメニュー」から「Application Browser アプリケーション・ブラウザー」を開きます。



上図右にあるのが「アプリケーション・ブラウザー」です。スタック名「helloWorld」の左端の三角が横向きになってカードのリストが見えない時は、三角をクリックします。作ってある全てのカードのリストが現れ、「Name」の欄にはそれぞれのカードのIDナンバー、「Num」の欄にはカード・ナンバーが表示されています。その右の欄はオブジェクト内に書かれているスクリプトの行数で、「0」が縦に並んでいるのは、これらのオブジェクトには何もスクリプトも書かれていないのが分かります。

前章では指定したカードを開けるのに、メッセージ・ボックスからスプリプトで
go to cd 3

 カードナンバー3に行きなさい。cdはcardの短縮形

のようにしてカードを開きましたが、アプリケーション・ブラウザーではカードのアイコンをセレクトしてから、ダブル・クリックします。実際にやってみましょう。ダブルクリックをしても、カード上には何もオブジェクトを作っていないので、果たしてそのカードか分かりませんね。それでは、メッセージ・ボックスから聞いてみます。

put the num of this cd

 このカードのナンバーを書き出しなさい。numはnumberの短縮形


アプリケーション・ブラウザーで、ダブル・クリックしたカードの数字が返されましたか。


LiveCodeの書類を保存

ここでスタック「helloWorld」を保存します。LiveCodeは日本語を含むファイル・パスが使えません。具体的にはLiveCodeは日本語のファイル名は読めないので、必ず英語でファイル名をつけてください。もうひとつ日本語のフォルダー名も読めません。必ずフォルダーは英語名にしてください。私は「liveCodeStudy」と言うフォルダーに「helloWorld.livecode」と言う名前のファイルにしました。「Format:」はデフォルトの「LiveCode Stack」してください。他の「Format:」はLiveCodeの古いバージョンの書類形式で保存するためのものですから、使っているLiveCode 6 コミュニティ・エディションでは関係ありません。


もうひとつ、もし使っているOSを「拡張子 extension」が見えない設定にしていたら(拡張子は「helloWorld.livcode」のドットの後に来る「.livecode」等)拡張子が見える設定に変更してください。プログラミングをして行く過程で拡張子の判別が必要な事がしばしば出てきます。
Mac OSでは、
Finder メニュー > 環境設定 > 詳細 > すべてのファイル名拡張子を表示
Windowsでは(申し訳ないですが、英語版を使っているので日本語の表記がわかりません)
Control Panel > Appearance and Themas > Folder Options > View タブ > Advanced setting > Hide extensions for known file types のチェックマークを外します。

LiveCode7 注:
LiveCode7ではファイル名に日本語が使えますが、特別な事情がない限り英文のワンワードにするのが良いでしょう。



Tips

  • LiveCodeはスクリプト中で、大文字小文字の区別をしません。区別の必要がある場合は、スクリプト中でその設定をします。それについて、ここでは記述しません。

  • メッセージ・ボックスを開くショート・カット
    Mac OS: コマンド・キー + M
    Windows: コントロール・キー + M

  • メッセージ・ボックスにタイプして行くと、今までメッセージ・ボックスから送った予測されるスクリプトが、グレーの文字で現れます。そのスクリプトをそっくり使いたい時は、キーボードの右矢印を叩きます。

  • メッセージ・ボックスのスクリプトをタイプする所にカーソルを入れて、上下どちらかの矢印キーを叩くと、今まで使ったスクリプトが順番に現れます。


この章で出て来た言葉

id

プロパティ(property) オブジェクトに割り当てたユニーク・ナンバー

put the id of this stack

short

キーワード(keyword) 簡略形を指し示す

put the short name of this stack

number

プロパティ(property) オブジェクトの総数、または位置 短縮形:num

put the number of cards of stack "helloWorld"
put the number of this card




02: 創造するコマンド「Create」

04: 測定と位置の設定




ⓒ 小島健治 / Kenji Kojima

 

 
この章で使われる英単語