質問するログイン新規登録

質問編集履歴

1

質問者の間違いが見つかった

2020/02/27 23:36

投稿

kalon
kalon

スコア198

title CHANGED
File without changes
body CHANGED
@@ -50,4 +50,105 @@
50
50
 
51
51
  index.html, style.css, main.jsに分かれている教本通りのソースコードだと正常に動くことを確認しました。
52
52
  スタイルシート、javascriptをhtml内に記述するとpaper.js自体がインポートされていないようなのですが、
53
- どういった理由で上記エラーが出力されるのかわかりません。
53
+ どういった理由で上記エラーが出力されるのかわかりません。
54
+
55
+
56
+ ###教本のソースコード
57
+ 結論から申し上げますと、質問者である私の記述ミスでした。教本の書き方がコードの一部抜粋だったので、その抜粋だけを上記コードに書いてしまったので動かなかったということです。
58
+
59
+ しかし、疑問が残ります。上記コードではCDNからpaper.jsをロードして、```tool = new Tool()```を行っています。それで```Tool is not defined```エラーが出るのはどうしてでしょうか?
60
+
61
+ ```html
62
+ index.html
63
+
64
+ <!DOCTYPE html>
65
+ <html>
66
+ <head>
67
+ <meta charset="utf-8">
68
+ <title>ex02-08-1</title>
69
+ <link rel="stylesheet" href="main.css">
70
+ </head>
71
+ <body>
72
+ <h1>最初のアプリケーション</h1>
73
+ <p>『初めてのJavaScript 第3版』へようこそ</p>
74
+
75
+ <canvas id="mainCanvas"></canvas>
76
+
77
+ <script src="https://code.jquery.com/jquery-3.0.0.min.js"></script>
78
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.10.2/paper-full.min.js"></script>
79
+ <script src="main.js"></script>
80
+ </body>
81
+ </html>
82
+ ```
83
+
84
+ ```css
85
+ main.css
86
+
87
+ #mainCanvas { /* mainCanvasのスタイルを指定 */
88
+ width: 400px; /* 幅 400ピクセル */
89
+ height: 400px; /* 高さ 400ピクセル */
90
+ border: solid 1px black; /* 実線 1ピクセルの幅 黒 */
91
+ }
92
+ ```
93
+
94
+ ```jsvascript
95
+ main.js
96
+
97
+ $(document).ready(function() {
98
+ 'use strict';
99
+ paper.install(window);
100
+ paper.setup(document.getElementById('mainCanvas'));
101
+
102
+ // #@@range_begin(list1) 本に表示されている部分の始まりを示します
103
+ let tool = new Tool();
104
+
105
+ tool.onMouseDown = function(event) {
106
+ let c = Shape.Circle(event.point.x, event.point.y, 20);
107
+ c.fillColor = 'green';
108
+ };
109
+ // #@@range_end(list1) 本に表示されている部分の終わりを示します
110
+ });
111
+ ```
112
+
113
+ ###自分のミスを訂正して、動作したコード
114
+ ```html
115
+ <!DOCTYPE html>
116
+ <html>
117
+ <head>
118
+ <meta charset="utf-8">
119
+ <title>ex02-08-1</title>
120
+ <style>
121
+ #mainCanvas { /* mainCanvasのスタイルを指定 */
122
+ width: 400px; /* 幅 400ピクセル */
123
+ height: 400px; /* 高さ 400ピクセル */
124
+ border: solid 1px black; /* 実線 1ピクセルの幅 黒 */
125
+ }
126
+ </style>
127
+ </head>
128
+ <body>
129
+ <h1>最初のアプリケーション</h1>
130
+ <p>『初めてのJavaScript 第3版』へようこそ</p>
131
+
132
+ <canvas id="mainCanvas"></canvas>
133
+
134
+ <script src="https://code.jquery.com/jquery-3.0.0.min.js"></script>
135
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.10.2/paper-full.min.js"></script>
136
+ <script>
137
+ $(document).ready(function() {
138
+ 'use strict'
139
+ paper.install(window)
140
+ paper.setup(document.getElementById('mainCanvas'))
141
+
142
+ // #@@range_begin(list1) 本に表示されている部分の始まりを示します
143
+ let tool = new Tool()
144
+
145
+ tool.onMouseDown = function(event) {
146
+ let c = Shape.Circle(event.point.x, event.point.y, 20);
147
+ c.fillColor = 'green'
148
+ }
149
+ // #@@range_end(list1) 本に表示されている部分の終わりを示します
150
+ })
151
+ </script>
152
+ </body>
153
+ </html>
154
+ ```