■ページからのブックコントロール

AD-BOOKはHTMLのページが使えます。そのため画像ページとは比較にならないほどの様々な機能が実現できます。例えばページからAD-BOOK自体の制御を行うことができれば、制作者の意図に沿って自由にページ移動や様々な効果等を付加することができるわけです。AD-BOOKはそれ自体がブラウザの持つスクリプト言語を利用して作られていると書きましたが、その延長線で電子ブックを作りたいユーザーも同じようなことが可能になるのです。それを簡単に実現するために、一部のAD-BOOKには専用のコマンドAI(AD-BOOK Instructions)を用意しています。余談ですが、Javascriptpの知識があればユーザーでもコマンドを追加することができるので、その気になれば更に進んだブックコントロールも実現できます。

コントロールの中で最も汎用性が高いと思うのは、ページ移動コマンドです。主に文章中の言葉の意味等を参照するために利用するもので、ホームページのリンクと同じ機能だと考えれば理解しやすいと思います。AD-BOOKでは自身がインタープリターとして機能することで、用意したコマンドを解釈して実行します。例えばコマンドを記述したHTMLドキュメントの該当部分をクリックすることで、AD-BOOKのページ移動機能が動作するわけです。実を言うとリンクはホームページと同じように記述しても動作はします。しかし、AD-BOOKは独自にページを管理しているため、単なるリンクではブック管理状況と一致しなくなるのです。そうなると電子ブックとしての動作に破綻を来たして読者が混乱する結果になります。それを回避するためにもコマンドを使うわけです。コマンドは下記の形式で記述するようになっていて、命令自体はJavascriptそのものの記述です。従って、記述するのはJavascript用のタグの間になります。
parent.ctl.parm[0] = "コマンド番号";
parent.ctl.parm[1] = "第1パラメータ";
parent.ctl.parm[2] = "第2パラメータ";
parent.ctl.AI();

コマンドによってはパラメータを必要としなかったり1つだけの場合があります。コマンド番号はediaの場合、1~20用意しています。ページ移動関係の他に、BGMや背景色、動作モードの変更等を実現します。また、インターラクティブの機能を実現するため、ページからAD-BOOKの様々な変数値を取得するためのコマンドも別にあります。実際にコマンドを実行するのは最後の記述です。例えば2章の10ページに移動するためには、第1パラメータに2を、第2パラメータに10をセットします。任意のページ移動の場合、コマンド番号は15です。
parent.ctl.parm[0] = "15";
parent.ctl.parm[1] = "2";
parent.ctl.parm[2] = "10";
parent.ctl.AI();

コマンドが実行されると、AD-BOOKは目的のページをメインウインドウのページエリアに表示します。コマンドの詳細はediaのマニュアルを見た方が早いので、興味ある方は参照して下さい。なお、マニュアルは古い技術で作られているため、サウンド機能は動作しません(基本的にはIE6または7以外の閲覧を推奨しません)。それ以外はIE11(Windows7)でも一応の動作は確認しています。

AD-BOOK「edia」のマニュアル

コマンドを使うことで、BGMを操作したり自動ページ送り時間を変更したりと色々なことができます。ページにHTMLを使えると言うことは、読者とのインターラクティブなコンテンツを余すことなく表現できる可能性を秘めているわけです。以前に実際に実装した例ですが、ページでおみくじを引いたり、人工知能に似せた応答システムを実現したりと、自分自身の実験の場としても色々な試みをしました。また、読者の指示でアニメーション動作をするのも1つの応用と言えます。本サイトでもメモリアルコンテンツ(SITE-0)の中に一部を再現していますが、元々はAD-BOOKで作った電子ブックの中で表現したものです。大体において一般の電子書籍ではこういったコンテンツは実現できません。基本的には紙の本の延長に過ぎないため、そもそもそういった機能を実現する発想が無いからです。実際にはepub形式ではHTMLのページが使えることから、ページに全てのアクティブ要素を詰め込んでJavascriptで実行させることはできるかもしれません。ただし、あくまでもブックリーダーがブラウザと同じJavascriptの機能を実装していた場合の話です。たとえ機能を実装していたとしても、ブックリーダーそのものにAD-BOOKのような拡張機能は用意されていませんから、実現できたとしても全て自分で1から作らねばなりません。これはブックリーダーを自身で作ることに等しく、ほぼ不可能と考えた方が良いでしょう。従って、現在のepub形式の電子書籍をもってしても、AD-BOOKのような高機能なリーダーにはならないと思います。