面白いから作る! PCホビイストの開発体験談Windows Liveが魅せる次世代マッシュアップ(4/6 ページ)

» 2006年12月25日 08時00分 公開
[川俣晶,ITmedia]

 もちろん、変数btnPrevやbtnNextに値が入った後に挿入しなければならない。doAttachEventメソッドの第1引数はイベントを登録するオブジェクト、第2引数はイベント名、第3引数はイベント発生時に呼び出されるべきメソッドである。


doAttachEvent(btnPrev, "click", channelPrev);
doAttachEvent(btnNext, "click", channelNext);

 ここでは、channelPrev, channelNextというメソッドがまだ存在しないため、改めて記述する必要がある。両者で共通に使われる機能は、別途channelChangeメソッドを作ってまとめておこう。

 処理内容は、要するに変数m_feedSelectの値を増減し、それに応じてチャンネルのタイトルとURLを差し替えているだけである。


function channelChange()
{
	m_channelNameEl.innerText = " *** " + m_feedList[m_feedSelect].name + " *** ";
	m_feedUrl = m_feedList[m_feedSelect].url;
	GetFeed();
}
function channelPrev()
{
	m_feedSelect--;
	if( m_feedSelect < 0 ) m_feedSelect = m_feedList.length-1;
	channelChange();
}
function channelNext()
{
	m_feedSelect++;
	if( m_feedSelect >= m_feedList.length ) m_feedSelect = 0;
	channelChange();
}

 以上の書き換えを行ってからブラウザをリロードし、ボタンをクリックするとエラーが起きてしまうはずだ。サンプルソースに、ClearFeedという存在しないメソッドの呼び出しが含まれるためだ。

 ClearFeedメソッドの呼び出しは、コメントアウトしておこう。


//ClearFeed();

 そして実行させてみると、リロードしても同じ画面しか出てこない。初期化の時に適切なフィードを指定するコードをまだ入れていないためだ。しかし、イベント処理のコードは既に入っているため、矢印ボタンをクリックすると、タイトルが書き換わり、新しいフィードが追加される具合だ。

画面3■ボタンをクリックすると名前が「特集」に変わり、特集のフィードが追加されている

 ここまで来れば、残された作業は難しくないだろう。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ