Hope is a Dream. Dream is a Hope.

非公開ブログは再開しました。

スライドショーに使うコメント用テキストファイルを読み込む

さて、前回は結婚式用のスライドショーを作成するスクリプトを作るために、画像をフッテージに読み込ませる方法を書きました。 今回は、それぞれの画像につけるコメントを事前に準備したテキストファイルから読み込む方法を紹介します。

まずはテキストファイル(ここではmessage.txt)を読み出す関数はこちらです。 このmessage.txtは、各行がスライドショーの各ページに対応しています。なので、30ページ(写真30枚)であれば、30行のテキストファイルになっていて、各行毎にページのコメントが書かれています。

message.txt

1: 結婚おめでとう
2: 私たちの思い出の場所..
3: 旅行もたくさん言ったね♡
4: ....

30: いままでありがとう♡これからもお幸せに♡

しかしこのmessage.txtには問題がありま。message.txtへは各画像へのコメントを一行毎に書いているのですが、これだと、「任意の場所で改行が指定できない」といった問題がありました。つまり、「11: 高校生時代 (改行) いつも楽しかったね♡」みたいに、二行に配置したいという要望は多くあります。そこで、message.txtの一行に改行を指示するために%nというおまじないを配置して、後で改行コードに置換する事にしました。

message.txt

29: ....
30: いままでありがとう♡ %n これからもお幸せに♡
改行したい場所に%nをいれる。

下が、message.txtから各行ごとにコメントを読み込みながら、%nを改行コードに置換するプログラムです。 ほとんどおまじないないで、置換する処理は1行だけです。

// テキストファイルのインポートとパース関数
//***********************************************//
var parseTextFile = function(PATH){
    var fileObj = new File(PATH);
    var txt_List = [];
    var line=1;
    if (fileObj.open("r")){
        while(!fileObj.eof){
            var s = fileObj.readln();
            txt_List[line] = s.split("%n").join(String.fromCharCode(13));
            line++;
        }
        fileObj.close();
    }else{
        alert("parseTextFile::ERROR::ファイルがひらけませんでした::"+PATH);
    }
    return txt_List;
}

あとは、message.txtへのパスを指定して先ほどのparseTextFileを呼び出します。

// Open Message text file
var LOCAL_PATH_MSG_TXT = "/msg/message.txt";
var msg_txt_List = parseTextFile(PATH_MSG_TXT);

受け取った、`msg_txt_list[]'は配列になっていて、各要素にmessage.txtの各行のコメントが格納されています。あとは、このコメントと画像をスライドショーページ用のコンポジションに配置するだけです。