MeteorでRaphaelを使用していますが、問題が発生しました。paper
を使用して作成してvar paper = Raphael("paper", 800, 600);
いますこのコードをTemplate.board.renderedなどのレンダリングされた関数に配置すると、問題なく使用できます。ただし、このテンプレートの紙の変数は、テンプレート内から呼び出したとしても、他の関数からはアクセスできないようです。で論文を作成することでこれを回避できると思いましたがMeteor.startup
、それでも同じ問題があります。
たとえば、次のコードは機能しません。
Pieces = new Meteor.Collection('pieces');
Meteor.startup(function () {
var paper = Raphael("paper", 800, 600);
});
Template.board.rendered = function () {
// If I create the paper in here along with the contents of createGoban
// it works, but then I can't use it anywhere else...
// var paper = Raphael("paper", 800, 600);
createGoban();
};
var createGoban = function () {
// Create goban
// Based off of svg in public domain: http://commons.wikimedia.org/wiki/File:Blank_Go_board.svg
// Converted using http://readysetraphael.com/
var rect_a = paper.rect(0, 0, 96, 96);
rect_a.attr({fill: '#DCB35C','stroke-width': '0','stroke-opacity': '1'}).data('id', 'rect_a');
var path_b = paper.path("M2.9,93h90.2m-.2-5H3m0-5h90m0-5H3m0-5h90m0-5H3m0-5h90m0-5H3m0-5h90m0-5H3m0-5h90m0-5H3m0-5h90m0-5H3m0-5h90m0-5H3m0-5h90m0-5H3m-.1-5h90.2M3,3V93m5,0V3m5,0V93m5,0V3m5,0V93m5,0V3m5,0V93m5,0V3m5,0V93m5,0V3m5,0V93m5,0V3m5,0V93m5,0V3m5,0V93m5,0V3m5,0V93m5,0V3m5,0V93m5,0V3");
path_b.attr({stroke: '#000',"stroke-width": '0.2',fill: 'none','stroke-opacity': '1'}).data('id', 'path_b');
var path_c = paper.path("M18,78l0,0m30,0l0,0m30,0l0,0m0-30l0,0m-30,0l0,0m-30,0l0,0m0-30l0,0m30,0l0,0m30,0l0,0");
path_c.attr({stroke: '#000',"stroke-width": '4',"stroke-linecap": 'round','stroke-opacity': '1','fill': '#000000'}).data('id', 'path_c');
var goban = [rect_a, path_b, path_c];
// Scale goban up since rsr outputs reduced size
for(var i = 0; i < goban.length; i++) {
goban[i].transform('S5,5,0,0');
};
};