#ズンドコキヨシをEPUBで
みなさんズンドコってますかー。だいぶ極まって変態(褒め言葉)実装がいろいろ出てきていて楽しいです。
さて、ちょっとQiita向けではないネタかもしれませんが、総本山なのでここに投稿しますね。
今回のネタは、EPUBです。電子書籍のファイルのアレです。
まずは、オンラインのブラウザビュアー(BiB/i)で見ていただきましょう。
epubファイルのダウンロードはこちらから。お好きなEPUBビュアーでご覧ください。
iPhoneのiBooksでの表示例です。
「ズンズンズンズンドコ」と遷移すると、「キ・ヨ・シ」ページが現れます。
#仕組み
仕組みも何もないのですが、往年のゲームブック形式にページを移動していって、ズンドコキヨシ遷移を実現するということです。本もページという状態を持ち、読者のページ選択によって状態が遷移するコンピュータであると言っても過言ではありませんw。
EPUBはjavascriptによるインタラクティブな動作を組み込むことができます。このEPUBでは、javascriptが動作する場合は、次のページをランダムで移動するリンクが追加されるようになっています。
その部分のコードはこんな感じで、各ページのxhtmlにincludeされてます。
var sel ;
onload = function() {
var ul = document.getElementById('sel') ;
sel = ul.querySelectorAll("a") ;
var n = document.createElement("li") ;
n.innerHTML = '次は <a href="javascript:click()">ランダム</a>' ;
ul.appendChild(n) ;
}
function click() {
var l = sel[ (Math.random()>0.5)?1:0].getAttribute("href") ;
var a = l.split("/") ;
l = a[a.length-1] ;
location.href = l ; ;
}
現在のところ動作するのを確認できているのは、ブラウザ系のビュアーと、iBooksだけです。