本明細書において、コントローラとは、種々の操作を開始するためのウィンドウであり、コントローラには、台紙を生成する機能、各種素材を扱うブラウザを表示する機能などを発揮するためのアイコンが表示されている。素材中には、例えば、写真、サウンドとともに部品なども含まれる。台紙又はカプセルバインダーは、作品を作成する際の土台となるウィンドウのことである。台紙と呼ばれるウィンドウにマルチメディアコンテンツ素材や部品を張り合わせて作品を作成することができる。部品は、カプセルボタン、閉じるボタン、同時ボタンなどを含み、これら各種部品を取り出すためのウィンドウが部品箱である。ボタンは、何らかの処理を行うためのアイコンである。
以下、本発明の実施の形態について説明する前に、発明者の行った具体的な考察についてまず説明する。発明者は、スライド毎に表示の大きさや表示位置を変えたり、複数の画面から構成されるスライドを作成したりすることができれば便利であると考えた。スライドの追加やサウンドの追加の操作も、作品に対して素材を追加する際の操作を統一できれば、さらに便利である。加えて、1)既存の作品を作成中の作品の1スライドとする操作を簡単にすること、2)スライドの切り替え時間間隔をそのスライドに含まれる種々のマルチメディア素材の再生時間により調整すること、3)スライドに貼り付けたボタン部品を順序付けて実行させること、4)個々の属性を変更・取得したり、複数の属性を一括して変更・取得したりすることができるようにすること、5)日時情報によって情報を整理することができるようにすること、6)画像データ等の取り込みの際の画像の解像度を任意に決定すること、などが可能であれば便利である。
本発明に係るコンテンツ編集技術は、台紙部品の上に貼り付ける複数の部品に対して、どの順番又はどの手順で起動させるかというイベントを関連付けることができるという特徴を有している。台紙に関連付ける順序性と連続性と方向性によって、台紙部品に貼り付けられるそれぞれの部品同士に、ストーリーや、ある処理機能を持たせることができる。
次に、本実施の形態によるマルチメディア編集技術の基本概念について説明する。ここでは、本実施の形態によるコンテンツ編集技術の前提となる技術である図形を用いたオブジェクト指向プログラミングシステムの構成と基本的な動作とに関して先の出願(特開平7−152546号公報)の記載に基づいて説明する。図53は、図形を用いたオブジェクト指向プログラミングシステムの一実施例を示す全体構成図である。
本システムは、大別すると、コマンドや文字等の入力操作を行うキーボード5300と、画面上に表示された部品に対する操作を行うマウス(ポインティングデバイス)5310と、各種処理を実行する中央処理装置5320と、画面上に各種部品を表示するディスプレイ5330と、各種処理プログラムを格納したメモリ5340と、各種部品を格納している部品オブジェクトデータベース5350とから構成されている。このうち、マウス5310は、右ボタン5310aと左ボタン5310bとを備えている。
また、メモリ5340の中には、ディスプレイ5330の画面に表示される各種部品の操作を制御するオペレーティングシステム5341と、ディスプレイ5330の画面に各種部品をウィンドウとして表示するウィンドウシステム5342とが格納されている。尚、これらのシステム5341、5342は公知の技術を使用している。さらに、メモリ5340の中には、各種部品ごとに外部操作に対する挙動と画面上での表示形態とを「処理プログラム」という形式で定義した部品プログラム群5343と、部品間の結合を管理する部品管理カーネルプログラム5344とが格納されている。
また、部品オブジェクトデータベース5350には、部品として、例えば、バーメータ5351、円グラフ5352、帯グラフ5353、STOPボタン5354、日本地図5355、電卓5356、ボタン5357などが格納されている。図54(A)及び図54(B)は、各部品の基本的構造を示す図である。例えばバーメータ5351の場合において、図54(A)は表示画面上の表示形態を示しており、図54(B)はバーメータ5351の内部構造を示したものである。なお、図54において1例として、バーメータ5351について示しているが、本実施の形態で取扱うオブジェクト指向部品の基本的構造は、全て図54(B)と同様に構成されている。
図54(B)に示すように、本実施の形態で取扱う各部品は、外部操作に対する挙動を定義したコントロール部(コントローラ:C)5400と、他との結合関係を保持する保持領域と画面上での各部品の表示形態を定義する定義領域とを有する表示形態定義部(ビュー:V)5410および自己の名称および現在状態を「スロット」という形式で保持する内部機構定義部(モデル:M)5420とから構成されている。
図55は、部品の各部(M,V,C)の構成を示したものである。図53、54も参照して説明する。各部は、図示のようにプログラム形式で記述された複数の処理からなり、部品プログラム群5343の中に格納されている。図55において、コントロール部5400には、ユーザによる各部品への操作のうちマウス5310の左ボタン5310bの押下操作であるclick(x,y)5500に対する処理5500a、マウス5310の右ボタン5310aの押下操作であるright_click(x,y)5505に対する処理5505a、およびキーボード5300によるキー入力操作であるkey_in(c)5510に対する処理5510aが記述されている。
また、表示形態定義部5410に記述されている各種メッセージと、そのメッセージに対する処理は以下の通りである。
1.set(s,v)5515 :“s”で指定された「スロット」に値“v”をセットしなさいというメッセージであり、このメッセージに対する処理5515a。
2.gime(s)5520 :“s”で指定された「スロット」の値を要求するメッセージであり、このメッセージに対する処理5520a。
3.update5525 :自部品の状態が変化したことを他の部品に通知するメッセージであり、このメッセージに対する処理5525a。
4.click_action5530:自部品がクリックされた時のメッセージであり、このメッセージに対する処理5530a。
5.move_action5535 :自部品の移動操作が行われた時のメッセージであり、このメッセージに対する処理5535a。
6.move(x,y)5540 :自部品の移動操作を要求するメッセージであり、このメッセージに対する処理5540a。
7.key_in_action(c)5545:キーボード100からのキー入力操作のメッセージであり、このメッセージに対する処理5545a。
8.event(a,mx,my,e,args)5550:イベントの発生を通知するメッセージであり、このメッセージに対する処理5550a。
9.eval(e,args)5555:メッセージの評価を依頼するメッセージであり、このメッセージに対する処理5555a。
10.model_update5560:内部機構定義部5320からの変更通知メッセージであり、このメッセージに対する処理5560a。
11.redraw5565 :表示画面上の数値、メータの高さなどを再表示させるメッセージであり、このメッセージに対する処理5565a。
内部機構定義部5420には、“s”で指定された「スロット」の値をセットするメッセージであるmodel_set(s,v)5570に対する処理5570a、および“s”で指定された「スロット」の値を要求するメッセージであるmodel_gime(s)5575に対する処理5575aが記述されている。
図56は各種メッセージの流れを説明するための説明図である。図56において、1つの部品は、コントロール部5400、表示形態定義部5410、および内部機構定義部5420から構成されており、コントロール部5400は、自部品の対応する表示形態定義部5410のアドレスV5402を保持するアドレス領域5401を有している。
また、表示形態定義部5410は、自部品の対応するコントロール部5400のアドレスC5413および内部機構定義部5420のアドレスM5412を保持するアドレス領域5411、および他の部品との親子関係を保持する親子テーブル5414を有している。親子テーブル5414は、自部品の「親」「子」である部品を保持する。例えば、札幌のバーメータの場合、親部品は日本地図5355であり、アドレスは「a」であり、子部品は存在しない。さらに、表示形態定義部5410は、他の部品との結合関係情報を保持するスロット結合テーブル5425とを有している。スロット結合テーブル5425は、自スロットの名称を格納する領域5426、親スロットの名称を格納する領域5427、子部品からのメッセージであるset(s,v)5515の「ON」,「OFF」を行うsetフィールド5428やgime(s)5520の「ON」,「OFF」を行うgimeフィールド5429、および子部品に対して送るメッセージであるupdate5525の「ON」,「OFF」を行うupdateフィールド5430とから構成されている。
内部機構定義部5420は、自部品の対応する表示形態定義部5410のアドレスV5402を保持するアドレス領域5421、自部品のスロット名5423およびスロット値5424から構成されるスロットテーブル5422を有している。
以下、このような構成からなる1つの部品の動作について説明する。図56において、ユーザ5600がディスプレイ5330上で行うクリックなどの各種の操作5610を行うと、この操作5610は、まず、ウィンドウシステム5342によって検出され、その操作内容に応じてメッセージclick(x,y)5500、right_click(x,y)5505、key_in(c)5510が生成される。これらのメッセージは、ウィンドウシステム5342から部品管理カーネルプログラム5344に伝達される。
部品管理カーネルプログラム5344は、この伝達された各種操作に対応するメッセージ(click(x,y)5500、right_click(x,y)5505、およびkey_in(c)5510)を、部品のコントロール部5400に送る。コントロール部5400は、これらのメッセージを受信すると、自部品の対応する表示形態定義部5410に対し、click_action(x,y)5530、move_action(x,y)5535、およびkey_in_action(c)5545などのメッセージを送る。表示形態定義部5410は、これらのメッセージを受信すると、自部品の対応する内部機構定義部5420に対して、model_set(s,v)5570、model_gime(s)5575などのメッセージを送る。
内部機構定義部5420は、これらのメッセージの内容から、対応する処理として、表示形態定義部5410に対し、model_update5560を送り、値の変化を通知する。
以上の処理により、重ね合わせによる関連付けの処理(貼り付け処理)が行われる。尚、上記先行技術を要約すると、上記先行技術の操作対象の事物に関し、外部操作に対する挙動を定義するコントロール部と、外部操作に対する処理を定義し、その処理結果を保持する内部機構定義部と、画面上での図形による表示形態を定義し、前記内部機構定義部の処理結果を取得し、処理結果を対応付けられた他のオブジェクト指向部品に伝達し、前記表示形態の定義に従って画面上に表示させる表示形態定義部によって構成される複数のオブジェクト指向部品の処理を組み合わせてアプリケーションを構築するプログラミングシステムのプログラミング処理方法であって、a)オブジェクト指向部品を1単位の図形部品として記憶するステップ;b)画面上に図形表示されたオブジェクト指向部品を前記画面上で重ね合わせ操作によって対応付ける対応関係指示をするステップ;c)前記対応関係を記憶するステップ;d)前記対応付けられた複数のオブジェクト指向部品のいずれかに対する外部操作を検出し、そのオブジェクト指向部品のコントロール部に前記外部操作を伝達するステップ;e)前記対応関係記憶ステップに記憶された対応関係の情報に従って対応関係にある複数のオブジェクト指向部品の処理を組み合わせるステップ;を備えることを特徴とする図形を用いたオブジェクト指向プログラミングシステムのプログラミング処理方法として捉えることができる。
上記基本概念を念頭において、以下に、本発明を実施する場合の一形態について図面を参照して具体的に説明する。
図1は、本発明の実施の一形態のマルチメディアコンテンツ編集方法の構成を示すブロック図であり、図53に関連する図である。図1に示すように、本実施の形態によるコンテンツ編集システムは、中央処理装置101と、キーボード102と、表示装置(ディスプレイ)103と、マウス104と、ハードディスク(記憶装置)105とを備えるとともに、マルチメディアに対応することができるように、例えばイメージスキャナ106、デジタルカメラ107、映像キャプチャ装置108及びマイクロフォン109などの各種マルチメディア機器用のインターフェイスを備えている。中央処理装置101は、マルチメディア編集処理を行う。キーボード装置102は、文字入力を行うためのインターフェイスである。表示装置103は、グラフィックスの表示を行い、マウス104は、ポインティングデバイスである。ハードディスク105は、中央処理装置を動作させるためのプログラムや画像、映像、音声などの素材やマルチメディアコンテンツを格納する。イメージスキャナ106は、文字や画像をデジタル化してパーソナルコンピュータPCなどに取り込む。デジタルカメラ107は、画像や写真を取り込む。映像キャプチャ装置108は、動画などの映像を取り込む。マイクロフォン109は、音声情報を取り込む。
図2から図7までは、本実施の形態によるマルチメディアコンテンツ編集技術による処理を行った際の表示画面例を示す図である。本実施の形態では、マウスによるドラッグアンドドロップが操作の基本となっている。図2から図7までにおいては、ドラッグアンドドロップ操作を矢印で示す。また、本実施の形態では、複数の画面を同時に表示しているが、その1回をスライドと呼ぶ。すなわち、スライドは1以上の画面で構成される場合がある。
本実施の形態によるコンテンツ編集技術による作品は、台紙あるいはカプセルバインダーと呼ばれるウィンドウが土台となっている。このウィンドウにマルチメディアコンテンツ素材や部品を貼り合わせて作品を作る。
部品にはカプセルボタンと呼ばれるボタンがあり、カプセルボタンをクリック操作等で実行するとカプセル画面と呼ばれる別の画面が開く。このカプセル画面は台紙と同等の機能を有しており、マルチメディアコンテンツ素材や部品を貼り付けることができる。台紙とカプセル画面との相違点は、前者が作品の最下層に位置し、後者が2階層目以上の階層に位置するということである。台紙を土台として作品を作成する際に、カプセルボタンを台紙やカプセル画面に貼り付けることにより2階層以上の画面を有する作品を作成することができる。
前述のように、最下層に位置する作品の画面には、台紙の他にカプセルバインダーもある。台紙は、任意の位置にマルチメディアコンテンツ素材や部品を貼ることができる。これに対して、カプセルバインダーは升目状に区画されており、この升目内に一つ以上のボタンのみを貼ることができる。カプセルバインダーは升目上のボタンを升目に定義付けされた順序性に基づいて逐次実行する機能をもつ。カプセルバインダーの複数の升目に其々カプセルボタンを貼れば、カプセル画面を順番に開く作品を作成することができる。すなわち、ある升目から開いたスライドを1ページとしてみると、複数ページを順番に表示する作品を作成できる。
このように、台紙、カプセルバインダー、カプセルボタンを貼りかえることにより、作品の画面の構成を自由に組替えることができる。
次に、より詳細な処理について説明する。図2を参照して、台紙・カプセル画面へのマルチメディアコンテンツ素材や部品の貼り合わせ方法について説明する。
符号201で示されるウィンドウは、コントローラである。このコントローラ201から、本実施の形態によるコンテンツの編集処理のための操作がスタートする。コントローラ201は、台紙を生成する機能や各種素材を扱うブラウザを表示する機能などがあり、台紙アイコン201aと、写真アイコン201bと、ぶひん(部品)アイコン201cと、サウンドアイコン201dとを含む各種アイコンが表示されている。
これらの各種アイコンをクリックすると、写真のサムネイルにより表示される写真アイコン202aを表示する写真ブラウザ画面202と、サウンドアイコン203aを表示するサウンドブラウザ画面203と、部品箱画面204と、ビデオブラウザ画面209と、のそれぞれが表示される。部品箱画面204は、カプセルボタン204aと、テキスト204bと、とじるボタン204cと、ホームページリンクボタン204dと、同時ボタン204eと、連結部品である矢印ボタン204fとが含まれている。
写真ブラウザ画面202のスキャナボタン202bをクリックすると、イメージスキャナ画面207が表示され、例えばその中のプレビューボタン207aをクリックすると実際のプレビュー画面207bが表示される。サウンドブラウザ203の記録ボタン203bをクリックすると、サウンドに関する種々の設定ができ、音声を録音し、録音したサウンドを取り込むためサウンドレコーダ205が表示され、再生、停止205b、録音205aが可能になる。
部品箱204のカプセルボタン204aを台紙206上の所定の位置にドラッグアンドドロップし、サウンドボタン203aを同じ場所にドラッグアンドドロイップすると、サウンドボタンとカプセルボタンとが重ねられる。カプセル画面208が表示されると、例えばドラッグアンドドロップによりイメージスキャナ画面207のプレビュー207bを表示させることができ、さらに部品箱204のテキストボタン204bによりテキストのデータを、とじるボタン204cにより閉じるアイコンを表示させることができる。サウンドボタンとカプセルボタンとが重ねられると、カプセル画面208が表示されるのと同時に音がでる。
図2に示す台紙1枚とカプセル画面1枚とからなる作品を製作する手順は例えば以下の通りである。
(1)コントローラ201の台紙アイコン201aを画面にドラッグアンドドロップし、台紙206を表示させる。
(2)コントローラ201の写真アイコン201bをドラッグアンドドロップし、写真ブラウザ202を表示させる。
(3)写真ブラウザ202から、八百屋の店先の写真を台紙206上にドラッグアンドドロップし、貼り付ける。
(4)コントローラ201の部品アイコン201cをドラッグアンドドロップし、部品箱204を開く。
(5)部品箱204からカプセルボタン204aを台紙206の写真の梨の上にドラッグアンドドロップし、貼り付ける。
(6)(5)で貼り付けたカプセルボタンを開き、カプセル画面208を表示する。
(7)写真ブラウザ202からスキャナアイコン202bをドラッグアンドドロップし、イメージスキャナ画面207を表示する。
(8)イメージスキャナ画面207のプレビューボタン207aをクリックし、イメージスキャナに設定中の梨の写真のサムネイル207bをプレビュー欄に表示する。
(9)イメージスキャナ画面207のプレビュー欄のサムネイル上に表示された矩形をマウスドラッグによって取り込み範囲を確定する。
(10)(9)で指定した矩形をカプセル画面208上にドラッグアンドドロップし、イメージスキャナから梨の写真を取り込み、カプセル画面208上にドラッグアンドドロップし、貼り付ける。
(11)部品箱204からテキスト部品204bをカプセル画面208上にドラッグアンドドロップして貼り付け、中に「梨のクローズアップ」と入力する。
(12)部品箱204からテキスト部品204bを台紙206上にドラッグアンドドロップして貼り付け、中に「八百屋について調べたこと」と入力する。
(13)部品箱204からとじるボタン204cをカプセル画面208上にドラッグアンドドロップし貼り付ける。
(14)コントローラ201のサウンドアイコン201dをドラッグアンドドロップし、サウンドブラウザ203を表示する。
(15)サウンドブラウザ203から梨の説明の音声アイコン203aを上記(5)において貼り付けたカプセルボタン上にドラッグアンドドロップすることで、サウンドボタンを生成し貼り付ける。
(16)サウンドブラウザ203からきろくアイコン203bをドラッグアンドドロップし、サウンドレコーダー205を表示する。
(17)サウンドレコーダー205の録音ボタンをクリックし、接続しているマイクロフォンから「このみかんは愛媛産です。」という音声を入力する。
(18)サウンドレコーダー205の停止ボタン205bをクリックし、録音を停止する。この契機に、サウンドレコーダー205に上記(17)と(18)の操作で録音した音声を再生するサウンドボタンが自動生成される。
(19)(18)で生成されたサウンドボタンを(3)で貼ったみかんの写真上にドラッグアンドドロップし、貼り付ける。
(20)部品箱204からホームページリンクボタン204dを(3)で貼った写真のりんごの上にドラッグアンドドロップし、貼り付ける。
(21)(20)で貼ったホームページリンクボタン204dにリンク先としてりんごの産地の様子を掲載しているホームページのURLを指定する。
以上に処理により、台紙1枚とカプセル画面1枚とを関連付けした作品が完成する。例えば、梨の上のボタンをクリックすると音声による梨の解説とともに梨の写真のカプセル画面208が開く。開いた梨の画面の閉じるボタンをクリックすると、カプセル画面208を閉じることができる。また、りんごの上のボタンをクリックするとWWWブラウザが起動し、リンク先のホームページが表示される。また、みかんの上のボタンをクリックすると、上記(17)の処理において入力した音声が再生される。
(8)の処理においては、ドラッグアンドドロップ操作により、取り込む画像の大きさの決定及び取り込み及びその画像を表示した写真の生成を一度に行うことができる。取り込む画像の大きさは、ドロップ先の台紙の大きさに応じた大きさにすることができる。サムネイルを直接作品へ貼り付けることも可能であり、ファイルに保存する操作を必要としない。従って、編集者は画像の大きさや保存ファイルを意識せずに写真を取り込むことができる。
次に、図3及び図4を参照して、台紙・カプセル画面上のボタンの実行順序の指定方法ついて説明する。図3及び図4に示す作品を自動再生モードで起動すると作品上に貼られたボタンが自動的に実行される。
台紙・カプセル画面上のボタン実行順序を規定する方法には(ア)から(ウ)までの4つの方法がある。(ア)個々に外延的指定する方法。(イ)ボタンが内包するラベル値によってソートした順番とする方法。(ウ)矢印部品などにより指定した順番とする方法、(エ)台紙に設けられたそれぞれの升目に処理の実行順序を属性として持たせ、これにボタン部品を貼り付けることにより順番を指定する方法。
ここで、(ア)を外延的に付与した順モード、(イ)をラベル順モード、(ウ)を矢印部品による指定順モード、(エ)升目による順モードと称することにする。台紙・カプセル画面に対して、上記のいずれかのモードを指定することができる。
図3は、台紙301上に4つのカプセルボタンを貼った作品を表示している。
実際には、月の満ちかけの様子を表した作品である。月の上のカプセルボタン(1から4まで)をクリックすると、月の見え方の例を表したカプセル画面が拡大表示される。この4つのカプセルボタンを、例えば太陽から近い順に実行させたい場合には、上記(ア)の方法により順番を規定することができる。規定する際の操作手順を以下に説明する。
(1)台紙301から外延的に付与した順モードを起動する。(2)1日目と書いてあるボタンをクリックする。(3)3日目と書いてあるボタンをクリックする。(4)7日目と書いてあるボタンをクリックする。(5)14日目と書いてあるボタンをクリックする。以上で処理が完了する。
(1)において外延的に指定するモードが起動すると、クリック操作が順番の指定操作となる。(2)から(5)までにおいては、実行したい順にボタンをクリックする。順番が付与されたボタンには順番を番号で表示したタグが表示される。
ボタン以外をクリックするとこのモードを終了させることができる。順番が付与されなかったボタンは、画面左上に近い順にソートされ、順番の最後尾に並ぶ。
図3に示す例は、太陽から近い順に操作を実行する場合の例であるが、(ア)の方法の以外に、以下に説明する(イ)の方法を用いて順番を規定することもできる。
4つのボタンはラベルを表示している。(イ)はボタンの実行順序をラベルの文字列をキーとして文字コード順ソートした順番としている。ラベルの内容は「1日目」、「3日目」、「7日目」、「14日目」である。4つのボタンのラベルをソートすると、「1日目」、「3日目」、「7日目」、「14日目」の順になり、この順番でボタンが実行されることになる。
図4は、矢印部品(連結部品)を用いて2つのボタン間における実行順序を規定した作品例を示す図である。この作品例を参照して、(ウ)の実行順序の指定方法及び実行時間間隔の指定方法について説明する。
台紙401上には2つのカプセルボタン401a、401bと、矢印部品401cとが貼り付けられており、2つのカプセルボタン401aと401bとの間に矢印部品401cが貼られている。矢印部品401cは、カプセルボタンと同様に、部品箱402からドラッグアンドドロップにより生成することができる。
台紙401上の矢印部品401cは、両端に配置されている2つのカプセルボタン401a、401bに対して順次イベントを伝達する機能を有している。
矢印の形状自体が方向を表しており、その方向が示す順序でボタン部品の処理が実行される。すなわち、矢印部品401cは始点と終点とを有しており、始点付近に位置するボタン、終点付近に位置するボタンの順に実行する。よって、最初に実行させたいボタンを矢印部品401cの始点付近に、次に実行させたいボタンを終点付近に配置させればよい。
図4に示す作品の場合、「7月7日」というラベルのボタン401a、「7月14日」というラベルのボタン401bの順に処理が実行される。この矢印部品401cは、2つのボタン401a、401bの実行間隔の時間情報、すなわち、始点付近のボタンを実行してから終点付近のボタンを実行するまでの時間間隔情報を内包していても良い。この時間間隔情報を、矢印部品401cから開いた実行間隔指定画面403において数値を入力することにより指定することができる。
図5は、作品上のオブジェクトに対して、色、フォント、枠の属性を変更する様子を表す図である。図5に示すように、属性変更設定画面502は、オブジェクトの背景色属性や文字属性や枠属性を変更するため画面である。背景色設定ボタン502a、文字サイズ、フォント、文字のスタイル、文字の色などの文字属性設定ボタン502bと、枠の太さ、スタイル、色などの枠属性を設定するための枠属性設定ボタン502cと、が表示されている。これらのボタンには、現在指定中のカレント属性値が表示されている。そのカレント属性値を、それぞれのボタンの右横に設置されている逆三角印のボタンから開くメニュー・ダイアログによって変更することが可能である。また、これらの属性を設定するためのボタンは、背景色属性、文字属性、枠属性ごとの組で線によって囲まれている。それらの、線で囲まれた図形を、さらに別の線が外側から囲んでおり、階層的に分類された表示となっていることがわかる。
ある一つの属性を変更するには、編集中の画面にある変更対象のオブジェクトを選択状態にして、属性変更設定画面502中の目的の属性のボタンをクリックするか、或いは、属性変更設定画面502の目的の属性のボタンを変更対象のオブジェクトへドラッグアンドドロップする。また、文字サイズ、フォント、文字のスタイル、文字の色などの関連する属性を組とした複数の属性群や全ての属性を一括して変更することも可能である。その場合には、属性のボタンを囲んだ図形を、変更対象のオブジェクトにドラッグアンドドロップする。
例えば、台紙画面503上の下端にあるテキスト素材のオブジェクト503aに、属性変更設定画面502で指定されている文字サイズ、フォント、文字のスタイル、文字の色といった文字属性を一括で設定する操作方法は、次の通りである。
(1)コントローラ501の「色・フォント・枠」アイコン501aをドラッグアンドドロップし、属性変更設定画面502を表示する。(2)属性変更設定画面502で、変更したい文字サイズ、フォント、文字のスタイル、文字の色などの文字属性をそれぞれ指定する。(3)属性変更設定画面502上の文字属性のボタンを囲んでいる図形を、台紙画面503の下端にあるテキスト素材のオブジェクト503aにドラッグアンドドロップする。
同様の操作により、全ての属性、すなわち背景色と文字属性と枠属性とを一括で設定することもできる。その場合は、上記の手順(3)において、属性変更設定画面502上の背景色502aと文字属性502bと枠属性502cとを囲んだ図形を、対象のオブジェクトにドラッグアンドドロップすればよい。属性変更設定画面502のカレント属性値を指定するには、メニュー・ダイアログで指定できることを説明した。この操作以外に、編集中の画面にあるオブジェクトの属性変更設定画面502へのドラッグアンドドロップ操作でカレント属性値を指定する方法もある。この場合は、1つの属性を指定する操作の他に、複数の属性を一括で指定する操作も可能である。1つの属性を指定する場合は、指定したい属性値を有する作品上のオブジェクトを、属性変更設定画面502上の目的とする属性ボタンにドラッグアンドドロップする。一方、複数の属性、例えば、全ての文字属性を一括して指定する場合は、属性変更設定画面502上の文字属性を囲んでいる図形へ作品上のオブジェクトをドラッグアンドドロップする。全ての属性すなわち背景色と文字属性と枠属性とを一括で指定する場合は、属性変更設定画面502上の背景色、文字属性、枠属性をそれぞれ囲んだ図形502a、502b、502cへ作品上のオブジェクトをドラッグアンドドロップする。
次に、図6を参照して、カプセルバインダーへのボタンの貼り合わせ方法及びカプセルバインダー上のボタンの実行間隔指定方法について説明する。上述の通り、カプセルバインダー602を用いることにより、順番にスライドを表示する作品を作成することができる。順番にスライドを表示する仕組みは次の通りである。
カプセルバインダー602は、升目状、例えば正方格子状に仕切られており、それぞれの升目には例えば番号が付与されている。この番号が付与された升目にボタン部品を貼り付けることにより、部品の実行順序が規定される。カプセルバインダー602のそれぞれの升目にはイベント伝達用のスロットが存在する。またそれぞれの升目には上述のように順番が付与されており、その順番は升目の位置により規定されている。自動再生のモードが起動されると、カプセルバインダー602は、この規定された順番に従って升目に対して逐次イベントを伝達する。この結果、升目上に貼られたボタン部品に対してイベントが伝達され、それを受信したボタンはそれぞれの処理を実行する。
別の画面を開く機能を有するカプセルボタンやホームページリンクボタンを升目に貼りつけると、順番にスライドが表示される作品となる。また、同一升目内には1つ以上のボタン部品を貼ることが可能であり、カプセルバインダーが升目に対してイベントを伝達する際には、同一升目内に貼られた1つ以上のボタン部品に対して同時にイベントを伝達する。これを受けた同一升目内のボタン部品は同時に動作する。従って、同一升目内に貼られた一つ以上のボタンから開く画面を、同一スライドの構成要素とすることができる。
図6はカプセルバインダーの作品であるが、この作品を作る手順は例えば以下の通りである。
(1)コントローラ601のカプセルバインダーアイコン601bをドラッグアンドドロップし、カプセルバインダー602を生成する。(2)コントローラ601の部品アイコン601cをドラッグアンドドロップし、部品箱606を開く。(3)部品箱606からカプセルボタン606aをカプセルバインダー602の1番目の升目上にドラッグアンドドロップし、貼り付ける。(4)(3)において貼り付けたカプセルボタンを開き、カプセル画面603を表示する。(5)部品箱606からテキスト部品606bをカプセル画面603上にドラッグアンドドロップして貼り付け、「果物について調べたこと」と入力する。(6)コントローラ601のサウンドアイコン601aをドラッグアンドドロップし、サウンドブラウザ604を表示する。(7)サウンドブラウザ604から効果音の音声アイコンをカプセルバインダー602の1番目の升目上にドラッグアンドドロップすることにより、サウンドボタンを生成し貼り付ける。(8)部品箱606からホームページリンクボタン606eをカプセルバインダー602の2番目の升目上にドラッグアンドドロップし貼り付ける。(9)(8)で貼ったホームページリンクボタン606eにリンク先として「みかん」について解説したホームページのURLを入力する。(10)部品箱606からカプセルボタンをカプセルバインダー602の2番目の升目上にドラッグアンドドロップし、貼り付ける。(11)(10)で貼り付けたカプセルボタンを開き、カプセル画面608を表示する。(12)部品箱606からテキスト部品606bをカプセル画面608上にドラッグアンドドロップして貼り付け、「みかんについて調べたこと」と入力する。(13)引出し607中の「りんごの解説」という作品アイコン607aをカプセルバインダー602の3番目の升目上にドラッグアンドドロップする。
カプセルバインダー602の1番目の升目にはカプセルボタン606aとサウンドボタン601aとが、2番目の升目にはホームページリンクボタン606eとカプセルボタン606aとが、3番目の升目にはカプセルボタン606aが貼られている。1番目の升目からは1枚のカプセル画面からなるスライド、2番目の升目からはカプセル画面とWWWブラウザ画面から構成されるスライド、3番目の升目からは1枚のカプセル画面からなるスライドが開く、3つのスライドからなる作品が完成する。1番目のスライドが開くと同時に音声が再生される。
既存の作品を別の作品から開くカプセル画面としてドラッグアンドドロップ操作によって挿入することもできる。例えば、上記の(13)の処理においては、引き出しに格納してある「りんごの解説」という作品を升目上にドラッグアンドドロップし、ドロップ先の升目上に「りんごの解説」の作品画面を内包するカプセルボタンを生成する。このカプセルボタンをクリックすると、「りんごの解説」画面が開く。
自動再生モードで起動した際の現在の升目から次の升目へのイベントの伝達間隔、すなわち、現在のスライドを表示してから次のスライドを表示するまでの時間間隔を、カプセルバインダー毎に数値で指定することができるが、各スライド中に、動画又はサウンドが入っていた場合であって、その再生時間がその指定した数値の時間より長い場合には、その再生時間まで切り替え時間が延長される。
切り替え時間を升目上に貼られているカプセルボタンが内包するサウンドや動画の再生時間とすることができる。その結果、スライドの切り替えによって、サウンドや動画の再生が中断されてしまうことを回避できる。図6の作品において、升目に対するイベントの伝達間隔を3秒とし、1番目の升目のサウンドの再生時間を10秒とすると、2番目のスライドに切り替わる時間は10秒となり、3番目のスライドに切り替わる時間が3秒となる。
スライドの表示順を変更する場合の操作として、スライドの構成要素(カプセルボタンなど)を他の升目に移動する場合の操作と、升目ごと移動する操作がある。前者は、台紙上と同様で、構成要素をつかんでドラッグし、移動先の升目上でドロップする。後者は、升目をつかんでドラッグし、移動先でドロップする。
このときカプセルバインダーは升目に対する操作であるか、あるいはボタンに対する操作であるかをドラッグ開始位置によって判断している。
次に、図7を参照して、カプセルバインダーの機能を拡張したカレンダーカプセルバインダーにおけるボタンの実行順序及び、実行対象の指定方法について説明する。
図7に示すように、カレンダーカプセルバインダー701は、カプセルバインダーに暦情報を追加したものである。カレンダーカプセルバインダー701の「年月設定」ボタン701aから開いたダイアログで年月情報を入力すると、各升目に日付が対応付けされ、その日付が各升目に表示される。自動再生モードの起動によって升目上のボタンを自動実行する際に、実行対象となるボタンを自動実行対象ボタン設定画面702で絞り込むことができる。自動実行対象ボタン設定画面702では、条件として特定の曜日が指定されており、その結果、4列目のボタンが自動実行の対象となる。4列目のボタンの中での実行順序は日付順となる。図に示すように、2002年7月のそれぞれの日付にどのように月が満ち欠けするかについて簡単に表示できる。7月3日をクリックすると、7月3日の月の様子703が効果音とともに表示される。7月10日をクリックすると、7月10日の月の様子704が、7月24日をクリックすると7月24日の月の様子705がコメントなどとともに表示される。
図8はスロットと呼ばれる部品間の通信チャネルを示す図である。本実施の形態においては、ボタン部品をクリックするマウスイベントを受けて、他のボタン部品や台紙・カプセル画面やカプセルバインダー画面を動作させる仕組みとして、スロットという概念が導入されている。スロットは、ボタン部品と台紙・カプセル画面、ボタン部品とカプセルバインダー、ボタン部品とボタン部品などの他部品間の通信のチャネルである。異なる機能を有する複数の種類のスロットがあり、それぞれに名前が付けられている。
例えば、カプセルボタンのオープンスロットはクリックのマウスイベントを受けると、自分のオープンスロットにそのイベントがあったことを伝える。このときサウンドボタンが重ねて貼ってあった場合、サウンドボタンのプレイスロットとオープンスロットとは結合されており、カプセルボタンに伝えられたイベントはサウンドボタンのプレイスロットにも伝えられ規定のサウンドを再生する。
各部品と、それに付されているスロットの名前およびそのスロットにイベントが来たときの動作が図8に示されている。部品の中で○○ボタンというように語尾が「ボタン」で終わる部品は、マウスのクリックイベントを受けて自分のスロットにそのイベントを伝える部品である。
図9は本実施の形態のメインの処理の流れを示すフローチャート図である。処理をスタートすると、まずステップ901でコントローラを表示する。ステップ902で操作入力をすると、ステップ903で、どのウィンドウ上での操作であったかを判定し分岐する。ステップ904で、コントローラ上の操作を処理し、その結果が終了操作であった場合はステップ905で終了か否かを判定し、終了であれば全体の処理を終了する。終了でない場合はステップ902に戻る。
ステップ903の判定結果が引き出し内の操作であった場合は、ステップ906へ、写真ブラウザ上の操作であった場合はステップ907へ、ビデオブラウザ上の操作であった場合はステップ909へ、サウンドブラウザ上の操作であった場合はステップ908へ、台紙・カプセル画面上の操作であった場合はステップ910へ、カプセルバインダー上の操作であった場合はステップ911へ、属性変更設定画面上の操作であった場合はステップ912へ、イメージスキャナ画面上の操作であった場合はステップ913へ、部品箱上の操作であった場合はステップ915へそれぞれ分岐する。それぞれの操作終了後に再びステップ902に戻る。
図10は、コントローラ上の操作の処理904の流れを示すフローチャート図である。ステップ1001で操作の判定をし、終了操作であった場合は「終了」の値を返す。ステップ1001の判定結果が台紙の生成であった場合はステップ1002へ分岐し、マウスリリース位置を左上角として台紙を生成する。カプセルバインダーの生成であった場合はステップ1003へ分岐しマウスリリース位置を左上角としてカプセルバインダーを生成する。
引き出しの表示だった場合は、ステップ1004へ分岐しマウスリリース位置を左上角として引出しを表示する。写真ブラウザの表示であった場合はステップ1005へ分岐し、マウスリリース位置を左上角として写真ブラウザを表示する。サウンドブラウザの表示であった場合はステップ1006へ分岐し、マウスリリース位置を左上角としてサウンドブラウザを表示する。ビデオブラウザの表示であった場合はステップ1007へ分岐し、マウスリリース位置を左上角としてビデオブラウザを表示する。部品箱の表示であった場合は、ステップ1008へ分岐し、マウスリリース位置を左上角として部品箱を表示する。
属性設定道具画面の表示であった場合はステップ1009へ分岐し、マウスリリース位置を左上角として属性設定道具画面を表示する。ためすモードへの切り替えであった場合はステップ1010へ分岐し、モードを試すモードへ切り替える。作るモードへの切り替えであった場合はステップ1011へ分岐し、モードを作るモードへ切り替える。それぞれの操作終了後リターンする(図9のステップ902に戻る)。
次に、図11を参照して、部品箱上の操作について説明する。適宜図1、図2も参照する。図11は、部品箱内の操作の流れ(915)を示すフローチャート図である。図11に示すように、まず、ステップ1101において、マウス104のプレス位置を判定し、カプセル部品上であった場合には、ステップ1102において、変数「部品」にカプセル部品をドラッグアンドドロップ操作によりセット(変数の値を代入)する。マウスのプレス位置が閉じるボタン204c上だった場合、ステップ1103で変数「部品」に閉じるボタンをセットする。マウス104のプレス位置が同時ボタン204e上だった場合、ステップ1104において変数「部品」に同時ボタン204eをセットする。マウス104のプレス位置がホームページリンクボタン204d上であった場合、ステップ1105において変数「部品」にホームページリンクボタン204dをセットする。マウス104のプレス位置が矢印204f上であった場合、ステップ1106で変数「部品」に矢印部品をセットする。マウス104のプレス位置がテキスト部品204b上であった場合は、ステップ1107において変数「部品」にテキスト部品をセットする。マウス104のプレス位置がその他の場合、リターンする。
「部品」変数に値がセットされた場合、ステップ1108でマウスイベントがドラッグアンドドロップか否かを判定し、ドラッグアンドドロップであった場合には、ステップ1109に、そうでなかった場合にはリターンする。ステップ1109ではドロップ位置が台紙・カプセル画面上であるか、或いは、カプセルバインダー上であるかを判定し、ドロップ位置が台紙・カプセル画面上であった場合はステップ1110へ、カプセルバインダー上であった場合はステップ1111へ、いずれでもなかった場合にはリターンする。
ステップ1111では、カプセルバインダー上において、変数「部品」がカプセルボタンかあるいはホームページリンクボタンであるかを判断し、そうであった場合はステップ1112へ、そうでなかった場合はリターンする。ステップ1110では、変数「部品」を引数として台紙・カプセル画面における部品生成手続きをコールした後リターンする。
ステップ1112では、変数「部品」を引数としてカプセルバインダーにおける部品生成手続きをコールした後リターンする。
次に、台紙・カプセル画面上における部品生成の処理について図12を参照して説明する。適宜図1、図2も参照する。図12に示すように、台紙・カプセル画面上における部品生成の処理(910)の流れを示すフローチャート図である。図12に示すように、ステップ1201において、マウスリリース位置を左上角として引数の部品を生成する。ステップ1202において、引数の部品がテキスト204bまたは矢印204fであるか、または貼り付け先がテキストまたは写真または矢印であるかを判定し、そうでなかった場合はステップ1203へ進み、そうであった場合はリターンする。
ステップ1203においては引数の部品によって分岐する。部品が閉じるボタン204cであった場合、ステップ1204に進み、貼り付け先がカプセルボタンまたは閉じるボタンまたは同時ボタンまたはホームページリンクボタンまたはサウンドボタンまたは台紙・カプセル画面のいずれかであればステップ1205で閉じるボタンのスロット結合手続きを部品を引数としてコールする。
部品がカプセルボタン204aであった場合、ステップ1206において貼り付け先がカプセルボタンまたは閉じるボタンまたは同時ボタンまたはホームページリンクボタンまたはサウンドボタンであればステップ1207においてカプセルボタンのスロット結合手続きを、部品を引数としてコールする。部品が同時ボタン204eであった場合は、ステップ1208において、貼り付け先がカプセルボタンまたは閉じるボタンまたは同時ボタンまたはホームページリンクボタンまたはサウンドボタンであれば、ステップ1209において同時ボタンのスロット結合手続きを、部品を引数としてコールする。
部品がサウンドボタン201dであった場合は、ステップ1210において、貼り付け先がカプセルボタンまたは閉じるボタンまたは同時ボタンまたはホームページリンクボタンまたはサウンドボタンであれば、ステップ1211においてサウンドボタンのスロット結合手続きを、部品を引数としてコールする。部品がホームページリンクボタン204dであった場合は、ステップ1212において貼り付け先がカプセルボタンまたは閉じるボタンまたは同時ボタンまたはホームページリンクボタンまたはサウンドボタンであれば、ステップ1213において、ホームページリンクボタン204dのスロット結合手続きを、部品を引数としてコールする。以上の処理が終了した後にリターンする。
次に、部品生成の処理について図面を参照して説明する。図13は、カプセルバインダー上における部品生成の処理911の流れを示すフローチャート図である。図1、2も参照して説明する。図13に示すように、ステップ1301において、マウスリリース位置が升目上であるか否かを判定し、マウスリリース位置が升目上である場合は、ステップ1302へ進み、マウスリリース位置が升目上でない場合はリターンする。ステップ1302において、引数の部品がカプセルボタン204aまたはホームページリンクボタン204dまたはサウンドボタン201dであるかを判定し、これらのいずれかであった場合はステップ1303に進み、そうでなかった場合はリターンする。
ステップ1303で引数の部品をマウスリリース位置の升目上に生成する。ステップ1304において引数の部品によって分岐する。部品がカプセルボタン204aであった場合、ステップ1305でカプセルボタン204aのスロット結合手続きを、部品を引数としてコールする。部品がホームページリンクボタン204dであった場合、ステップ1306において、ホームページリンクボタン204dのスロット結合手続きを、部品を引数としてコールする。部品がサウンドボタン201dであった場合、ステップ1307においてサウンドボタン201dのスロット結合手続きを、部品を引数としてコールする。以上の処理の後リターンする。
次に、カプセルボタンのスロット結合処理について図面を参照して説明する。
図14は、カプセルボタンのスロット結合処理1305の流れを示すフローチャート図である。適宜図1、2を参照する。図14に示すように、ステップ1401において貼り付け先を判定し、貼り付け先がホームページリンクボタン204dであった場合は、ステップ1402において引数のカプセルボタン204aのオープンスロットを貼り付け先のホームページリンクボタン204dのブラウザオープンスロットと結合する。貼り付け先が閉じるボタン204cであった場合は、ステップ1403において、引数のカプセルボタン204aのオープンスロットを、貼り付け先の閉じるボタンのイベント伝達スロットと結合する。貼り付け先がカプセルボタン204aであった場合は、ステップ1404で引数のカプセルボタン204aのオープンスロットを貼り付け先のカプセルボタンのオープンスロットと結合する。貼り付け先が同時ボタン204eであった場合は、ステップ1405で引数のカプセルボタンのオープンスロットを貼り付け先の同時ボタンのイベント伝達スロットと結合する。貼り付け先がサウンドボタン201dであった場合は、ステップ1406において引数のカプセルボタン204aのオープンスロットを貼り付け先のサウンドボタン201dのプレイスロットと結合する。貼り付け先がカプセルバインダー602(図6)の升目であった場合は、ステップ1407において引数のカプセルボタンのオープンスロットを貼り付け先のカプセルバインダー602の升目のイベント伝達スロットと結合する。以上の処理の後にリターンする。
次に、閉じるボタンのスロット結合処理1205について図面を参照して説明する。適宜図1、2を参照して説明する。図15は、閉じるボタンのスロット結合処理の流れを表すフローチャート図である。図15に示すように、ステップ1501において貼り付け先を判定し、貼り付け先がカプセルボタン204aであった場合は、ステップ1502で引数の閉じるボタンのイベント伝達スロットを貼り付け先のカプセルボタン204aのオープンスロットと結合する。貼り付け先が閉じるボタン204cであった場合は、ステップ1503において引数の閉じるボタンのイベント伝達スロットを貼り付け先の閉じるボタンのイベント伝達スロットと結合する。貼り付け先がホームページリンクボタン204dであった場合は、ステップ1504で引数の閉じるボタンのイベント伝達スロットを貼り付け先のホームページリンクボタンのブラウザオープンスロットと結合する。貼り付け先が同時ボタン204eであった場合は、ステップ1505で引数の閉じるボタンのイベント伝達スロットを貼り付け先の同時ボタンのイベント伝達スロットと結合する。貼り付け先がサウンドボタン201dであった場合は、ステップ1506で引数の閉じるボタンのイベント伝達スロットを貼り付け先のサウンドボタンのプレイスロットと結合する。貼り付け先が台紙206・カプセル画面208であった場合は、ステップ1507において引数の閉じるボタン204cのイベント伝達スロットを貼り付け先の台紙・カプセル画面のクローズンスロットと結合する。以上の処理の後リターンする。
次に、ホームページリンクボタンのスロット結合処理について図面を参照して説明する。適宜図1、2を参照する。図16は、ホームページリンクボタンのスロット結合処理の流れを示すフローチャート図である。図16に示すように、ステップ1601で貼り付け先を判定し、貼り付け先がカプセルボタン204aであった場合は、ステップ1602において引数のホームページリンクボタン204dのブラウザオープンスロットを貼り付け先のカプセルボタンのオープンスロットと結合する。貼り付け先が閉じるボタン204cであった場合は、ステップ1603で引数のホームページリンクボタン204dのブラウザオープンスロットを貼り付け先の閉じるボタン204cのイベント伝達スロットと結合する。貼り付け先がホームページリンクボタン204dであった場合は、ステップ1604で引数のホームページリンクボタン204dのブラウザオープンスロットを貼り付け先のホームページボタンのブラウザオープンスロットと結合する。貼り付け先が同時ボタン204eであった場合は、ステップ1605で引数のホームページリンクボタンのブラウザオープンスロットを貼り付け先の同時ボタン204eのイベント伝達スロットと結合する。貼り付け先がサウンドボタン201dであった場合はステップ1606で引数のホームページリンクボタン204dのブラウザオープンスロットを貼り付け先のサウンドボタンのプレイスロットと結合する。貼り付け先がカプセルバインダー602(図6)の升目であった場合は、ステップ1607で引数のホームページリンクボタン204dのブラウザオープンスロットを貼り付け先のカプセルバインダー602の升目のイベント伝達スロットと結合する。以上の処理の後リターンする。
次に、サウンドボタンのスロット結合処理について図面を参照して説明する。
図17はサウンドボタンのスロット結合処理の流れを示すフローチャート図である。適宜図1、2を参照して説明する。図17に示すように、ステップ1701で貼り付け先を判定し、貼り付け先がカプセルボタンであった場合は、ステップ1702で引数のサウンドボタン201dのプレイスロットを貼り付け先のカプセルボタンのオープンスロットと結合する。貼り付け先が閉じるボタン204cであった場合は、ステップ1703で引数のサウンドボタン201dのプレイスロットを貼り付け先の閉じるボタン204cのイベント伝達スロットと結合する。貼り付け先がホームページリンクボタン204dであった場合は、ステップ1704で引数のサウンドボタン201dのプレイスロットを貼り付け先のホームページボタン204dのブラウザオープンスロットと結合する。貼り付け先が同時ボタンであった場合は、ステップ1705で引数のサウンドボタンのプレイスロットを貼り付け先の同時ボタンのイベント伝達スロットと結合する。貼り付け先がサウンドボタン201dであった場合は、ステップ1706で引数のサウンドボタン201dのプレイスロットを貼り付け先のサウンドボタン201dのプレイスロットと結合する。貼り付け先がカプセルバインダー602(図6)の升目であった場合は、ステップ1707で引数のサウンドボタンのプレイスロットを貼り付け先のカプセルバインダー602の升目のイベント伝達スロットと結合する。以上の処理の後リターンする。
次に、同時ボタンのスロット結合処理について図面を参照して説明する。図18は、同時ボタンのスロット結合処理の流れを示すフローチャート図である。図1、2も参照して説明する。ステップ1801で貼り付け先を判定し、貼り付け先がカプセルボタンであった場合は、ステップ1802で引数の同時ボタン204eのイベント伝達スロットを貼り付け先のカプセルボタンのオープンスロットと結合する。貼り付け先が閉じるボタン204cであった場合は、ステップ1803で引数の同時ボタン204eのイベント伝達スロットを貼り付け先の閉じるボタン204cのイベント伝達スロットと結合する。貼り付け先がホームページリンクボタン204dであった場合は、ステップ1804で引数の同時ボタン204eのイベント伝達スロットを貼り付け先のホームページリンクボタンのブラウザオープンスロットと結合する。貼り付け先がサウンドボタン201dであった場合は、ステップ1805で引数の同時ボタン204eのイベント伝達スロットを貼り付け先のサウンドボタン201dのプレイスロットと結合する。貼り付け先が同時ボタン204eであった場合は、ステップ1806において引数の同時ボタン204eのイベント伝達スロットを貼り付け先の同時ボタン204eのイベント伝達スロットと結合する。以上の処理の後リターンする。
次に、台紙・カプセル画面上の操作の処理910について説明する。図19は台紙・カプセル画面上の操作の処理の流れを示すフローチャート図である。適宜、図1、2を参照して説明する。図19に示すように、台紙・カプセル画面上の操作はモードが「自動再生モード」、「作るモード」、「試すモード」のいずれのモードかによって大きく異なる。「自動再生モード」は作品を鑑賞するモードである。このモードが起動されると台紙・カプセル画面上のボタンが自動的に実行される。「作るモード」は作品を編集するモードである。このモードではカプセルボタン、サウンドボタン、閉じるボタン、同時ボタン、ホームページリンクがボタンとして動作しない。すなわち、マウスの左クリックイベントで図8に示す所定の機能を実行することなく部品が選択状態となるのみである。「試すモード」はコンテンツの実行モードである。このモードではボタン類の部品が本来のボタンとしての機能を実行することとなる。
図19に示すように、ステップ1901で操作を判定し、自動再生開始操作であった場合はステップ1905へ分岐し、自動再生終了操作であった場合はステップ1914に分岐し、その他の操作であった場合はステップ1902に分岐する。ステップ1905においてモードが自動再生モードであるか否かを判定し、自動再生モードでなかった場合はステップ1906においてモードを自動再生モードに切り替え、ステップ1907において現在操作中の台紙・カプセル画面を引数として台紙・カプセル画面上での自動再生手続きをコールしリターンする。
ステップ1905の判定において自動再生モードであった場合は、何もせずにリターンする。ステップ1914においてモードが自動再生モードであるか判定し、自動再生モードであった場合は、ステップ1915に進み、自動再生モードでなかった場合はリターンする。ステップ1915において自動再生を終了する。
ステップ1916において自動再生モードを解除し、コントローラで設定されているモードに切り替えてリターンする。
ステップ1902においてモードを判定し、試すモードだった場合はステップ1903に進む。作るモードであった場合はステップ1913に進む。
自動再生モードであった場合はリターンする。ステップ1903において操作の種別を判定し、マウスクリック操作であった場合はステップ1904へ分岐する。マウスクリック操作でなかった場合はリターンする。ステップ1904においてマウスクリック位置を判定し、カプセルボタン204a上でのクリックであった場合は、ステップ1908でクリックしたカプセルボタン204aを引数としてカプセルボタン204a上から下へのイベント手続きをコールする。閉じるボタン204c上でのクリックであった場合は、ステップ1911においてクリック操作を行った、閉じるボタン204cを引数として、閉じるボタン204c上から下へのイベント手続きをコールする。同時ボタン204e上でのクリック操作であった場合は、ステップ1909においてクリックした同時ボタン204eを引数として同時ボタン204e上から下へのイベント手続きをコールする。ホームページリンクボタン204d上でのクリック操作であった場合は、ステップ1912でクリックしたホームページリンクボタン204dを引数としてホームページリンクボタン上から下へのイベント手続きをコールする。サウンドボタン201b上でのクリック操作であった場合は、ステップ1910でクリックしたサウンドボタン201dを引数としてサウンドボタン上から下へのイベント手続きをコールする。それ以外であった場合は、リターンする。以上の処理の後リターンする。
次に、台紙・カプセル画面上での編集操作の処理913について図面を参照して説明する。図20は、台紙・カプセル画面上での編集操作の処理の流れを示すフローチャート図である。図20に示すように、ステップ2001において操作の内容に関する判定を行い、操作がボタンの実行順を外延的に付与する操作であった場合は、ステップ2002において、引数を現在操作中の台紙・カプセル画面として外延的にボタンの実行順序を、付与手続きをコールしリターンする。操作が外延的に付与した順モードへの切り替え操作であった場合は、ステップ2003においてボタンの実行順モードを外延的に付与した順モードへ切り替えた後、リターンする。操作がラベル順モードへの切り替え操作であった場合は、ステップ2004において、ボタンの実行順モードをラベル順モードへ切り替えた後、リターンする。矢印部品による指定順モードへの切り替え操作であった場合は、ステップ2005において、ボタンの実行順モードを矢印部品による指定順へ切り替えた後リターンする。操作がドラッグアンドドロップによる画面の大きさの変更であった場合は、ステップ2006において画面の大きさを変更した後、リターンする。操作がドラッグアンドドロップによる画面の表示位置の変更であった場合は、ステップ2007において、画面の表示位置を変更した後リターンする。操作が画面を閉じる操作であった場合は、ステップ2008において画面の表示位置や画面の大きさを記録しステップ2009において画面を閉じる。尚、「外延的に付与した順モード」、「ラベル順モード」、「矢印部品による指定順モード」については後述する。
尚、その他の操作については以下に述べる2つの理由から、本明細書においては説明を省略する。
(1)ボタンの貼り合わせの編集については、部品生成の際におけるアルゴリズムと同様である。(2)ホームページリンクボタンのリンク先の指定やボタンのラベルの編集や映像再生モード設定等の素材や部品の持つ属性の変更操作や素材や部品の編集は、一般的なマルチメディア編集ソフト(いわゆるお絵かきソフトと呼ばれるもの)と同様である。
次に、外延的にボタンの実行順序を外延的に付与する処理について図面を参照して説明する。図21は、外延的にボタンの実行順序を付与操作の処理の流れを示すフローチャート図である。図1及び図2も参照して説明する。図21に示すように、ステップ2101において、引数の台紙・カプセル画面に貼られているボタンのリストを取得し、変数子ボタンリストに格納する。ステップ2102においてステップ2101において取得した子ボタンリストをボタンの左上座標をキーとして左上原点に近い順にソートし、変数座標順子ボタンリストに格納する。ステップ2112において、順番付与済みリストを初期化する。ステップ2103において、変数カレント番号に1を代入して初期化する。ステップ2104においてイベントを監視しイベントを待つ。そしてイベントが発生した場合にはステップ2105に進む。ステップ2105において発生したイベントの内容を判定し、ボタンクリックイベントであればステップ2114へ分岐し、ボタン以外のクリックイベントであればステップ2113に分岐し、その他のイベントであった場合はステップ2104へ戻りイベントを監視する。
ステップ2113において座標順子ボタンリストの先頭のボタンから順番に順番付与済みボタンリストに追加し、リターンする。ステップ2114でクリックしたボタンは順番付与済みボタンリストに登録済みであるかを判定し、登録済みである場合はステップ2104に戻りイベントを監視する。登録済みでない場合は、ステップ2106に進む。ステップ2106でクリックしたボタンにカレント番号を付与しボタンの右上にその番号を表示したタグを表示し、ステップ2107に進む。ステップ2107においてカレント番号をインクリメントしている。ステップ2108で順番付与済みボタンリストにクリックしたボタンを登録する。ステップ2109でクリックしたボタンを座標順ボタンリストから削除する。ステップ2111において座標順子ボタンリストが空であるかを判定し空である場合はリターンする。座標順子ボタンリストが空でない場合はステップ2104に戻りイベントを監視する。ステップ2113において座標順子ボタンリストの先頭のボタンから順番に順番付与済みボタンリストに追加し、リターンする。
次に、台紙・カプセル画面上での自動再生の処理について図面を参照して説明する。図22は、台紙・カプセル画面上での自動再生の処理の流れを示すフローチャートである。図22に示すように、自動再生が開始されると、台紙・カプセル画面上に貼られているボタンが自動的に実行される。その実行順を、以下に述べる3つのモード、すなわち「外延的に付与した順モード」、「ラベル順モード」、「矢印部品による指定順モード」のうちのいずれかから指定することができる。
「外延的に付与した順モード」は、ボタンクリック操作でボタンに対して外延的に付与した順番で処理を実行する。「ラベル順モード」時は、ボタンのラベル順に処理を実行する。「矢印部品による指定順モード」時は、矢印部品によって連結されたボタンが矢印部品が示す方向の順に処理が実行される。
ステップ2201において実行順モードを判定し、外延的に付与した順モードである場合はステップ2202に進む。ラベル順モードである場合は、ステップ2203に進む。矢印部品による指定順モードである場合はステップ2204に進み、ステップ2204において台紙・カプセル画面を引数として矢印部品による指定順による自動再生手続きをコールする。
ステップ2202において、引数の台紙・カプセル画面に貼られているボタンのリストを取得し、変数子ボタンリストへ代入し、ステップ2205へ進む。ステップ2205においてステップ2202で取得した子ボタンリストを外延的に付与された順にソートし、ステップ2207へ進む。ステップ2203で引数の台紙・カプセル画面に貼られているボタンのリストを取得し、変数子ボタンリストへ代入し、ステップ2206へ進む。ステップ2206においてステップ2203で取得した子ボタンリストをボタンに設定されているラベル順にソートし、ステップ2207に進む。ステップ2207において、台紙・カプセル画面に設定されている時間間隔を取得し変数Tへ代入する。この時間間隔は、現在のボタンから次のボタンへ実行する間隔である。ステップ2208でソート済子ボタンリストのはじめに登録されているボタンを取得し、変数実行ボタンに代入する。
ステップ2209において実行ボタンの種類を判別し、カプセルボタンであった場合はステップ2211へ進み、ホームページリンクボタンであった場合はステップ2212へ、サウンドボタンであった場合はステップ2213へ、閉じるボタンであった場合はステップ2214に分岐する。その他のボタンであった場合はステップ2217へ進む。実行するボタンとして「同時ボタン」が存在するが、説明を省略する。その他のボタンであった場合は、ステップ2217へ分岐する。ステップ2211で実行ボタンを引数としてカプセルボタン下から上へのイベント手続きをコールし、ステップ2215に進む。ステップ2215で引数を実行ボタンから開いたカプセル画面として、台紙・カプセル画面上での自動再生手続きをリカーシブにコールしている。ステップ2212で実行ボタンを引数としてホームページリンクボタン下から上へのイベント手続きをコールしている。
ステップ2213で実行ボタンを引数として、サウンドボタン下から上へのイベント手続きをコールしている。ステップ2214で実行ボタンを引数として閉じるリンクボタン下から上へのイベント手続きをコールしている。ステップ2216で「T時間待ちタイマー」を起動する。ステップ2217で実行ボタンはソート済子ボタンリストの最後であるか否かを判定し、最後である場合はリターンする。最後でない場合は、ステップ2210においてソート済子ボタンリストにおいて次に登録されているボタンを実行ボタンへ代入し、ステップ2209に戻る。
次に、矢印部品を用いた指定順による自動再生処理について図面を参照して説明する。図23は、矢印部品を用いた指定順による自動再生処理の流れを示すフローチャート図である。適宜図1、2を参照する。図23に示すように、ステップ2301で引数の台紙・カプセル画面に設定されている時間間隔を取得し、変数台紙・カプセル画面の時間間隔へ代入する。ステップ2302で引数の台紙・カプセル画面上に存在する矢印部品を未実行矢印部品リストに格納する。ステップ2303で未実行矢印部品リストを画面左上から近い順にソートする。ステップ2304で引数の台紙・カプセル画面上に存在するボタンを未実行ボタンリストに格納する。ステップ2305で、第一引数を未実行矢印リスト、第二引数を未実行ボタンリストとして、矢印部品で連結している部品のリストの取得をコールし、返却された値を連結部品リストに格納する。ステップ2306で連結部品リストが空であるかを判定し、空である場合はリターンする。空でない場合はステップ2307に進む。ステップ2307において連結部品リストのはじめに登録されている部品を変数部品に代入する。ステップ2308で変数矢印の時間間隔を0時間で初期化する。ステップ2309で部品の種類を判定し、部品がカプセルボタンであった場合はステップ2310へ分岐し、部品がホームページリンクボタンであった場合はステップ2311へ分岐し、部品がサウンドボタンであった場合はステップ2312へ分岐し、部品が閉じるボタンであった場合はステップ2316へ分岐し、部品が矢印部品であった場合はステップ2314へ分岐し、その他の部品であった場合は、ステップ2319へ進む。実行するボタンとして「同時ボタン」が存在するが、説明は省略する。ステップ2310で部品を引数としてカプセルボタン下から上へのイベントをコールする。ステップ2315において部品から開いたカプセル画面を引数として矢印部品による指定順による自動再生をコールする。ステップ2311で部品を引数としてホームページリンクボタン下から上へのイベントをコールする。ステップ2312で部品を引数としてサウンドボタン下から上へのイベントをコールする。ステップ2316で引数を部品として閉じるボタン下から上へのイベントをコールする。ステップ2314で矢印部品に設定されている時間間隔を変数矢印の時間間隔へ代入する。ステップ2319で部品は連結部品リストの最後か否かを判定し、最後である場合はステップ2320へ進む。最後でない場合はステップ2318において変数矢印の時間間隔で設定された時間の間、タイマーを起動し、待ち状態にする。
ステップ2317において連結部品リストの次に登録されている部品を変数部品に代入し、ステップ2308へ戻る。ステップ2320で連結部品リストの部品を未実行矢印リスト及び未実行ボタンリストから削除する。ステップ2321で未実行矢印部品リストが空であるかを判定し、空である場合はリターンする。空でない場合は、ステップ2322へ進む。ステップ2321で未実行ボタンリストが空であるかを判定し、空である場合はリターンする。空でない場合は変数台紙・カプセル画面の時間間隔設定された時間の間、タイマーを起動し、待ち状態にし、その後ステップ2305に戻る。
次に、矢印部品で連結している部品のリストを取得について図面を参照して説明する。図24は、矢印部品で連結している部品のリストを取得処理の流れを示すフローチャート図である。図1、2を適宜参照する。図24に示すように、ステップ2401で変数連結部品リストを初期化する。ステップ2402で第一引数の未実行矢印リストをコピーし、変数矢印リストに代入する。ステップ2403で第二引数の未実行ボタンリストをコピーし、変数ボタンリストに代入する。
ステップ2404で矢印リストの最初に登録されている矢印部品を変数選択矢印へ代入する。ステップ2405で半径を「選択矢印の長さ/2」、中心を選択矢印の始点とした円の領域と重なるボタンのうち、選択矢印の矢印の反対方向の延長線上にあるボタンをボタンリストから検索し、見つかった場合は変数選択ボタンに格納する。ステップ2406でステップ2405の検索でボタンが見つかったか否かを判定し、ボタンが見つかった場合はステップ2407に分岐し、見つかっていなかった場合は、ステップ2409へ分岐する。ステップ2407で選択ボタンを連結部品リストの最後尾に登録する。ステップ2408で選択ボタンをボタンリストから削除する。ステップ2409で選択矢印を連結部品リストの最後尾に登録する。ステップ2410で選択矢印を矢印リストから削除する。ステップ2411で半径を「選択矢印の長さ/2」、中心を選択矢印の終点とした円の領域と重なるボタンのうち、選択矢印の矢印の方向の延長線上にあるボタンをボタンリストから検索し、見つかった場合は選択ボタンに代入する。ステップ2412で、ステップ2411の検索処理でボタンが見つかっていたか否かを判定し、見つかっていた場合はステップ2413へ分岐し、見つかっていなかった場合は連結部品リストをリターンする。ステップ2413で選択ボタンを連結部品リストの最後尾に登録する。ステップ2414で選択ボタンをボタンリストから削除する。ステップ1415で半径を「選択矢印の長さ/2」、中心を選択ボタンの重心とした円の領域と重なる矢印部品であり、選択ボタンが矢印部品の矢印の反対方向の延長線上に存在するという条件を満たす矢印部品のうち、最も選択ボタンから近い矢印部品を検索し、見つかった場合は、変数選択矢印に代入する。ステップ2416のステップにおいてステップ2415の検索で矢印部品が見つかっていたか否かを判定し、矢印部品が見つかっていた場合はステップ2405へ戻る。見つかっていなかった場合は、連結部品リストをリターンする。
次に、カプセルバインダー上での編集操作の処理の流れについて説明する。図25は、カプセルバインダー上での編集操作の処理を表すフローチャートである。図6を適宜参照する。
カプセルバインダー602上での操作は升目上のボタンについて操作するか、升目について操作するかによって処理が異なる。升目上のボタンをドラッグアンドドロップした場合、ボタンの貼り合わせの編集操作となる。升目をドラッグアンドドロップした場合は升目の順番の入れ替えや複製・削除などの升目の構成の編集操作となる。
図25に示すように、ステップ2501において操作の内容を判定し、操作が升目上のカプセルボタン又はサウンドボタン601a又はホームページリンクボタン606eのドラッグアンドドロップ操作であった場合は、ステップ2502に分岐する。操作が升目のドラッグアンドドロップ操作であった場合は、ステップ2503に分岐する。ステップ2502でドラッグアンドドロップしたボタンを変数ボタンへ代入する。ステップ2504でマウスリリース位置を判定し、マウスリリース位置がコントローラ上にあるごみ箱アイコン上であった場合は、ステップ2505に分岐する。マウスリリース位置がカプセルバインダーの升目上であった場合は、ステップ2506へ分岐する。ステップ2505でボタンを破棄した後、リターンする。
ステップ2506でボタンの貼り付け先とのスロット結合関係が存在していた場合はそれを解除し、ステップ2507でマウスリリース位置にボタンを移動し、ステップ2508へ進む。ステップ2508でボタンの種類を判定し、ボタンがカプセルボタンであった場合は、ステップ2509へ分岐する。ボタンがホームページリンクボタン606eであった場合は、ステップ2510へ分岐する。
ボタンがサウンドボタンであった場合は、ステップ2511に分岐する。ステップ2509でボタンを引数としてカプセルボタンスロット結合手続きをコールし、リターンする。
ステップ2510でボタンを引数としてホームページリンクボタンスロット結合手続きをコールし、リターンする。ステップ2511でボタンを引数としてサウンドボタンスロット結合手続きをコールし、リターンする。ステップ2503でマウスリリース位置を判定し、マウスリリース位置がコントローラ上にあるごみ箱アイコン上であった場合は、ステップ2513に分岐する。マウスリリース位置がカプセルバインダー602の升目上であった場合はステップ2514へ分岐する。ステップ2513で升目の削除手続きをコールし、リターンする。ステップ2514で升目の移動・コピー手続きをコールし、リターンする。
次に、升目の移動・コピー操作の処理について図面を参照して説明する。適宜図6を参照する。図26は、升目の移動・コピー操作の処理の流れを示すフローチャート図である。図26に示すように、ステップ2601でドラッグ中の升目番号を取得し、変数ドラッグ升番号へ代入する。ステップ2602でドロップ先の升番号を取得し、変数ドロップ先升番号へ代入する。ステップ2603で変数挿入先升番へドロップ先升番号を代入する。ステップ2604でボタンが貼られている升目番号のうちの最大の番号を取得し、変数最終番号に代入する。ステップ2605でドロップ位置が升目の右半分に含まれているかを判定し、含まれているならばステップ2606で挿入先升番号をインクリメントする。含まれていなければステップ2607へ進む。ステップ2607でショートカットキー[CTRL]が押されているかを判定する。ショートカットキー[CTRL]が押されている場合は升目のコピー操作と判定されステップ2608へ進む。押されていなかった場合は升目の移動操作と判定され、ステップ2614へ進む。ステップ2614で挿入先升番号を変数Iへ代入し、ステップ2615でドラッグ升番号を変数Jへ代入する。以降ドラッグ升番号の升目を挿入先升番号の升目に移動する処理を行っている。ステップ2616でIとJを比較し、IとJが等しければリターンする。IよりJの方が大きい場合はステップ2617へ進む。IよりJの方が小さい場合はステップ2618へ進む。ステップ2617でJ番目の升目をWORKに退避する。ステップ2619でIとJを比較し、IよりJの方が小さい場合はステップ2625へ進む。IよりJの方が大きい場合はステップ2621でJ-1番目の升目をJ番目にシフトし、ステップ2622でJをデクリメントした後、ステップ2619へ戻る。ステップ2618でJ番目の升目をWORKに退避する。ステップ2620でIとJを比較し、IよりJの方が大きい場合はステップ2625へ進む。IよりJの方が小さい場合はステップ2623でJ+1番目の升目をJ番目にシフトし、ステップ2624でJをインクリメントした後、ステップ2620へ戻る。ステップ2608で挿入先升番号をIへ代入する。ステップ2609でIと挿入先升番号+1を比較しIの方が小さい場合はステップ2610でI 番目の升目を I + 1番目の升
目にシフトし、ステップ2611でIをインクリメントする。Iの方が大きい場合はステップ2612へ進む。ステップ2612でドラッグ升番号の升目をコピーする。この時升目に貼られているボタンごとコピーする。ステップ2613でステップ2612でコピーした升を挿入先升番号に格納する。
次に升目の削除操作の処理について図面を参照して説明する。図27は、升目の削除操作の処理の流れを示すフローチャート図である。適宜図6も参照する。
図27に示すように、ステップ2701において、マウスドラッグ中の升目の番号を取得し、変数ドラッグ升番号へ代入する。ステップ2702ではボタンが貼られている升目番号のうちの最大の番号を取得し、変数最終番号に代入する。ステップ2703ではドラッグ升番号の升目を削除すると同時にその升目に貼られているボタンを削除する。ステップ2704では変数Iにドラッグ升番号を代入して初期化する。ステップ2705ではIと最終番号とを比較し、Iが最終番号よりも小さい場合はステップ2706でI+1番目の升目をI番目の升目にシフトする。Iが最終番号よりも大きい場合はリターンする。
次に、升目の最終番号の取得の処理について図面を参照して説明する。図28は升目の最終番号の取得の処理の流れを示すフローチャート図である。適宜図6も参照して説明を行う。図28に示すように、この処理は、ボタンが貼られている升目番号のうちの最大の番号を取得し、その値をリターンする処理である。まず、ステップ2801において、現在の升目番号を表すIに0を代入して初期化を行う。ステップ2802では升目の全個数を変数MAXに代入する。ステップ2803ではリターン値が代入される変数最終番号に0を代入して初期化を行う。ステップ2804ではIとMAXとを比較し、MAXよりIが大きい場合は、最終番号をリターンする。MAXよりIが小さいかあるいは等しい場合は、ステップ2805に進む。ステップ2805では,Iをインクリメントする。ステップ2806ではI番目の升目にボタンが貼られているか否かを判定する。I番目の升目にボタンが貼られている場合は、最終番号にIを代入し(ステップ2807)、ステップ2804へジャンプする。I番目の升目にボタンが貼られていない場合は、ステップ2804にジャンプする。
次に、カプセルバインダー上での操作について図面を参照して説明する。図29は、カプセルバインダー上での操作の処理の流れを示すフローチャート図である。図6も適宜参照する。図29に示すように、カプセルバインダーも台紙・カプセル画面と同様に、「自動再生モード」、「作るモード」、「試すモード」の3つのモードを有する。「自動再生モード」は作品を鑑賞するモードである。このモードが起動すると、カプセルバインダー602上のボタンが升目ごとに自動的に実行される。「作るモード」は作品を編集するモードであり、升目の順番の入れ替えや削除、また升目上のボタンの貼り合わせの編集作業を行うことができる。このモードではカプセルボタン、サウンドボタン、閉じるボタン、同時ボタン、ホームページリンクが、ボタンとしての動作をしない。すなわち、マウスクリックイベントで図8に示す所定の機能を実行することなく、部品が選択状態となるのみである。この操作は、ボタンの貼り合わせ編集用の操作である。一方、「試すモード」はコンテンツの実行モードである。このモードにおいては、ボタン類の部品により、本来のボタンとしての機能を実行することができる。
図29に示すように、ステップ2901において操作の種別を判定し、自動再生開始操作であった場合には、ステップ2913においてモードが自動再生モードであるか否かを判定し、自動再生モードでなかった場合は、ステップ2903においてモードを自動再生モードに切り替え、ステップ2904のカプセルバインダー上での自動再生手続きをコールしリターンする。ステップ2913の判定において、モードが自動再生モードであった場合はリターンする。自動再生終了操作であった場合はステップ2914でモードが自動再生モードであるか否かを判定する。自動再生モードであった場合は、ステップ2905において、自動再生を終了し、ステップ2907において自動再生モードを解除し、モードをコントローラで設定されているモードに切り替えリターンする。
ステップ2914の判定においてモードが自動再生モードでなかった場合は、リターンする。自動再生開始操作或いは自動再生終了操作でなかった場合は、ステップ2902に分岐する。ステップ2902でモードを判定し、試すモードであった場合は、ステップ2908に分岐する。作るモードであった場合は、ステップ2906に分岐する。自動再生モードであった場合はリターンする。ステップ2908における操作を判定し、マウスクリック操作であった場合は、ステップ2909に分岐する。マウスクリック操作でなかった場合はリターンする。
ステップ2909においてマウスクリック位置を判定し、カプセルボタン上でのクリックであった場合は、ステップ2910でクリックしたカプセルボタンを引数としてカプセルボタン上から下へのイベント手続きをコールする。閉じるボタン上でのクリックであった場合は、ステップ2911においてクリックした、閉じるボタンを引数として閉じるボタン上から下へのイベント手続きをコールする。サウンドボタン上でのクリックであった場合は、ステップ2911でクリックしたサウンドボタンを引数としてサウンドボタン上から下へのイベント手続きをコールする。ホームページリンクボタン上でのクリックであった場合は、ステップ2912でクリックしたホームページリンクボタンを引数としてホームページリンクボタン上から下へのイベント手続きをコールする。それ以外であった場合は、リターンする。以上の処理の後リターンする。
次に、カプセルバインダー上での自動再生操作の処理について図面を参照して説明する。図30は、カプセルバインダー上での自動再生操作の処理の流れを示すフローチャート図である。適宜図6を参照して説明する。カプセルバインダー602の自動再生処理は、カプセルバインダー602の各升目に対して升目の順番にイベントを伝達するという仕組みである。カプセルバインダー602の一つの升目には一つ以上のボタンを貼ることができ、これらのボタンを貼り付けたその升目に存在するイベント伝達スロットと結合関係にある。ここでは、同一升目内に貼られているボタンのリストを取得し、それらのボタンに対して同時にイベントを伝達している処理を行う。まず、カプセルバインダーの自動再生処理は、カプセルバインダーの各升目に対して升目の順番にイベントを伝達するという仕組みである。カプセルバインダーの一つの升目には一つ以上のボタンを貼ることができ、これらはその升目に存在するイベント伝達スロットと結合関係にある。
ここでは、同一升目内に貼られているボタンのリストを取得し、それらのボタンに対して同時にイベントを伝達している処理を行っている。
ステップ3001ではボタンが貼られている升目番号のうちの最大の番号を取得し、変数最終番号に代入している。以降のステップで、1番目の升目から最終番号の升目のうち、ボタンが貼られている升目に対してのみイベント伝達を逐次行っている。ステップ3002ではカプセルバインダーに設定されている現在の升目から次の升目へのイベントの伝達時間間隔を取得し、変数Tに代入している。通常はこの時間間隔となるが、ある升目から起動したサウンドやビデオの再生が時間間隔を超えてしまう場合はその再生が終了してから次の升目への処理に移る。ステップ3003では、次のループで用いる現在の升目番号をIとしIに1を代入することによって初期化している。ステップ3004ではIが最終番号+1より小さいかを判定し、小さい場合はステップ3005へ分岐する。そうでない場合はリターンする。ステップ3005ではI番目の升目に直接貼られているボタンのリストを取得し、変数ボタンリストに代入している。ステップ3005ではボタンリストの要素数を参照し、このリストが空でないなら、ステップ3007へ分岐する。このリスト空ならばステップ3019へジャンプする。ステップ3007では現在の時刻を取得し、変数ボタン実行開始時刻に代入する。ステップ3008ではボタンリストの先頭の要素を取得し、変数ボタンに代入している。ステップ3009ではボタンの種類を判定している。ボタンがカプセルボタンであった場合はステップ3011で引数をボタンとしてカプセルボタン下から上へのイベント手続きをコールし、ステップ3014へ進む。ボタンがホームページリンクボタンであった場合はステップ3012で引数をボタンとしてホームページリンクボタン下から上へのイベント手続きをコールし、ステップ3014へ進む。ボタンがサウンドボタンであった場合はステップ3013で引数をボタンとしてサウンドボタン下から上へのイベント手続きをコールし、ステップ3014へ進む。ステップ3014ではボタンがボタンリストの最後であるかを判定し、最後である場合はステップ3016へ進む。最後でない場合はステップ3010でボタンリストの次に登録されているボタンを取得し、ボタンに代入し、再びステップ3009へ戻る。ステップ3016では変数ボタン実行開始時刻から現在の時刻までの経過時間(すなわちI番目の升目の実行時間)を算出し、変数経過時間に代入している。ステップ3017では変数経過時間が変数Tを超えるかを判定し、超えていない場合はステップ3018でT−経過時間待ちタイマーを起動する。超えた場合は、ステップ3019へ進む。ステップ3019では(T−経過時間)待ちタイマーを起動する 。ステップ3019ではIをインクリメントする。ステップ3020でボタンリストを引数としボタンと関連づいている画面を閉じる手続きをコールする。
図30のフローチャートでは、全升目に対して順次自動実行処理を行っているが、自動再生対象のカプセルバインダーが暦属性もっている場合(カレンダーカプセルバインダーである場合)は、特定の升目を対象として例えば指定された行や列の升目にを対象として順次自動実行処理を行う。
次に、カプセルボタン上から下へのイベントの処理について図面を参照して説明する。図31は、カプセルボタン上から下へのイベントの処理の流れを示すフローチャート図である。クリック操作等でボタンに対してイベントを伝達すると、それを受信したボタンはそのボタンが有する機能の処理を行った後、そのボタンの貼り付け先であるボタンに対してイベントを伝達する。それを受信したボタンは、そのボタンの貼り付け先であるボタンに対してイベントを伝達する。この処理は貼り付け先のボタンがなくなるまで繰り返される。このようにして、手前に貼られているボタンから貼り合わせの順にイベントが伝達される。図31はこのイベント伝達処理を表している。図31に示すように、ステップ3101で引数のカプセルボタンを引数としてカプセルボタンのイベント受信後の挙動手続きをコールしている。ステップ3102で引数のカプセルボタンの貼り付け先を判定し、もしカプセルボタン上であればステップ3103で引数のカプセルボタンの貼り付け先を引数としてカプセルボタン上から下へのイベント手続きをリカーシブにコールし、リターンする。ステップ3102の判定の貼り付け先が閉じるボタン上であればステップ3104で引数のカプセルボタンの貼り付け先を引数として閉じるボタン上から下へのイベント手続きをコールし、リターンする。ステップ3102の判定の貼り付け先が同時ボタン上であればステップ3105で引数のカプセルボタンの貼り付け先とコール種別として非連動を引数として同時ボタン上から下へのイベント手続きをコールし、リターンする。同時ボタンイベントのコール種別については後述する。ステップ3102の判定の貼り付け先がホームページリンクボタン上であればステップ3106で引数のカプセルボタンの貼り付け先を引数としてホームページリンクボタン上から下へのイベント手続きをコールし、リターンする。ステップ3102の判定の貼り付け先がサウンドボタン上であればステップ3107で引数のカプセルボタンの貼り付け先を引数としてサウンドボタン上から下へのイベント手続きをコールし、リターンする。
ステップ3102の判定の貼り付け先がその他の場合何もせずリターンする。
次に、閉じるボタン上から下へのイベントの処理について図面を参照して説明する。図32は閉じるボタン上から下へのイベントの処理の流れを示すフローチャート図である。
図31に示す処理の流れと同様に、図32に示す処理は、ボタンからその貼り付け先であるボタンに対して、またそのボタンからその貼り付け先のボタンに対してというように、次々に貼り付け先のボタンにイベントが伝達される処理を示している。図32に示すように、ステップ3201で引数の閉じるボタンの貼り付け先を判定し、カプセルボタン上であればステップ3202で引数の閉じるボタンの貼り付け先を引数としてカプセルボタン上から下へのイベント手続きをコールし、リターンする。ステップ3201の判定の貼り付け先が閉じるボタン上であればステップ3203で引数の閉じるボタンの貼り付け先を引数として閉じるボタン上から下へのイベント手続きをコールし、リターンする。ステップ3201の判定の貼り付け先が同時ボタン上であればステップ3204で引数の閉じるボタンの貼り付け先とコール種別として非連動を引数として同時ボタン上から下へのイベントをコールし、リターンする。同時ボタンイベントのコール種別については後述する。ステップ3201の判定の貼り付け先がホームページリンクボタン上であればステップ3205で引数の閉じるボタンの貼り付け先を引数としてホームページリンクボタン上から下へのイベント手続きをコールし、リターンする。ステップ3201の判定の貼り付け先がサウンドボタン上であればステップ3206で引数の閉じるボタンの貼り付け先を引数としてサウンドボタン上から下へのイベント手続きをコールし、リターンする。ステップ3201の判定の貼り付け先が台紙・カプセル画面上であれば引数の閉じるボタンを引数として閉じるボタンのイベント受信後の挙動手続きをコールする。貼り付け先がその他の場合何もせずリターンする。
次に、同時ボタン上から下へのイベントの処理について図面を参照して説明する。同時ボタンはクリック操作等のイベントを受け取ると貼り付け先のスロットにイベントを伝えた後、自分を複製して作成した同時ボタン(ここでは連動関係にあるボタンと呼ぶ)すべてのスロットにイベントを伝播する。図33は、同時ボタン上から下へのイベントの処理の流れを示すフローチャート図である。図33に示すように、ステップ3301で同時ボタンのイベント受信後の挙動をコールした後、ステップ3302へ進む。ステップ3302で引数の同時ボタンの貼り付け先を判定し、カプセルボタン上であればステップ3303で引数の同時ボタンの貼り付け先を引数としてカプセルボタン上から下へのイベント手続きをコールし、ステップ3308へと進む。貼り付け先が閉じるボタン上であればステップ3304で引数の同時ボタンの貼り付け先を引数として閉じるボタン上から下へのイベント手続きをコールし、ステップ3308へ進む。貼り付け先が同時ボタン上であればステップ3305で第一引数を引数の同時ボタンの貼り付け先とし、第二引数のコール種別を非連動として、同時ボタン上から下へのイベント手続きをコールし、ステップ3308へ進む。コール種別モードについては後述する。貼り付け先がホームページリンクボタン上であればステップ3306で引数の同時ボタンの貼り付け先を引数としてホームページリンクボタン上から下へのイベント手続きをコールし、ステップ3308へ進む。貼り付け先がサウンドボタン上であればステップ3307で引数の同時ボタンの貼り付け先を引数としてサウンドボタン上から下へのイベント手続きをコールし、ステップ3308へ進む。貼り付け先がその他の場合ステップ3308へ進む。ステップ3308において引数のコール種別を判定し、コール種別が連動だったならば、リターンする。コール種別が連動でなかった(非連動)ならば、ステップ3308へ進む。
ステップ3308以降の処理は、同時ボタンはイベントを受け取る自分を複製して作成した同時ボタン(連動関係であるボタン)すべてのスロットにイベントを伝播している処理を表している。同時ボタンの連動関係にあるボタンにイベントを伝える際の処理はリカーシブコールになっており、連動関係にあるボタンの間でコールを繰り返さないために第二引数にコール種別を用いている。このコール種別によって貼り合わせた相手からのイベントであるか、連動関係にあるボタンからのイベントであるかを区別する。同時ボタンの連動関係にあるボタンは同時動作リストに管理されている。ステップ3308では、引数のコール種別が連動であるか否かを判定し、もし連動コールであればそのままリターンする。連動コールでなければ、ステップ3309へ進む。ステップ3309では引数の同時ボタンの同時動作リストを同時動作リストに代入している。ステップ3310では変数ボタンに同時動作リストの始めに登録されている同時ボタンをセットする。
ここで、引数の同時ボタンは既にイベントの処理が終わっているのでその処理をはじくためにステップ3311でボタンが引数の同時ボタンであるか否か判定し、引数の同時ボタンでなかった場合はステップ3312で同時ボタン上から下へのイベントを、第一引数をボタンとし第二引数のコール種別を連動としてリカーシブコールする。もし、ボタンが引数の同時ボタンであったらリカーシブコールしない。ステップ3313でボタンが同時動作リストの最後であるかどうかを判断し最後ならリターンする。ステップ3314で最後でなければボタン変数に次の同時ボタンを設定し、再びステップ3311に戻る。
次に、ホームページリンクボタン上から下へのイベントの処理について図面を参照して説明する。図34は、ホームページリンクボタン上から下へのイベントの処理の流れを示すフローチャート図である。図31に示す処理と同様に、図34に示す処理も、ボタンからその貼り付け先であるボタンに対して、またそのボタンからその貼り付け先のボタンに対してというように、次々に貼り付け先のボタンへイベントが伝達される処理を表している。
図34に示すように、ステップ3401で引数のホームページリンクボタンを引数としてホームページリンクボタンのイベント受信後の挙動手続きをコールしている。ステップ3402で引数のホームページリンクボタンの貼り付け先を判定し、もしカプセルボタン上であればステップ3403で引数のホームページリンクボタンの貼り付け先を引数としてカプセルボタン上から下へのイベント手続きをコールし、リターンする。ステップ3402で判定した貼り付け先が閉じるボタン上であればステップ3404で引数のホームページリンクボタンの貼り付け先を引数として閉じるボタン上から下へのイベント手続きをコールし、リターンする。ステップ3402で判定した貼り付け先が同時ボタン上であればステップ3405で引数のホームページリンクボタンの貼り付け先とコール種別の非連動を引数として同時ボタン上から下へのイベント手続きをコールし、リターンする。同時ボタンイベントのコール種別については後述する。ステップ3402で判定した貼り付け先がホームページリンクボタン上であればステップ3406で引数のホームページリンクボタンの貼り付け先を引数としてホームページリンクボタン上から下へのイベント手続きをコールし、リターンする。ステップ3402で判定した貼り付け先がサウンドボタン上であればステップ3407で引数のホームページリンクボタンの貼り付け先を引数としてサウンドボタン上から下へのイベント手続きをコールし、リターンする。ステップ3402で判定した貼り付け先がその他の場合何もせずリターンする。
次に、サウンドボタン上から下へのイベントの処理について図面を参照して説明する。図35は、サウンドボタン上から下へのイベントの処理の流れを示すフローチャート図である。図31と同様に、ボタンからその貼り付け先であるボタンに対して、またそのボタンからその貼り付け先のボタンに対してといったように、次々に貼り付け先のボタンへイベントが伝達される処理を表している。
図35に示すように、ステップ3501で引数のサウンドボタンを引数としてサウンドボタンのイベント受信後の挙動手続きをコールしている。ステップ3502で引数のサウンドボタンの貼り付け先を判定し、もしカプセルボタン上であればステップ3503で引数のサウンドボタンの貼り付け先を引数としてカプセルボタン上から下へのイベント手続きをコールし、リターンする。ステップ3502で判定した貼り付け先が閉じるボタン上であればステップ3504で引数のサウンドボタンの貼り付け先を引数として閉じるボタン上から下へのイベント手続きをコールし、リターンする。ステップ3502で判定した貼り付け先が同時ボタン上であればステップ3505で引数のサウンドボタンの貼り付け先とコール種別の非連動を引数として同時ボタン上から下へのイベント手続きをコールし、リターンする。同時ボタンイベントのコール種別については後述する。ステップ3502で判定した貼り付け先がホームページリンクボタン上であればステップ3506で引数のサウンドボタンの貼り付け先を引数としてホームページリンクボタン上から下へのイベント手続きをコールし、リターンする。ステップ3502で判定した貼り付け先がサウンドボタン上であればステップ3507で引数のサウンドボタンの貼り付け先を引数としてサウンドボタン上から下へのイベント手続きをコールし、リターンする。ステップ3502で判定した貼り付け先がその他の場合何もせずリターンする。
次に、カプセルボタン下から上へのイベントの処理について図面を参照して説明する。適宜図6も参照する。図36はカプセルボタン下から上へのイベントの処理の流れを示すフローチャート図である。図36に示すように、カプセルバインダー602の升目のイベント伝達用のスロットから、その升目に貼られているボタンに対してイベントが伝達された時などに、ボタンの貼り付け先からそのボタンに対してイベントが伝達されると、それを受信したボタンはそのボタンが有する機能に関する処理を行った後、そのボタンに貼り付いているボタンに対してイベントを伝達する。さらに、それを受信したボタンは、そのボタンに貼り付いているボタンに対してイベントを伝達する。この処理は、貼り付いているボタンがなくなるまで繰り返される。こうして、手前に貼られているボタンに向かって貼り合わせの順にイベントが伝達される。図36はこのイベント伝達処理の流れを示している。ステップ3601で引数のカプセルボタンを引数として、カプセルボタンのイベント受信後の挙動手続きをコールする。ステップ3602で引数のカプセルボタン上に貼られているボタンのリストを取得し、変数子ボタンリストへ代入する。ステップ3603で子ボタンリストの始めに登録されているボタンを変数ボタンに代入する。ステップ3604でボタンの種類を判定し、ボタンがカプセルボタンであった場合はステップ3606でボタンを引数としてカプセルボタン下から上へのイベント手続きをコールする。
ボタンがホームページリンクボタンであった場合は、ステップ3607でボタンを引数としてホームページリンクボタン下から上へのイベント手続きをコールする。ボタンがサウンドボタンであった場合はステップ3608でボタンを引数としてサウンドリンクボタン下から上へのイベント手続きをコールする。ボタンが閉じるボタンであった場合はステップ3609でボタンを引数として閉じるボタン下から上へのイベント手続きをコールする。ボタンがその他であった場合はステップ3610へジャンプする。ステップ3610でボタンは子ボタンリストの最後であるか否かを判定し、最後であった場合はリターンする。最後ではなかった場合は、ステップ3605において子ボタンリストの次に登録されているボタンを取得しボタンへ代入した後、ステップ3604に戻る。
次に、ホームページリンクボタン下から上へのイベントの処理について図面を参照して説明する。図37は、ホームページリンクボタン下から上へのイベントの処理の流れを示すフローチャート図である。図36の処理と同様に、ボタンの貼り付け先からそのボタンに対してイベントが伝達されると、それを受信したボタンはそのボタンに貼りついているボタンに対してイベントを伝達する処理を表している。
図37に示すように、ステップ3701で引数のホームページリンクボタンを引数としてホームページリンクボタンのイベント受信後の挙動手続きをコールする。ステップ3702で引数のホームページリンクボタン上に貼られているボタンのリストを取得し、変数子ボタンリストへ代入する。ステップ3703で子ボタンリストの始めに登録されているボタンを変数ボタンに代入する。ステップ3704でボタンの種類を判定し、ボタンがカプセルボタンであった場合はステップ3706でボタンを引数としてカプセルボタン下から上へのイベント手続きをコールする。ボタンがホームページリンクボタンであった場合はステップ3707でボタンを引数としてホームページリンクボタン下から上へのイベント手続きをコールする。ボタンがサウンドボタンであった場合はステップ3708でボタンを引数としてサウンドリンクボタン下から上へのイベント手続きをコールする。ボタンが閉じるボタンであった場合はステップ3709でボタンを引数として閉じるボタン下から上へのイベント手続きをコールする。ボタンがその他であった場合はステップ3710へジャンプする。ステップ3710でボタンは子ボタンリストの最後であるか否かを判定し、最後であった場合はリターンする。最後でなかった場合はステップ3705で子ボタンリストのうち次に登録されているボタンを取得しボタンへ代入した後、ステップ3704に戻る。
次に、サウンドボタン下から上へのイベントの処理について説明する。図38は、サウンドボタン下から上へのイベントの処理の流れを示すフローチャート図である。図36の処理と同様に、ボタンの貼り付け先からそのボタンに対してイベントが伝達されると、それを受信したボタンは、そのボタンに貼りついているボタンに対してイベントを伝達する。図38に示すように、ステップ3801で引数のサウンドボタンを引数としてサウンドボタンのイベント受信後の挙動手続きをコールする。ステップ3802で引数のサウンドボタン上に貼られているボタンのリストを取得し、変数子ボタンリストへ代入する。ステップ3803で子ボタンリストの始めに登録されているボタンを変数ボタンに代入する。ステップ3804でボタンの種類を判定し、ボタンがカプセルボタンであった場合はステップ3806でボタンを引数としてカプセルボタン下から上へのイベント手続きをコールする。
ボタンがホームページリンクボタンであった場合はステップ3807でボタンを引数としてホームページリンクボタン下から上へのイベント手続きをコールする。ボタンがサウンドボタンであった場合はステップ3808でボタンを引数としてサウンドリンクボタン下から上へのイベント手続きをコールする。ボタンが閉じるボタンであった場合は、ステップ3809でボタンを引数として閉じるボタン下から上へのイベント手続きをコールする。ボタンがその他であった場合はステップ3810へジャンプする。ステップ3810でボタンは子ボタンリストの最後であるか否かを判定し、最後であった場合はリターンする。最後でなかった場合はステップ3805で子ボタンリストの次に登録されているボタンを取得しボタンへ代入した後、ステップ3804に戻る。
次に、閉じるボタン下から上へのイベントの処理について図面を参照して説明する。図39は、閉じるボタン下から上へのイベントの処理の流れを示すフローチャート図である。図36と同様に、図39は、ボタンの貼り付け先からそのボタンに対してイベントが伝達されると、それを受信したボタンはそのボタンに貼りついているボタンに対してイベントを伝達する処理を表している。
図39に示すように、ステップ3901において、引数の閉じるボタンを引数として閉じるボタンのイベント受信後の挙動手続きをコールする。ステップ3902で引数の閉じるボタン上に貼られているボタンのリストを取得し、変数子ボタンリストへ代入する。ステップ3903で子ボタンリストの始めに登録されているボタンを変数ボタンに代入する。ステップ3904でボタンの種類を判定し、ボタンがカプセルボタンであった場合はステップ3906でボタンを引数としてカプセルボタン下から上へのイベント手続きをコールする。
ボタンがホームページリンクボタンであった場合はステップ3907でボタンを引数としてホームページリンクボタン下から上へのイベント手続きをコールする。ボタンがサウンドボタンであった場合は、ステップ3908でボタンを引数としてサウンドリンクボタン下から上へのイベント手続きをコールする。ボタンが閉じるボタンであった場合はステップ3909でボタンを引数として閉じるボタン下から上へのイベント手続きをコールする。ボタンがその他であった場合はステップ3910へジャンプする。ステップ3910でボタンは子ボタンリストの最後であるか否かを判定し、最後であった場合はリターンする。最後でなかった場合は、ステップ3905で子ボタンリストの次に登録されているボタンを取得しボタンへ代入した後、ステップ3904に戻る。
次に、カプセルボタンイベント受信後の処理について図面を参照して説明する。図40は、カプセルボタンイベント受信後の処理の流れを示すフローチャート図である。カプセルボタンはイベントを受信するとカプセル画面を開く。図40はこの処理の流れ示す。まず、カプセル画面の開く位置を求めるために、カプセル内にカプセルとカプセル画面の開く位置の差、すなわちオフセットが格納されている。ステップ4001で変数「位置」にカプセル画面を開くオフセットと引数のカプセルボタンの位置の和を格納する。そして、ステップ4002において、その位置に引数のカプセルボタンに関連付けられたカプセル画面を開きリターンする。
次に、閉じるボタンイベント受信後の処理について図面を参照して説明する。
図41は閉じるボタンイベント受信後の処理の流れを示すフローチャート図である。閉じるボタンは、イベントを受信すると貼り付け先の台紙・カプセル画面を閉じる。図41はこの処理を表している。図41に示すように、ステップ4101で引数の閉じるボタンの貼り付け先を判定し、貼り付け先が台紙・カプセル画面であれば、ステップ4102で引数の閉じるボタンの貼り付け先の台紙・カプセル画面を引数として台紙・カプセル画面を閉じる手続きをコールする。貼り付け先がその他の場合は何もせずにリターンする。
図42は同時ボタンイベント受信後の挙動の処理を表すフローチャートである。
同時ボタンはイベント受信後、図33で表したイベントの伝達処理以外に何も動作しないことを表している。
次に、サウンドボタンイベント受信後の処理について図面を参照して説明する。図43は、サウンドボタンイベント受信後の処理の流れを示すフローチャート図である。サウンドボタンはイベントを受信するとそのサウンドボタンが内包しているサウンドを再生する。図43はこの処理の流れを示している。図43に示すように、ステップ4301において、引数のサウンドボタンが内包しているサウンドを再生する。
次に、ホームページリンクボタンイベント受信後の処理について図面を参照して説明する。図44は、ホームページリンクボタンイベント受信後の挙動の処理の流れを示すフローチャート図である。ホームページリンクボタンはイベントを受信するとWWWブラウザを起動し、そこにホームページリンクボタンが内包しているリンク先のホームページを表示する。図44はこの処理の流れを表している。図44に示すように、まず、WWWブラウザ画面の開く位置を求めるために、ホームページリンクボタン内にはホームページリンクボタンとWWWブラウザ画面との開く位置の差、すなわちオフセットが格納される。ステップ4401において、変数「位置」にWWWブラウザ画面を開くオフセットと引数のホームページリンクボタンとの位置の和を格納する。次いで、ステップ4402において、その位置に、引数のホームページリンクボタンに関連付けられたリンク先ホームページを表示したWWWブラウザ画面を開く。
次に、デジタル化されたデータ・情報を取り扱う場合の例としてイメージスキャナ画面上の操作の処理について説明する。図45は、イメージスキャナ画面上の操作の処理の流れを示すフローチャート図である。図45に示すように、ステップ4501で操作の内容を判定しプレビュー表示操作であった場合はステップ4502へ分岐する。プレビュー欄の台紙・カプセル画面へのドラッグアンドドロップ操作であった場合はステップ4503へ分岐する。ステップ4502で接続中のイメージスキャナにアクセスし、そのイメージスキャナに設定中の画像の縮小イメージを取り込み、プレビュー欄に表示する。ステップ4503でプレビュー欄に縮小イメージが表示中であるか否かを判定し、表示中であるならばステップ4504へ分岐する。表示中でなければリターンする。ステップ4504でドロップ先にある貼り付け先の台紙・カプセル画面の大きさを参照し、その大きさからスキャナから取り込む際の解像度を決定する。解像度は、取り込む画像サイズの縦横比率を保持しかつ、貼り付け先の台紙・カプセル画面の矩形に内接する最大矩形サイズとする。ステップ4505で接続中のイメージスキャナにアクセスし、ステップ4504で算出した解像度で、画像を取り込む。ステップ4506でステップ4505の画像を写真素材としてドロップ位置に貼り付ける。尚、イメージスキャナ以外に、デジタルカメラやデジタルビデオカメラにおけるデジタル情報を取り扱う場合も同様に処理できる。
次に、台紙・カプセル画面を閉じる処理について図面を参照して説明する。図46は、台紙・カプセル画面を閉じる処理の流れを示すフローチャート図である。図46に示すように、ステップ4601で、引数の台紙・カプセル画面を閉じ、ステップ4602へ進む。ステップ4602で、引数の台紙・カプセル画面に貼られているボタンを取得し、変数子ボタンリストへ格納し、ステップ4603へ進む。ステップ4603で、子ボタンリストのはじめに登録されているボタンを取得し、変数ボタンへ代入する。その後、ステップ4604へ進む。ステップ4604で、ボタンの種類を判定し、カプセルボタンであった場合は、ステップ4605へ分岐する。ホームページリンクボタンであった場合はステップ4608へ分岐する。その他のボタンであった場合は、ステップ4606へ分岐する。
ステップ4605で、ボタンと関連づいている台紙・カプセル画面を引数として台紙・カプセル画面を閉じる手続きをリカーシブコールし、ステップ4606へ進む。ステップ4608でボタンと関連づいているWWWブラウザ画面を閉じ、ステップ4606へ進む。ステップ4606で、ボタンが子ボタンリストの最後に登録されているボタンであるかどうかを判定し、最後である場合は、リターンする。そうでない場合は、ステップ4607へ進む。ステップ4607で、子ボタンリストの次に登録されているボタンを取得し、ボタンへ代入し、ステップ4604へ戻る。
次に、ボタンと関連付いている画面を閉じる処理について図面を参照して説明する。
図47は、ボタンと関連付いている画面を閉じる処理の流れを示すフローチャート図である。図47に示すように、ステップ4701において、引数のボタンリストのはじめに登録されているボタンを取得し、変数ボタンへ代入する。その後、ステップ4702に進む。ステップ4702でボタンの種類を判定し、ホームページリンクボタンであった場合はステップ4703へ、カプセルボタンであった場合はステップ4704に分岐する。その他の場合には、ステップ4707に分岐する。ステップ4703において、ボタンと関連付けられたWWWブラウザ画面を閉じ、ステップ4705へ進む。ステップ4704で、ボタンと関連付けられている台紙・カプセル画面を引数として台紙・カプセル画面を閉じる手続きをリカーシブコールし、ステップ4705に進む。ステップ4705において、ボタン上に貼られているボタンを取得し、変数子ボタンリストへ格納し、ステップ4706に進む。ステップ4706において、子ボタンリストを引数としてボタンと関連付けられている画面を閉じる手続きをコールし、ステップ4707に進む。ステップ4707において、ボタンが子ボタンリストの最後に登録されているボタンであるか否かを判定し、最後である場合は、リターンする。最後でない場合は、ステップ4708に進む。ステップ4708において、子ボタンリストの次に登録されているボタンを取得し、ボタンへ代入し、ステップ4702に戻る。
次に、引き出し内の操作の処理について図面を参照して説明する。図48は、引き出し内の操作の処理の流れを示すフローチャート図である。図48に示すように、ステップ4801において操作の内容を判定し、操作が作品アイコンをダブルクリックしたものであった場合はステップ4802においてダブルクリックした作品をロードし、編集状態にした後にリターンする。操作が箱アイコンをダブルクリックしたものであった場合は、ステップ4803でダブルクリックした箱内に格納されている書類を羅列表示する引き出しを開いた後にリターンする。
操作が作品アイコンを台紙・カプセル画面あるいはカプセルバインダーにドラッグアンドドロップであった場合は、ステップ4806でマウスリリース位置を左上角としてカプセルボタンを生成し、ステップ4807でカプセルボタンをクリックしたときに開くカプセル画面として引き出しから選んだ作品を割り当てた後リターンする。
次に、写真ブラウザ上の操作の処理について図面を参照して説明する。図49は、写真ブラウザ上の操作の処理の流れを示すフローチャート図である。図49に示すように、ステップ4901において操作を判定し、操作がフォルダの指定であった場合は、ステップ4902において、指定されたフォルダ中の画像ファイルのサムネイルを作成し表示した後、リターンする。操作がサムネイルの台紙・カプセル画面へのドラッグアンドドロップであった場合は、ステップ4903において指定の画像素材をドロップ位置に貼り付けた後にリターンする。
次に、サウンドブラウザ上の操作の処理について図面を参照して説明する。図50は、サウンドブラウザ上の操作の処理の流れを示すフローチャート図である。ステップ5001で操作の判定をし、操作がフォルダの指定であった場合は、ステップ5002で指定されたフォルダ中のサウンドファイルのファイル名とアイコンを組にして表示した後、リターンする。操作がサムネイルの台紙・カプセル画面あるいはカプセルバインダー上の升目へのドラッグアンドドロップであった場合は、ステップ5003へ進む。ステップ5003でドロップ位置を判定し、台紙・カプセル画面上である場合はステップ5004へ分岐し、カプセルバインダー上である場合はステップ5005へ分岐し、その他である場合はリターンする。ステップ5004でドロップしたアイコンに関連づいているサウンドファイルを再生するサウンドボタンを引数として、台紙・カプセル画面上での部品生成をコールし、その後リターンする。ステップ5005でドロップしたアイコンに関連づいているサウンドファイルを再生するサウンドボタンを引数として、カプセルバインダー上での部品生成をコールし、その後リターンする。
次に、ビデオブラウザ上の操作の処理について図面を参照して説明する。図51は、ビデオブラウザ上の操作の処理の流れを示すフローチャート図である。図51に示すように、ステップ5101において操作の判定し、操作がフォルダの指定であった場合は、ステップ5102において指定されたフォルダ中の映像ファイルの1フレーム目のサムネイルを作成し表示した後、リターンする。操作がサムネイルの台紙・カプセル画面へのドラッグアンドドロップであった場合は、ステップ5103において指定の映像素材のプレーヤをドロップ位置に貼り付ける。その際、表示は1フレーム目で静止状態とする。その後リターンする。
次に、属性変更道具画面上の操作について図面を参照して説明する。図52は、属性変更道具画面上の操作の処理の流れを示すフローチャート図である。図52に示すように、ステップ5201で操作を判定し、操作が作品画面上のオブジェクトを属性変更道具画面へドラッグ&ドロップする操作であった場合はステップ5202へ分岐する。ステップ5201で判定した操作が属性変更道具画面上のボタンあるいは矩形を作品画面上のオブジェクトへドラッグ&ドロップする操作であった場合はステップ5209へ分岐する。属性変更道具画面上のボタンのクリック操作であった場合はステップ5216へ分岐する。ステップ5202でドロップ位置を判定し、属性変更道具画面の属性設定ボタン上であった場合はステップ5203へ分岐する。ドロップ位置が属性設定ボタンを関連した組で囲った矩形上であった場合はステップ5205へ分岐する。ドロップ位置が属性設定ボタンを全て囲った矩形上であった場合はステップ5207へ分岐する。ステップ5203でドロップされたボタンが担当する属性をドロップしたオブジェクトから取得し、属性変更道具画面にカレント属性値として設定し、ステップ5204へ進む。ステップ5204において、ステップ5203で取得した属性をカレント属性として属性変更道具画面の表示に反映しリターンする。ステップ5205でドロップされた矩形内の各ボタンが担当する属性をドロップしたオブジェクトから取得し、属性変更道具画面にカレント属性値として設定し、ステップ5206へ進む。ステップ5206において、ステップ5205で取得した属性をカレント属性として属性変更道具画面の表示に反映しリターンする。ステップ5207でオブジェクトから全ての属性(背景・フォント・枠)を取得し、属性変更道具画面にカレント属性値として設定し、ステップ5208へ進む。ステップ5208でステップ5207において取得した属性をカレント属性として属性変更道具画面の表示に反映しリターンする。ステップ5209においてドラッグ開始位置を判定し、属性変更道具画面の属性設定ボタンであった場合はステップ5210へ分岐する。ドラッグ開始位置が属性設定ボタンを関連した組で囲った矩形であった場合はステップ5212へ分岐する。ドラッグ開始位置が属性設定ボタンを全て囲った矩形であった場合はステップ5214へ分岐する。ステップ5210でドラッグしたボタンが担当する属性のカレント属性値を変更道具画面から取得し、ステップ5211へ進む。ステップ5211においてステップ5210で取得した属性をドロップ先の変更対象のオブジェクトに設定しリターンする。
ステップ5212で、ドラッグした矩形内の各ボタンが担当する属性のカレント属性値を属性変更道具画面から取得し、ステップ5213へ進む。ステップ5213においてステップ5212で取得した属性をドロップ先の変更対象のオブジェクトに設定しリターンする。ステップ5214で属性を属性変更道具画面から全てのカレント属性値を取得し、ステップ5215へ進む。ステップ5215においてステップ5214で取得した属性をドロップ先の変更対象のオブジェクトに設定しリターンする。ステップ5216でクリックされたボタンが担当する属性のカレント属性値を取得し、ステップ5217へ進む。ステップ5217においてステップ5216で取得した属性を作品上の属性変更対象として選択されているオブジェクトに設定しリターンする。
以上説明したように、本実施の形態によるコンテンツ編集技術によれば、スライドの追加やサウンドの追加など、作品に対して素材を追加する際の操作がドラッグアンドドロップ操作に統一されているため、操作が簡単になる。また操作対象が視覚化された部品であるため、システムに特有の用語などに習熟していない場合でも操作が簡単である。また、スライドの画面の開く位置や大きさの変更などの操作も、オブジェクトに対する操作と同じドラッグアンドドロップ操作で可能である。従って、システムの手引書に頼ることなく直感的な編集操作を行うことができる。
また、ボタン部品の実行順序を指定ことができるため、マルチメディアコンテンツを自動的に再生することができる。実行順序の指定の方法として、個々に順番を設定する方法、ボタンの持つ値によって順番を設定する方法、矢印の形状をもつ部品によって設定する方法などのバリエーションを持たせることができる。
さらに、ドラッグアンドドロップ操作のうちのドロップ操作が、挿入位置を指定する操作に対応しているため、挿入前に予め挿入位置を設定するなどの操作を必要としない。スライド上にマルチメディア素材を貼る場合と同じ感覚で、既存の作品を別の作品へ挿入することも可能である。
加えて、スライドの切り替え時間とコンテンツの再生時間とを関連付けしたことにより、例えば、スライドの切り替え時間として指定した時間がスライドの切り替えを契機に再生するサウンドの再生時間に満たない場合などに、スライドの切り替えの契機にサウンドの再生が中断されてしまうのを防止することができる。
また、オブジェクトの属性を変更する際に、そのオブジェクトのもつ属性と関連する分類毎に或いは全ての属性を一括して設定することもできる。さらに、様々な情報を暦情報に関連付けて整理することが容易にでき、さらにそれらの情報を暦によって規定される順序で参照することができる。また、取り込み先の作品のデータサイズなどに合わせて自動的にコンテンツのデータサイズを調整することも可能である。
尚、台紙部品に設けられた升目の順序は、例えば行列状に複数の升目が形成されている場合には、まず、1つの行に関して列方向に順序を定義付けし、1つの行に関する列方向の順序付けが終了すると、次の行に関して同様の順序付けが行われるようにしても良いし、逆に、1つの列に関して行方向に順序を定義付けし、1つの列に関する行方向の順序付けが終了すると、次の列に関して同様の順序付けが行われるように、方向性を変えても良い。但し、順序付けに関しては、一定の規則性(連続性)が保たれているのが好ましい。
101…中央処理装置、102…キーボード装置、103…ディスプレイ装置、104…マウス、105…ハードディスク、106…イメージスキャナ、107…デジタルカメラ、108…映像キャプチャ装置、109…マイクロフォン、201…コントローラ、202…写真ブラウザ、203…サウンドブラウザ、204…部品箱、205…サウンドレコーダ、206…台紙、207…イメージスキャナ画面、208…カプセル画面、209…ビデオブラウザ、602…カプセルバインダー。