質問編集履歴

1

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

2020/02/27 23:36

投稿

kalon
kalon

スコア198

test CHANGED
File without changes
test CHANGED
@@ -103,3 +103,205 @@
103
103
  スタイルシート、javascriptをhtml内に記述するとpaper.js自体がインポートされていないようなのですが、
104
104
 
105
105
  どういった理由で上記エラーが出力されるのかわかりません。
106
+
107
+
108
+
109
+
110
+
111
+ ###教本のソースコード
112
+
113
+ 結論から申し上げますと、質問者である私の記述ミスでした。教本の書き方がコードの一部抜粋だったので、その抜粋だけを上記コードに書いてしまったので動かなかったということです。
114
+
115
+
116
+
117
+ しかし、疑問が残ります。上記コードではCDNからpaper.jsをロードして、```tool = new Tool()```を行っています。それで```Tool is not defined```エラーが出るのはどうしてでしょうか?
118
+
119
+
120
+
121
+ ```html
122
+
123
+ index.html
124
+
125
+
126
+
127
+ <!DOCTYPE html>
128
+
129
+ <html>
130
+
131
+ <head>
132
+
133
+ <meta charset="utf-8">
134
+
135
+ <title>ex02-08-1</title>
136
+
137
+ <link rel="stylesheet" href="main.css">
138
+
139
+ </head>
140
+
141
+ <body>
142
+
143
+ <h1>最初のアプリケーション</h1>
144
+
145
+ <p>『初めてのJavaScript 第3版』へようこそ</p>
146
+
147
+
148
+
149
+ <canvas id="mainCanvas"></canvas>
150
+
151
+
152
+
153
+ <script src="https://code.jquery.com/jquery-3.0.0.min.js"></script>
154
+
155
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.10.2/paper-full.min.js"></script>
156
+
157
+ <script src="main.js"></script>
158
+
159
+ </body>
160
+
161
+ </html>
162
+
163
+ ```
164
+
165
+
166
+
167
+ ```css
168
+
169
+ main.css
170
+
171
+
172
+
173
+ #mainCanvas { /* mainCanvasのスタイルを指定 */
174
+
175
+ width: 400px; /* 幅 400ピクセル */
176
+
177
+ height: 400px; /* 高さ 400ピクセル */
178
+
179
+ border: solid 1px black; /* 実線 1ピクセルの幅 黒 */
180
+
181
+ }
182
+
183
+ ```
184
+
185
+
186
+
187
+ ```jsvascript
188
+
189
+ main.js
190
+
191
+
192
+
193
+ $(document).ready(function() {
194
+
195
+ 'use strict';
196
+
197
+ paper.install(window);
198
+
199
+ paper.setup(document.getElementById('mainCanvas'));
200
+
201
+
202
+
203
+ // #@@range_begin(list1) 本に表示されている部分の始まりを示します
204
+
205
+ let tool = new Tool();
206
+
207
+
208
+
209
+ tool.onMouseDown = function(event) {
210
+
211
+ let c = Shape.Circle(event.point.x, event.point.y, 20);
212
+
213
+ c.fillColor = 'green';
214
+
215
+ };
216
+
217
+ // #@@range_end(list1) 本に表示されている部分の終わりを示します
218
+
219
+ });
220
+
221
+ ```
222
+
223
+
224
+
225
+ ###自分のミスを訂正して、動作したコード
226
+
227
+ ```html
228
+
229
+ <!DOCTYPE html>
230
+
231
+ <html>
232
+
233
+ <head>
234
+
235
+ <meta charset="utf-8">
236
+
237
+ <title>ex02-08-1</title>
238
+
239
+ <style>
240
+
241
+ #mainCanvas { /* mainCanvasのスタイルを指定 */
242
+
243
+ width: 400px; /* 幅 400ピクセル */
244
+
245
+ height: 400px; /* 高さ 400ピクセル */
246
+
247
+ border: solid 1px black; /* 実線 1ピクセルの幅 黒 */
248
+
249
+ }
250
+
251
+ </style>
252
+
253
+ </head>
254
+
255
+ <body>
256
+
257
+ <h1>最初のアプリケーション</h1>
258
+
259
+ <p>『初めてのJavaScript 第3版』へようこそ</p>
260
+
261
+
262
+
263
+ <canvas id="mainCanvas"></canvas>
264
+
265
+
266
+
267
+ <script src="https://code.jquery.com/jquery-3.0.0.min.js"></script>
268
+
269
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.10.2/paper-full.min.js"></script>
270
+
271
+ <script>
272
+
273
+ $(document).ready(function() {
274
+
275
+ 'use strict'
276
+
277
+ paper.install(window)
278
+
279
+ paper.setup(document.getElementById('mainCanvas'))
280
+
281
+
282
+
283
+ // #@@range_begin(list1) 本に表示されている部分の始まりを示します
284
+
285
+ let tool = new Tool()
286
+
287
+
288
+
289
+ tool.onMouseDown = function(event) {
290
+
291
+ let c = Shape.Circle(event.point.x, event.point.y, 20);
292
+
293
+ c.fillColor = 'green'
294
+
295
+ }
296
+
297
+ // #@@range_end(list1) 本に表示されている部分の終わりを示します
298
+
299
+ })
300
+
301
+ </script>
302
+
303
+ </body>
304
+
305
+ </html>
306
+
307
+ ```