|
2 | 2 | <script src="../../node_modules/scratch-vm/dist/web/scratch-vm.js"></script> |
3 | 3 | <script src="../../node_modules/scratch-storage/dist/web/scratch-storage.js"></script> |
4 | 4 | <script src="../../node_modules/scratch-svg-renderer/dist/web/scratch-svg-renderer.js"></script> |
| 5 | + <script src="../helper/page-util.js"></script> |
5 | 6 | <!-- note: this uses the BUILT version of scratch-render! make sure to npm run build --> |
6 | 7 | <script src="../../dist/web/scratch-render.js"></script> |
7 | 8 |
|
|
17 | 18 | window.devicePixelRatio = 1; |
18 | 19 | const gpuCanvas = document.getElementById('test'); |
19 | 20 | var render = new ScratchRender(gpuCanvas); |
20 | | - var vm = new VirtualMachine(); |
21 | | - var storage = new ScratchStorage(); |
| 21 | + var vm = initVM(render); |
22 | 22 |
|
23 | | - vm.attachStorage(storage); |
24 | | - vm.attachRenderer(render); |
25 | | - vm.attachV2SVGAdapter(new ScratchSVGRenderer.SVGRenderer()); |
26 | | - vm.attachV2BitmapAdapter(new ScratchSVGRenderer.BitmapAdapter()); |
27 | | - |
28 | | - document.getElementById('file').addEventListener('click', e => { |
29 | | - document.body.removeChild(document.getElementById('loaded')); |
30 | | - }); |
31 | | - |
32 | | - document.getElementById('file').addEventListener('change', e => { |
33 | | - const reader = new FileReader(); |
34 | | - const thisFileInput = e.target; |
35 | | - reader.onload = () => { |
36 | | - vm.start(); |
37 | | - vm.loadProject(reader.result) |
38 | | - .then(() => { |
39 | | - // we add a `#loaded` div to our document, the integration suite |
40 | | - // waits for that element to show up to assume the vm is ready |
41 | | - // to play! |
42 | | - const div = document.createElement('div'); |
43 | | - div.id='loaded'; |
44 | | - document.body.appendChild(div); |
45 | | - vm.greenFlag(); |
46 | | - setTimeout(() => { |
47 | | - renderCpu(); |
48 | | - }, 1000); |
49 | | - }); |
50 | | - }; |
51 | | - reader.readAsArrayBuffer(thisFileInput.files[0]); |
| 23 | + const fileInput = document.getElementById('file'); |
| 24 | + const loadFile = loadFileInputIntoVM.bind(null, fileInput, vm, render); |
| 25 | + fileInput.addEventListener('change', e => { |
| 26 | + loadFile() |
| 27 | + .then(() => { |
| 28 | + vm.greenFlag(); |
| 29 | + setTimeout(() => { |
| 30 | + renderCpu(); |
| 31 | + }, 1000); |
| 32 | + }); |
52 | 33 | }); |
53 | 34 |
|
54 | 35 | const cpuCanvas = document.getElementById('cpu'); |
|
0 commit comments