(58)【調査した分野】(Int.Cl.,DB名)
前記第1データのうちの前記1回目の特定スクロール操作およびその後の操作のうち、少なくとも1つの操作に関するデータを除くように前記履歴データを修正した再生用の履歴データを生成する修正手段を備え、
前記再生手段は、前記修正手段によって生成された前記再生用の履歴データに従って前記複数の操作に応じた画面を表示させる
請求項1記載の画面表示装置。
前記再生手段は、前記複数回の第1の操作のうち、前記1回目の特定スクロール操作およびその後の全ての操作に応じた表示を省略しまたはそれらの表示時間を短縮するように、前記複数の操作に応じた画面を表示する
請求項1または2記載の画面表示装置。
前記再生手段は、前記特定スクロール操作が含まれると判定された場合、前記複数回の第1の操作のうち、全ての特定スクロール操作に応じた表示を省略しまたはそれらの表示時間を短縮するように、前記複数の操作に応じた画面を表示する
請求項1または2記載の画面表示装置。
前記再生手段は、前記1回目の特定スクロール操作がスクロールされる画像のスクロール方向の端部を表示させた操作である場合、当該特定スクロール操作に応じた表示を省略しない
請求項1または2記載の画面表示装置。
前記再生手段は、前記1回目の特定スクロール操作が、前記オブジェクトが前記表示面内に表示された状態で開始され、かつ当該オブジェクトを前記表示面から消失させない操作である場合、当該特定スクロール操作に応じた表示を省略しない
請求項1または2記載の画面表示装置。
前記判定手段は、前記位置が、前記第1の操作が行なわれる時点の前記表示面に対する前記オブジェクトの相対位置と、当該第1の操作に従ってスクロールされた直後における前記表示面に対する前記オブジェクトの相対位置との間の位置である場合に、当該第1の操作が前記特定スクロール操作であると判定する
請求項1ないし7いずれかに記載の画面表示装置。
複数の操作が順に行なわれたときの当該複数の操作に応じて表示面において表示された画面を再現する画面表示装置において実行されるコンピュータープログラムであって、
前記画面表示装置が有するコンピューターに、
前記複数の操作の履歴データから、スクロールを指示する複数回の第1の操作に関する第1データ、および前記第1の操作の後に行なわれたオブジェクトを選択する第2の操作における前記表示面内の操作された位置を示す第2データを抽出する処理と、
前記複数回の第1の操作に、前記第2データによって示される前記位置からみた片側から他の片側へ前記オブジェクトが移動するようなスクロールを指示する操作である、特定スクロール操作が含まれるかどうかを判定する処理と、
前記特定スクロール操作が含まれると判定された場合、前記複数回の第1の操作のうちの1回目の特定スクロール操作およびその後の操作のうち、少なくとも1つの操作に応じた表示を省略しまたはその表示時間を短縮するように、前記複数の操作に応じた画面を表示する処理と、を実行させる
ことを特徴とするコンピュータープログラム。
【発明を実施するための形態】
【0013】
図1に例示される画面表示システム5は、第1のMFP1、サーバー2、リムーバブルメモリ3、および第2のMFP4を有している。MFP1,4およびサーバー2は、企業のオフィスに構築されたLAN(Local Area Network)6に互いの間の通信が可能に接続されている。サーバー2およびリムーバブルメモリ3は、MFP1,4に対する外部記憶装置として利用される。
【0014】
MFP1は、オフィスワークに有用な複数の機能を集約した複合型の情報機器である。MFP1は、投入されるジョブに応じて、コピー機、プリンター、ネットワークスキャナー、ファクシミリ機、ドキュメントサーバーなどとして動作する。MFP1は、ユーザーが操作に用いる操作パネル20を有している。操作パネル20の右側面に、リムーバブルメモリ3の着脱を可能にするコネクタ部が設けられている。リムーバブルメモリ3は、USB(Universal Serial Bus)の規格に準拠したいわゆるUSBメモリである。
【0015】
MFP4は、MFP1と共通のユーザーインタフェースによって操作される複合型の情報機器である。本実施形態では、MFP4がMFP1と同型であるものとし、以下に説明するMFP1の構成および機能をMFP4が有しているものとする。すなわち、MFP1およびMFP4は、これらの一方で記録された操作の履歴に基づいて、記録された操作に応じた画面を他方において再現することができる。履歴を示すデータの受け渡しをサーバー2またはリムーバブルメモリ3を介して行なうことができる。
【0016】
図2はMFPのハードウェア構成の概略を示している。MFP1は、MFP1の制御を統括するメインコントローラー10、イメージスキャナー12、プリンターエンジン14、ストレージ16、
通信インタフェース18、操作パネル20、および操作パネルコントローラー23を備えている。
【0017】
イメージスキャナー12は、原稿シートに記録されている画像を光学的に読み取る。プリンターエンジン14は、コピー、プリントおよびファクシミリ受信において、例えば電子写真法によって画像を用紙に印刷する。印刷方法はインクジェット法または他の方法であってもよい。
【0018】
ストレージ16は例えばハードディスクドライブであり、アプリケーションプログラムの保存およびデータ処理におけるデータの一時的な記憶などに用いられる。ストレージ16には、ボックスと呼ばれるメモリ領域が設けられる。ボックスは、各ユーザーが専用する個人ボックスおよび複数のユーザーが共有する共通ボックスといった複数の領域に区分して利用される。本実施形態では、ユーザーが再生させることのできる操作の履歴情報(ログ)の保存先の1つとしてボックスが利用される。
【0019】
通信インタフェース18は、MFP1と外部装置との通信を可能にする。通信インタフェース18は、MFP1をLAN6に通信可能に接続するネットワーク・インタフェース・カード(NIC)、および公衆電話回線によるファクシミリ通信のためのモデムを含んでいる。また、通信インタフェース18は、上述のように操作パネル20の側面に装着されるリムーバブルメモリ3との通信のためのUSBインタフェースを備えている。
【0020】
操作パネル20は、ハードキーパネル21とタッチパネルディスプレイ22とを有している。ハードキーパネル21には複数のハードキーが配置されている。タッチパネルディスプレイ22は、ソフトウェアキーであるボタンの配置された各種の操作画面を表示し、操作画面に対するタッチ操作を検出する入出力デバイスである。タッチパネルディスプレイ22は、液晶パネルとその表面に密着する透光性のタッチ面部を有した静電容量式のタッチパネルとから構成される。
【0021】
操作パネルコントローラー23は、CPU24、ROM(Read Only Memory)25、RAM(Random Access Memory)26、入力制御部27、表示制御部28、およびVRAM(Video RAM)29を備える。
【0022】
CPU24は、操作パネル20の制御に関わるプログラムを実行するコンピューターとして動作する。ROM25はプログラムおよび制御データを記憶している。RAM26はプログラム実行のワークエリアとして使用される。
【0023】
入力制御部27は、ハードキーパネル21からのキー操作の検知信号を監視し、キー操作の発生をCPU24に通知する。操作されたハードキーの色を切り替えるランプ制御を入力制御部27が受け持つ。また、入力制御部27は、タッチパネルディスプレイ22からのタッチ操作の検知信号を監視し、タッチ操作の発生をCPU24に通知する。
【0024】
入力制御部27からの通知を受けて、CPU24がユーザーの指示を判別し、判別した指示に応じてメインコントローラー10に指示を通知したり、表示制御部28に対して表示内容の切替えを指示したりする。
【0025】
表示制御部28は、タッチパネルディスプレイ22による画面の表示を制御する。表示制御部28は、MFP1の操作に関わる画面を構成する背景像、ボタン、文字列などのオブジェクトのデータをROM25から適宜読み出して組み合わせ、表示すべき画面に対応したラスター画像をVRAM29上に描画する。そして、表示制御部28は、描画したラスター画像をタッチパネルディスプレイ22に送り、操作画面として表示させる。
【0026】
タッチパネルディスプレイ22によって表示された操作画面においてユーザーがボタンをタップしたとき、それを検知したことを表わすため、ボタンを凹ませて直ぐに戻すアニメーションを表示したり、ボタンの色を切り替えたりする必要がある。表示制御部28は、このような表示のための処理をCPU24からの指示に従って行なう。また、表示制御部28は、スクロール表示に際して、スクロールする画像が表示面内で滑らかに動いて見えるようにするアニメーション処理を行なう。詳しくは、スクロールする画像の全体のデータから当該画像のうちの表示させる部分のデータを切り出してラスター画像を描画し、切り出す部分をずらして描画を繰り返す。描画と並行して描画を終えたラスター画像をVRAM29から読み出してタッチパネルディスプレイ22に表示させる。
【0027】
図3はMFPの操作パネルの構成を示している。操作パネル20のハードキーパネル21は、図示におけるタッチパネルディスプレイ22の右側に配置された部分21Aと、下側に配置された部分21Bとから構成される。ハードキーパネル21の部分21Bに、スタートキー31、ストップキー32、および記録/再生キー35が配置されている。
【0028】
スタートキー31は、処理の実行開始をユーザーが指示するためのキーである。ストップキー32は、実行中の処理の中止または停止を指示するときに押下される。記録/再生キー35は、操作を記録する記録モードをユーザーが指定するとき、および操作の記録の再生する再生モードをユーザーが指定するときに押下される。
【0029】
以下、MFP1における画面の再現に関わる構成および動作を説明する。
【0030】
MFP1は、記録モードが選択された状態で操作パネル20を用いてユーザーが行なった操作を記録する機能、および記録された操作のログを再生する機能を有している。ログの再生によって、記録された操作が行なわれたときの画面表示の変遷が再現される。ログを再生させるには、ユーザーは再生モードを指定する必要がある。
【0031】
記録モードの指定および再生モードの指定には記録/再生キー35が用いられる。
図4のフローチャートに示されるように、記録/再生キー35が長押しされたときに(S01でYES、S02でYES)、CPU24は記録モードを設定して記録ルーチン(S03)を実行する。記録/再生キー35が押下されその押下が長押しでない場合(S01でYES、S02でNO)、CPU24は再生モードを設定して再生ルーチン(S04)を実行する。
【0032】
図5は
図4の記録ルーチンのフローチャートである。
【0033】
CPU24は、スタートキー31が押下されたかどうかを、押下されるまで繰り返しチェックする(S31)。スタートキー31が押下されると(S31でYES)、CPU24は、入力制御部27から入力される操作パネル20による操作のイベント情報を、ログのレコードとして記録する(S32)。イベント情報は、操作の種別および操作の発生時刻を特定する情報を含んでいる。そして、ストップキー32が押下されるまでの間(S33でNO)、CPU24は、入力制御部27から操作の発生が通知されるごとにレコードを追加する形でログを更新する。
【0034】
ストップキー32が押下されると(S33でYES)、CPU24は、ログの保存の設定を行なう(S34)。このステップS34において、CPU24は、
図6に示される画面44を表示させる。画面44は、ユーザーが保存データの名称および保存先を指定するために表示される。
【0035】
図6のように、画面44は、保存データの名称の入力エリア92、保存先の選択肢にそれぞれ対応するチェックボックス93,94,95、および指定を確定させるためのOKボタン96を有する。画面44が表示されるとき、入力エリア92には日時およびユーザーIDに基づいて自動付与される名称が表示される。ユーザーは自動付与される名称に代えて所望の名称を指定することができる。ユーザーが入力エリア92にタップすると、入力エリア92の下側にソフトウェアキーボードがポップアップ表示され、任意の文字の入力が可能になる。図示では保存データの名称として「鏡像コピー」が入力されている。
【0036】
保存先の選択肢は、MFP1のストレージ16内のボックス、MFP1の外部のサーバー2、およびMFP1に装着されている
リムーバブルメモリ3である。ユーザーは所望の選択肢に対応するチェックボックス93,94,95をタップすることによって保存先を選択する。選択状態のチェックボックス93,94,95にはチェックマークが付加される。図示ではチェックボックス93にチェックマークが付加されており、ボックスが保存先に指定されている。なお、3つの選択肢のうちのいずれか1つ、任意の2つまたは3つ全てを保存先に指定することができる。ただし、
リムーバブルメモリ3が装着されていない場合、選択肢はボックスおよびサーバー2の2つとなる。
【0037】
図5に戻って、CPU24は画面44においてOKボタン96がタップされるのを契機として(S35でYES)、上述のステップS32で得たログを保存するための処理を行なう(S36)。すなわちCPU24は、画面44でユーザーによって指定された保存先であるボックス(ストレージ
16)、サーバー2、または
リムーバブルメモリ3へのログの格納をメインコントローラー10に要求する。メインコントローラー10によってログは要求どおり保存先に転送されて保存される。
【0038】
このようにして保存されたログは随時に再生される。一般に、再生を指示するユーザー(ユーザーBとする)は、当該ログによって記録された操作をしたユーザー(ユーザーAとする)とは別のユーザーである。例えば、MFP1の操作に不慣れなユーザーBが、記録された操作の手順を学習する目的でログを再生させることが想定される。ただし、ユーザーAがログを再生させてもよい。
【0039】
本実施形態のMFP1におけるログを再生する機能には、ログを必要に応じて修正して再生する第1モードと、ログをそのまま再生する第2モードとがある。ユーザーは再生を指示する際に第1モードまたは第2モードを指定することができる。
【0040】
第1モードにおけるログの修正は、ログを構成するレコードのうちの特定の条件に当てはまるスクロール操作のレコードを削除するものである。一部のレコードを削除することによって、必然的にログの再生時間は短くなる。
【0041】
第1モードについて操作画面の具体例を挙げてさらに説明する。
【0042】
図7に示される画面41は、コピー機能に関わる動作設定の初期画面である。画面41の上端部に、コピー動作を開始することができる状態であることを知らせるメッセージエリア50が設けられている。画面41の下端部に、ボタン51,52,53,57を含む機能選択のための7個のボタンが左右に一列に配置され、右端部に機能グループの選択のためのボタン58,59,60が上下に並べて配置されている。メッセージエリア50とボタン列との間の領域41Bは、機能選択のための7個のボタンのいずれかがタップされたときに、タップされたボタンに対応する機能についての詳細な設定のためのウィンドウがポップアップ表示される領域である。
【0043】
機能選択のための7個のボタンは、MFP1が有する多数の機能のうちの基本1グループに属する機能に対応する。このことを表わすため、画面41では、基本1グループに対応するボタン58を囲む枠状のカーソル61が表示される。
【0044】
画面41においてボタン59がタップされると、画面41に代えて、基本2グループに対応する機能選択のためのボタンが並ぶ画面が表示される。ボタン59のタップを契機として表示される画面のレイアウトは、画面41のレイアウトと同様である。基本1グループに対応する画面41および基本2グループに対応する図示しない画面では、スクロール表示は行なわれない。これに対して、画面41においてボタン60がタップされたときに表示される画面では、スクロール表示が行なわれる。
【0045】
図8に示される画面43は、
図7の画面41においてボタン60がタップされたときに画面41に代えて表示される。画面43の上半部に設けられたスクロール領域43Aにおいて、ボタン71,74,77を含む機能選択のための複数のボタンの列が表示面220に対して左右に移動するように見えるスクロール表示が行なわれる。スクロール表示によって、左右に並ぶボタンの列が一部分ずつ表示面内に現れることになる。一度に表示されるボタンの数は図示のように8個程度である。
【0046】
画面43では、ユーザーがスクロールを指示する操作(スクロール操作)として、画面43の左右の全長にわたるスクロール領域43A内の任意の位置でのフリックまたはドラッグ、スライダー81のフリックまたはドラッグ、およびスクロールボタン82,83のタップが受け付けられる。
【0047】
スライダー81は、スクロール領域43Aの下方に配置されたスケール79上のカーソル80に付随する移動式のボタンである。スケール79は、スクロール表示の対象とされる画像としてのボタン列70(
図9参照)の全体を簡略化して表わす図形であり、カーソル80は、ボタン列70のうちの表示されている部分を示す図形である。
【0048】
スクロール表示の対象であるボタン列70がその移動端まで移動した状態ではないとき、スクロール操作に従ってボタン列70が移動する。例えば、スクロール領域43Aでの左方へのフリックに従ってボタン列70は左方へ移動し、同じく右方へのフリックに従ってボタン列70は右方へ移動する。スライダー81の左方へのフリックに従ってボタン列70は右方へ移動し、同じく右方へのフリックに従ってボタン列70は左方へ移動する。
【0049】
なお、画面43においてボタン84がタップされると、画面43に代えて
図7の画面41が表示される。
【0050】
図10は、保存されたログを再生する画面表示装置としてのMFPの要部の機能構成を示している。
【0051】
MFP1は、ログ取得部101、抽出部103、判定部105、修正部107、およびログ再生部109を有する。これらの要素は、CPU24がROM25に格納されているプログラムを実行することによって実現される機能要素である。
【0052】
ログ取得部101は、記憶部9からそこで保存されているログ200を取得する。記憶部9とは、ログ200の保存先の選択肢とされているストレージ16のボックス、サーバー2、およびリームーバブルメモリ3の総称である。
【0053】
抽出部103は、ログ200から第1レコードおよび第2レコードを抽出する。第1レコードは、画面43のようにスクロール領域43Aを有した画面におけるスクロール操作に対応したレコードである。第2レコードは、第1レコードに対応する画面においてスクロール操作の後に行なわれた、スクロール領域43A内に配置されたボタンを選択する操作に対応したレコードである。
【0054】
判定部105は、第1レコードで示されるスクロール操作が“特定スクロール操作”であるかどうかを判定する。これにより、スクロール領域43Aを有した画面で複数回のスクロール操作が行なわれた場合、複数回のスクロール操作に特定スクロール操作が含まれるかどうかが判定部105によって判定されることになる。“特定スクロール操作”は、表示面220内の第2レコードによって示される操作された位置からみた片側から他の片側へボタンが移動するようなスクロールを指示する操作である。すなわち、操作された位置で表示面220をスクロール方向に並ぶ2つの領域に仮想的に区分したとき、これら領域の境界(区分線)を跨ぐようにボタンを移動させるスクロール操作が特定スクロール操作である。
【0055】
修正部107は、特定スクロール操作が含まれると判定された場合に、特定スクロール操作およびその後の操作に対応する画面表示の再現時間が短くなるようにログ200を修正した再生用のログ250を生成する。ログ再生部109は、再生用のログ250に従ってMFP1に画面表示を行なわせる。
【0056】
図11はログの項目を示している。ログ200におけるレコードは、レコードの番号201、画面ID/スクロール状態
202、経過時間203、操作の種別204、およびその他の属性205という項目のデータから構成される。再生用のログ250のレコードのデータ構成はログ200のレコードのデータ構成と同様である。
【0057】
図12は、スクロール操作の定義情報の例を示している。ROM25には、スクロール操作として検知すべき操作を定めたテーブル150が格納されている。本例では、スクロール領域43Aのフリック、スライダー81のドラッグ、スクロール用のボタン82,83のタップ、スクロール用のボタン82,83のホールドなどがスクロール操作として定められている。
【0058】
図13は、ログが示す記録された一連の操作の例を模式的に示している。例示において、(A)〜(E)の各段階でフリックが行なわれ、(F)の段階でボタン90のタップが行なわれている。ここで、ボタン90は、原稿画像を左右反転して印刷する鏡像コピー機能を選択するボタンであるとする。
【0059】
(A)の段階でボタン90は画面43内には無く画面43の右側に存在するので表示されていない。このときのスクロール方向(本例では左右方向)におけるボタン90の座標値をX20とする。ボタン90を表示させようとしてフリックが行なわれ、ボタン列70が左方へ移動する。
【0060】
(B)の段階で、ボタン90は、(A)の段階と比べると左方へ移動しているが、いまだ画面43の右側に存在する。このときのボタン90の座標値をX30とする。ボタン90を表示させようとしてフリックが行なわれ、ボタン列70が左方へ移動する。
【0061】
(C)の段階で、ボタン90は画面43の左側に存在する。画面43の外部に存在するので、ボタン90は表示されていない。このときのボタン90の座標値をX40とする。ボタン90を表示させようとしてフリックが行なわれ、ボタン列70が右方へ移動する。
【0062】
(D)の段階で、ボタン90は再び画面43の
右側に存在する。このときのボタン90の座標値をX50とする。ボタン90を表示させようとしてフリックが行なわれ、ボタン列70が左方へ移動する。
【0063】
(E)の段階で、ボタン90は画面43の左端部に存在する。このときのボタン90の座標値をX60とする。ボタン90は表示されているが、ボタン90の位置を最適化しようとしてフリックが行なわれ、ボタン列70が少し右方へ移動する。
【0064】
(F)の段階で、ボタン90は画面43の左右の中央付近に存在する。このときのボタン90の座標値をX7とする。鏡像コピー機能を選択するため、ボタン90がタップされる。
【0065】
このような一連の操作には、結果的にボタン90を必要以上に移動させることになったスクロール操作が含まれる。MFP1は、ボタン90を必要以上に移動させることになったスクロール操作ついて、それに伴う画面表示の再現を省略する。
【0066】
図14は、再現される一連の操作の例を模式的に示している。
図14では、
図13における(C)〜(
E)の段階のフリックが省略されている。
【0067】
図15および
図16は、画面表示を再現する際に行なわれるマークの付加の例を示している。再生用のログ250に基づいて画面表示を再現する際には、ボタン90がタップされる以前の期間に、その後にタップされることになるボタン90を強調するマーク98,99が画面43に付加される。
【0068】
図15のようにボタン90が表示されない段階では、スケール79内におけるボタン90に対応する四角形を囲む枠状のマーク98が付加される。これにより、ユーザーは以後の早い時期にボタン90に対するタッチ操作が行なわれることを予測することができる。
【0069】
図16のようにボタン90が画面43内に存在する段階では、マーク98が付加されるとともに、ボタン90自体を囲む枠状のマーク99が付加される。これにより、ユーザーは、ボタン90に対するタッチ操作が行なわれる以前に、タッチ操作が行なわれるボタンがボタン90であることをより確実に認識することができる。
【0070】
図17は、保存されたログの例および再生用のログの例を示している。図示では、説明の便宜のため、ログ200のレコードの番号をアルファベット「A」と数字とを組み合わせた文字列で表わし、再生用のログ250のレコードの番号をアルファベット「B」と数字とを組み合わせた文字列で表わしている。
【0071】
図17(A)のログ200は、画面41から画面43へ表示を切り替え、画面43でボタン90を表示させるために複数回のフリックを行ない、ボタン90をタップして鏡像コピー機能を選択し、鏡像コピーに関する設定をし、スタートキー31を押下して鏡像コピーを開始させる、という一連の操作に対応している。
【0072】
ログ200における番号A1のレコードは、画面IDが「初期」である画面41において、記録の開始から2秒経過した時点で座標(X1,Y1)の位置がタップされたことを示している。番号A2のレコードは、画面IDが「応用」である画面43において、ボタン列70の基準位置(例えば左端)の座標値がXaであるスクロール状態で、記録の開始から4秒経過した時点でフリックが行なわれたことを示している。番号A3〜A6のレコードも、画面43でフリックが行なわれたことを示している。番号A7のレコードは、画面43において、記録の開始から12秒経過した時点で座標(X7,Y7)の位置がタップされたことを示している。そして、番号A12のレコードは、画面IDが「鏡像」である詳細設定のための画面が表示されている状態で、記録の開始から18秒経過した時点でスタートキー31が押下されたことを示している。
【0073】
一方、
図17(B)の再生用のログ250は、ログ200における番号A4、A5およびA6の各レコードを省いたものに相当する。再生用のログ250の番号B1〜B4およびB9の各レコードはログ200の番号A1〜A3、A7およびA12の各レコードに対応する。
【0074】
ここで注意すべきことは、再生用のログ250の作成に際して、レコードの省略に合わせて経過時間が修正されていることである。番号A7のレコードの経過時間は12秒であるが、番号A7に対応する番号B4のレコードの経過時間は7秒である。また、番号A12のレコードの経過時間は18秒であるが、番号A12に対応する番号B9のレコードの経過時間は13秒である。
【0075】
経過時間の修正には、例えば次のアルゴリズムを適用することができる。省略するレコードとその1つ手前のレコードとの経過時間の差を求め、求めた差を当該1つ手前のレコードとの経過時間に加算した値を、省略したレコードの1つ後のレコードの経過時間とする。
図17に当てはめると、省略するレコード(A4)の経過時間(7秒)と1つ手前のレコード(A3)の経過時間(5秒)との差(2秒)を求め、1つ手前のレコード(A3)の経過時間(5秒)に求めた差(2秒)を加算した値(7秒)を、省略したレコードの1つ後のレコード(B4)の経過時間(7秒)とする。
【0076】
図18は、
図4の再生ルーチンのフローチャートである。
【0077】
この再生ルーチンは、上述のとおり記録/再生キー
35が押下されたときに、CPU24によって実行される。
【0078】
まず、CPU24は、
図19および
図20に示される画面45,46を順に表示させる設定入力処理を行なう(S41)。
図19の画面45は、再生するログをユーザーが指定するための画面である。画面45では、記憶部9に保存されている1つまたは複数のログのリスト97が表示される。リスト97内の所望のログ200の行にタップすることで、再生するログ200を選択することができる。図示では「鏡像コピー」という名称でボックスに保存されているログ200が選択されている。画面45においてOKボタン96がタップされると、画面45に代えて画面46が表示される。
【0079】
画面46は、再生のモードを選択するための画面である。ログを必要に応じて修正して再生する第1モードと、ログをそのまま再生する第2モードとのいずれかの選択を可能にするラジオボタンに対応づけて、これらモードの簡単な説明文110,120が表示される。第1モードについては、修正方法に関する3つのサブモードのいずれかを選択することができるようになっている。第1のサブモード(モード1)は、特定スクロール操作を全て再現しないようにするモードである。第2のサブモード(モード2)は、2回以上続く特定スクロール操作のうちの2回目以降の特定スクロール操作を再現しないようにするモードである。第3のサブモード(モード3)は、一旦、スクロール対象を移動させて戻すスクロール操作を再現するようにするモードである。
【0080】
図18に戻って、CPU24は、画面46が表示されている状態でスタートキー31が押下されたかどうかをチェックする(S42)。スタートキー31が押下されると(S42でYES)、CPU24は、記憶部9からログ200を取得する(S43)。
【0081】
次に、CPU24は、第1モードが選択されているかどうかをチェックする(S44)。第1モードが選択されていない場合、すなわち第2モードが選択されている場合(S44でNO)、CPU24は、ログ200をそのまま再生する。
【0082】
第1モードが選択されている場合(S44でYES)、CPU45はログの解析ルーチンの処理を実行する(S45)。解析の結果、「再生不要」と判定されたレコードである省くべきレコードがなかった場合(S46でNO)、CPU24は解析済のレコードを再生用のログ250のレコードとして記録する(S47)。一方、解析の結果、省くべきレコードがあった場合(S46で
YES)、CPU24は省くべきレコード以外の解析済のレコードを再生用のログ250のレコードとして記録する(S51)。
【0083】
その後、ログ200の全てのレコードについて解析が終わるまでステップS45へ戻ってログの解析を行なう。そして、解析が終わると(S48でYES)、CPU24はステップS47,S51によって得られた再生用のログ250を再生する。
【0084】
なお、必ずしもログ200の全体の解析が終わってから再生用のログ250を再生する必要はなく、解析がある程度進んだときに、それまでに得られた再生用のログ250の再生を開始し、ログ200の残りの解析と並行して再生用のログ250を再生するようにしてもよい。
【0085】
図21は座標軸の設定の一例を示している。タッチパネルディスプレイ22の表示面220の左上隅を原点とし、原点から右方へ向かう方向を正方向とするX軸、および原点から下方へ向かう方向を正方向とするY軸をもつ直交座標系を想定する。表示面
220のX方向の長さをH、Y方向の長さをVとすると、表示面220の左下隅、右下隅、および右上隅の座標は、順に(0,V)、(H,V)および(H,0)となる。
【0086】
スクロール対象の画像であるボタン列70のX方向の長さをLとすると、ボタン列70は、X座標値が−(L−H)である位置とX座標値がLである位置との間で移動可能とされる。スクロール表示では、アニメーションのためのラスター画像を生成するために表示面220に対するボタン列70の位置が管理されるので、ボタン列70の位置情報からボタン90の位置を特定することができる。すなわち、ボタン列70の左端からの距離がL90である位置をボタン90の位置として算出することができる。
【0087】
図22は、ボタンのタッチ位置とボタンの座標値との関係を示している。ボタン90がタップされたとき、そのタッチ位置P90の座標(X7,Y7)が
図17のようにログ200に記録される。上述したようにフリックに従ってボタン90がスクロール方向M1であるX方向に移動する過程におけるボタン90のX座標値(X20,X30,X40など)は、ボタン90の幾何重心90Gに対応する。
【0088】
図18のステップS45のログの解析では、各回のフリックが行なわれた直後のボタン90のX座標値とタッチ位置P90のX座標値との比較によって、フリックが特定スクロール操作であるかどうかが判定される。
【0089】
図23はログの解析に用いる対象リストおよびレジスタの例を示し、
図24のフローチャートはログの解析ルーチンの処理を示している。
図23および
図24のフローチャートを参照して、ログの解析の手順を説明する。
【0090】
図24において、CPU24は取得したログ200におけるレコードの1つに注目する(S451)。注目するレコードは未注目のレコードのうちで最も番号の若いレコードである。
【0091】
CPU24は、注目したレコードにおける操作の種別のデータに基づいて、当該レコードに対応する操作が
図12のテーブル150に定められているスクロール操作であるかどうかをチェックする(S452)。注目したレコードの操作がスクロール操作である場合(S452でYES)、当該レコードの番号を
図23に示される対象リスト300の末尾に追加する(S461)。番号だけでなく他の項目のデータを合わせてログ200から対象リスト300に転記してもよい。
【0092】
対象リスト300へレコードの番号を追加した後、フローはステップS451へ戻る。したがって、
図13の例のようにフリックが繰り返された場合、複数回のフリックのそれぞれに対応するレコードの番号が、次々に対象リスト300に追加されることになる。
【0093】
注目したレコードの操作がスクロール操作でない場合(S452でNO)、当該レコードの1つ前のレコードの操作がスクロール操作であるかどうかをチェックする(S453)。チェック結果がNOである場合、ステップS451で注目した当該レコードについての解析結果を「再生すべき」とする(S462)。フローは
図18のフローへ戻る。
【0094】
ステップS453のチェック結果がYESである場合、CPU24は、注目したレコードの番号を対象リスト300の末尾に追加し(S454)、対象リスト300に番号が記入された複数のレコードについてステップS455〜S460の処理を行なう。
【0095】
図23をも参照して、CPU24は、対象リスト300の末尾のレコードにおけるスクロール方向M1の座標値(X7)をログ200から読み込み、レジスタ310に格納する(S455)。続いて、対象リスト300の末尾のレコードが示す操作されたボタン90を認識する(S456)。このとき、認識したボタン90のID(「鏡像」とする)をレジスタ320に格納する。
【0096】
次に、CPU24は、対象リスト300の末尾以外のレコード、すなわちスクロール操作に対応するレコードについて、操作開始時におけるボタン90の座標値を算出する(S457)。さらに、求めた座標値(X20、X30、X40、X50、X60)と末尾のレコードの座標値(X7)とを比較して大小関係を判別する(S458)する。
【0097】
そして、CPU24は、ステップS458での判別結果に基づいて、対象リスト300の各レコードについて、解析結果を「再生すべき」または「再生不要」に決める判定ルーチンを実行する(S459)。判定ルーチンを実行した後、対象リスト300およびレジスタ310,312,314,316をクリアする。フローは
図18のフローへ戻る。
【0098】
図25は、
図24の判定ルーチンのフローチャートである。CPU24は、対象リスト300における未注目のレコードを対象に、番号の若いレコードから1つずつ順に注目し、注目したレコードに対して次の処理を行なう。
【0099】
図23をも参照して、CPU24は、注目したレコードとその1つ前のレコードとの間で、座標値の大小関係の判別結果が異なるかどうかをチェックする(S591)。このとき、注目したレコードが対象リスト300の先頭のレコードである場合、すなわち1つ前のレコードが無い場合、チェック結果をNOとする。
【0100】
判別結果が異っていない場合(S591でNO)、CPU24は注目したレコードについて解析結果を「再生すべき」とする(S597)。
図23の例を参照すると、対象リスト300の例えば2番目のレコード(A3)についての座標値の大小関係の判別結果は「大きい」である。また、1つ前のレコード(A2)についての座標値の大小関係の判別結果も「大きい」である。2つのレコードについての判別結果が異なっていないので、2番目のレコード(A3)についての解析結果は「再生すべき」とされる。
【0101】
一方、ステップS591のチェック結果がYESである場合、
図20の画面46でユーザーが指定したモードによってフローが分岐する。
【0102】
モード1が指定されている場合、CPU24は、注目するレコードの解析結果を「再生不要」とする(S594)。
【0103】
モード2が指定されている場合、CPU24は、2つ前のレコードとの1つ前のレコードと間で座標値の大小関係を判別結果が異なるかどうかをチェックする(S593)。このステップS593のチェックの結果がYESである場合、特定スクロール操作が続けて行なわれたと判断したCPU24は、注目するレコードの解析結果を「再生不要」とする(S594)。ステップS593のチェックの結果がNOである場合、特定スクロール操作が続いていないと判断したCPU24は、注目するレコードの解析結果を「再生すべき」とする(S597)。
【0104】
モード3が指定されている場合、CPU24は、注目するレコードの操作が、ボタン列70をその端部が表示されるように移動させるスクロール操作であるかどうかをチェックする(S596)。このステップS596のチェックの結果がYESである場合、CPU24は、注目するレコードの解析結果を「再生すべき」とする(S597)。ステップS596のチェックの結果がNOである場合、CPU24は、注目するレコードの解析結果を「再生不要」とする(S594)。
【0105】
モード3は、操作を記録するユーザーは、所望のボタンがボタン列70の端部に配置されている場合、ボタン列70を一気に移動端まで移動させ、少し戻して所望のボタンを表示させる、という操作を意図的に行なうことを想定したモードである。ボタン列70の端部とは、ボタン列70を移動端またはその近傍まで移動させたときに表示される部分である。例えば、一度に表示されるボタンの数が8個程度である場合、ボタン列70の一端からボタンの8〜12個程度分の長さの部分である。ユーザーの意図をログの再生に反映させるため、このようなスクロール操作のレコードを省かないように解析結果が定められる。
【0106】
対象リスト300に記録されたレコードの全てについて判定が終わるまで(S595でYES)、ステップS591からステップS597までの処理が繰り返される。
【0107】
図26は、
図18における再生用のログの再生ルーチンのフローチャートである。
【0108】
CPU24は、再生の開始からの経過時間を計時するタイマーをスタートさせ(
S491)、再生用のログ250から番号順に選んだ1つのレコードを読み込む(S492)。
【0109】
読み込んだレコードの操作がスクロール操作である場合(S493でYES)、CPU24は、以降のレコードを読み込んで操作の種別を判別することによって、タップされたボタン90を特定する(S494)。ステップS492で読み込んだレコードの経過時間とタイマー値とが一致するのを待って(S495)、CPU24は当該レコードを表示制御部28へ出力する(S496)。このとき、ステップS494で特定したボタン90を強調するためのマーク98,99の付加を表示制御部28に指示する。
【0110】
一方、読み込んだレコードの操作がスクロール操作ではない場合(S493でNO)、読み込んだレコードの経過時間とタイマー値とが一致するのを待って(S498)、CPU24は当該レコードを表示制御部28へ出力する(S499)。
【0111】
再生用のログ250の全てのレコードの出力が終わるまで(S497でYES)、ステップS492からステップS499までの処理が繰り返される。
【0112】
図27は表示制御部の動作を示すフローチャートである。
【0113】
表示制御部28は、入力制御部27からの操作イベントの通知を監視する(S281)。操作イベントが通知されると(S281でYES)、表示制御部28は、通知された操作イベントが再生用のログ250のレコードの入力であるかどうかをチェックする(S282)。再生用のログ250のレコードの入力でない場合(S282でNO)、操作パネル20を用いたリアルタイムの操作が行なわれたと判断した表示制御部28は、操作に応じた表示制御を実行する(S286)。
【0114】
ステップS282において再生用のログ250のレコードの入力であると判断した表示制御部28は、入力されたレコードの操作がスクロール操作であるかどうかチェックする(S283)。入力されたレコードの操作がスクロール操作でない場合(S283でNO)、表示制御部28はリアルタイムの操作が行なわれたときと同様に操作に応じた表示制御を実行する(S286)。
【0115】
入力されたレコードの操作がスクロール操作である場合(S283でYES)、表示制御部28は、CPU24からの指示に従ってボタン90を強調するマーク98,99を付加した画面43をボタン列70が移動するように見せるアニメーションの画像データを作成し(S284)、その画像データに基づいてスクロール表示をタッチパネルディスプレイ22行なわせる。
【0116】
以上の実施形態では、スクロール方向M1が水平方向である例を挙げたが、スクロール方向M1は垂直方向であってもよい。その場合、X座標値をY座標値に置き換えてスクロール操作が特定スクロール操作であるかどうかを判断すればよい。
【0117】
上述の実施形態において、ログ200のうちの「再生不要」と定められたレコードを除いた再生用のログ250を作成する代わりに、「再生不要」と定められたレコードに対応する画面表示の表示時間が短くなるように、レコードを修正してもよい。つまり、「再生不要」とされた操作を早送りする形でログ200を再生するようにしてもよい。例えば、「再生不要」と定められたレコードの示す操作がフリックである場合、レコードにおけるその他の属性205として記録されている速度を元の値よりも大きい値に変更する。これにより、元と比べて速いフリックが行なわれたかのように素早くボタン列70の動くスクロール表示が行なわれる。フリックに対応する表示時間が短くなる分だけ、その後のレコードに応じた表示を開始する時期が早まるように、当該その後のレコードの経過時間を変更すればよい。
【0118】
上述の実施形態において、特定スクロール操作と判定されたスクロール操作が、ボタン
90が表示面220内に表示された状態で開始され、かつ当該ボタン
90を表示面220から消失させない操作である場合、スクロール操作に対応したレコードを再生用のログ250に記載することによって、当該スクロール操作に応じた表示を省略しないようにすることができる。
【0119】
上述の実施形態では、特定スクロール操作以外のスクロール操作に応じた表示を省略しない例を説明したが、ボタン90のタップといったスクロール操作以外の操作より前に行なわれたスクロール操作のうち、特定スクロール操作およびその後のスクロール操作に応じた表示を省略しまたはそれらの表示時間を短縮するようにしてもよい。例えば、
図25のフローのステップS592のチェック結果がモード1である場合、ステップS594へ進む代わりに、対象リスト300における注目しているレコードから末尾の1つ前のレコードまでの解析結果を「再生不要」とする処理を行なった後、直ちに
図24のフローに戻ればよい。
【0120】
また、スクロール操作以外の操作より前に行なわれたスクロール操作のうち、1回目の特定スクロール操作については表示の省略および時間短縮を行なわず、2回目の特定スクロール操作およびその後のスクロール操作に応じた表示を省略しまたはそれらの表示時間を短縮するようにしてもよい。
【0121】
さらに、再生の判定モードがモード1またはモード2であって、特定スクロール操作が行なわれてもそれについて表示の省略および時間短縮を行なわない場合に、当該特定スクロール操作の後のスクロール操作に応じた表示を省略しまたはその表示時間を短縮するようにしてもよい。
【0122】
ログ200,250のレコードの項目は例示に限らず、適宜変更することができる。例えば、経過時間に代えて操作イベントが発生した時刻を記録するようにしてもよい。
【0123】
リムーバブルメモリ3として、SDカード、コンパクトフラッシュ(登録商標)、メモリスティックなどの半導体メモリおよび磁気カードといったUSBメモリ以外の媒体を利用するようにMFP1,4を構成することができる。
【0124】
操作のイベント情報をログ200として記録する代わりに、操作を記録するときに表示された画面の変遷を動画として記録しておき、この動画を再生する際に特定スクロール操作に対応する部分を省略または早送りするようにしてもよい。