2011年7月11日

デジタル教科書のかたち

デジタル教科書...とはということは今日は書くのをやめて

デジタル教科書に絶対必要な構造は,後から教材が組み込めることだと思っている.

日本の教科書は検定制度に縛られている.
デジタル教科書になったとき,この制度が変わるかもしれないが,
現状ではこのしばりを想定外にすることは無理がある.

検定制度がある以上,デジタル教科書に最初からあらゆる教材が組み込まれていることは想像し難い.
あらゆる教材を検定するなんて無理だからである.
また,最初に組み込まれた教材しか呼び出せないデジタル教科書なんでつまらない.
世の中にはすぐれたデジタル教材を作れる人がいっぱいいる.
その人たちの教材を組み込みたくなるのは当然である.
また,自分で作った教材を組み込めないのもおかしい.
紙を使う必要のないちょっとしたプリントも,
デジタル教科書上で動かせることは,デジタル教科書の意義を高めるはずである.

そうなると,

  • 教科書と最低限の教材が組み込まれたものが配布される
  • いろいろな出版社等が様々な教材を配布,販売
  • 教育委員会や学校,もしくは先生が選び,それを組み込める
  • さらには,先生が作った教材も日々組み込める

という形がよいと考えている. 

それをカタチにすることを学生にやらせているのだが,
とりあえずおおざっぱなことができるかどうかを試してみた.

環境は,PDF + Adobe Acrobat
このままデジタル教科書の基盤にするというレベルは無理だったが,
自分のイメージを表現することはできた.

kitutuki.jpg

何ページのこの辺をクリックすると,ポップアップメニューが出てきて,
そのメニューをえらぶと,画像が表示されたり,webページが表示されたり,
というのを,テキストファイルで定義できるようにできた...ってこと.
めでたしめでたし. 

以降は仕組みの覚書...

 

データファイルはPDFのセキュリティ上,ファイル名を指定できないようだ.
仕方ないので,PDFファイルを開いたときに指定する.
これでは小学生用の仕組みとしては無理だなぁ...

var oPropertyName = "DBData";
importDataObject("oPropertyName");
var oFile = getDataObjectContents(oPropertyName);

ってすると,ファイルオープンダイアログが開く.
ユーザが指定したファイルは添付ファイルとして取り扱われ,
oFile オブジェクトでアクセスができるようになる.

ちなみに,これらのコードは,あるページ(まぁ,トップページだろう)が
開かれたときに実行されるようにするのだが,
そのページが開かれるたびに, リンクが追加されるとまずいので,
なんらかのチェック機構が必要.
また,PDF を閉じたときに保存することにすると,
二回目以降にもすべてのリンクを追加すると,
二重登録になってしまうので,こちらもチェックする機構が必要. 

さて,ファイルが使えるようになったお次は,

var sContents = util.stringFromStream(oFile, "utf-8");
var aContents = sContents.split("\r\n");

ってすると,1行1行が,配列 aContents の1要素1要素に入るので,
あとはこれを解析するだけ.

リンクは,

var lhLink = this.addLink( linkPage, [ x1, y1, x2, y2 ] );
lhLink.borderColor = color.red;
lhLink.borderWidth = 1;
lhLink.setAction( script );

ってするだけではれちゃう.簡単だ.
あとは,このリンクがクリックされた時の動作を script に書けばよいだけで,
その内容は,

var cItem = app.popUpMenu("画像","動画");
if( cItem == "画像" ) app.launchURL("~.jpg");
if( cItem == "動画" ) app.launchURL("~.mov");

みたいにすれば,ポップアップメニューが出ちゃう.
わかれば簡単なことだが,いやぁ,夜中になってしまった... 

ただ,これだと,別のウィンドウとしてブラウザが立ち上がり,
教材が表示されることになる.やはり,こんなインタフェースではだめであろう.

さて,今後の学生にやらせる研究は,
Acrobat と同じリンク情報を埋め込むJavaScriptを動かす 
PDF Viewer なんて作れないと思われるので...

  • PDF ファイルとリンク情報テキストデータから,PDFファイルを作る

っていうことになるのかな?
ただ,教材の表示コントロールなどのインタフェースをしっかり作らなくてはならないので,
最終的には PDF Viewer を作ることになる.その際,ポップアップメニューを生成する
ようなセキュリティレベルの低いJavaScriptは動かす必要がある.
そんなViewerを作るためのライブラリはあるだろうか....

 

 

var oPropertyName = "DBData";
importDataObject("oPropertyName");
var oFile = getDataObjectContents(oPropertyName)var oPropertyName = "DBData";
importDataObject("oPropertyName");
var oFile = getDataObjectContents(oPropertyName);