ã ã„ã¶é–“ãŒç©ºã„ã¦ã—ã¾ã„ã¾ã—ãŸãŒã€HTML5を使ã£ã¦ã©ã“ã¾ã§ã‚¹ãƒžãƒ›ã‚¢ãƒ—リãŒä½œã‚Œã‚‹ã®ã‹ã€æŒ‘戦ã—よã†ã¨é€²ã‚ã¦ã„ã¾ã™ã€‚ã—ã‹ã‚‚ã€ãƒ•ãƒ«ã‚ャンãƒã‚¹ã§ã€‚
é¡Œæã¯RSSリーダーã§ã™ã€‚RSS Pipesã®è£œå®Œæ©Ÿèƒ½ã¨ã—ã¦è€ƒãˆã¦ã„ã¾ã™ã€‚
å‰å›žã¯Hellow Worldを表示ã™ã‚‹ã¨ã“ã‚ã¾ã§ã§ã—ãŸã€‚今回ã¯ã€RSSã‚’å–å¾—ã—ã¦ãƒ†ã‚スト表示ã—ã¦ã¿ã¾ã—ãŸã€‚ãŸã ã—ã€ã¾ã スクãƒãƒ¼ãƒ«ã§ãã¾ã›ã‚“。当然クリックもã§ãã¾ã›ã‚“。
RSSã¯jQueryを使ã£ã¦èªã¿è¾¼ã‚€ã“ã¨ã«ã—ã¾ã—ãŸã€‚コードã¯ã“ã‚“ãªæ„Ÿã˜ã§ã™ã€‚
$.ajax({
type: 'GET',
url: rssurl,
dataType: 'xml',
success: function(xml) {
var $xml = $(xml);
var items = [];
$xml.find("item").each(function() {
var $this = $(this);
var item = {
title: $this.find("title").text(),
link: $this.find("link").text(),
description: $this.find("description").text(),
pubDate: $this.find("pubDate").text()
};
items.push(item);
});
updateRssContent(items);
},
error: function() {
alert('failed to get the rss: ' + rssurl);
}
});
updateRssContent()
ã§ã‚ャンãƒã‚¹ã«ã‹ãã¾ã™ãŒã€åº§æ¨™ã‚‚自分ã§è¨ˆç®—ã—ãªã„ã¨ã„ã‘ã¾ã›ã‚“。
function updateRssContent(items) {
$.each(items, function(index, item) {
var text = new Kinetic.Text({
x: 5,
y: 5,
text: item.title,
fontSize: 12,
fontFamily: 'Arial',
fill: '#aaaaff'
});
text.setOffset({
y: -index * (text.getHeight() + 5)
});
layer.add(text);
});
layer.draw();
}
setOffset
を使ã†ã‚ˆã‚Šã„ã„方法ãŒã‚ã‚‹ã®ã§ã¯ãªã„ã‹ã¨æƒ³åƒã—ã¾ã™ãŒã€ã¾ã 探ã—ã¦ã„ã¾ã›ã‚“。
実行çµæžœã¯ã“ã‚“ãªæ„Ÿã˜ã§ã™ã€‚
最新版ã¯herokuã§ã‚‚実行å¯èƒ½ã§ã™ã€‚
http://canvas-rss-reader.herokuapp.com/
今回ã¯ã€GitHubã«ã‚³ãƒ¼ãƒ‰ã‚’アップã—ã¾ã—ãŸã€‚
https://github.com/dai-shi/canvas-rss-reader/tree/42ddd815e88304c6217c8c5f9f978d97c39fc34a
ãã†ã€ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆåã‚‚canvas-rss-readerã«ã—ã¾ã—ãŸã€‚
ã—ã‹ã—ã€ã‚ャンãƒã‚¹ã‚’使ã†ã¨ã‚ãŸã‚Šã¾ãˆã§ã™ãŒæ–‡å—列é¸æŠžãŒã§ããªã„ã§ã™ã。JavaScriptã§ã‚¯ãƒªãƒƒãƒ—ボードã£ã¦åˆ¶å¾¡ã§ãã‚‹ã®ã§ã—ょã†ã‹ã€‚
http://www.w3.org/TR/clipboard-apis/
ã“ã®ã‚ãŸã‚Šã‚’ウオッãƒã™ã‚‹ã“ã¨ã«ãªã‚‹ã®ã§ã—ょã†ã‹ã€‚