Mã HTML: 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Show Object</title>
    <link rel="stylesheet" href="style.css">
</head>

<body>

    <div id="screen"></div>
    <div class="panel"></div>
    <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
    <script type="module">

        import * as THREE from './jsm/three.module.js';
        import { Helper, createClass } from './js/modules/helper.js';
        import App from './js/app.module.js';

        // tạo class kế thừa từ class App
        // có thể dùng var Damaged = createClass('Damaged', false).extends(App); khi này sẽ không tạo biến trong window
        createClass('Demo').extends(App)({
            // khai báo các thuộc tính hoặc phương thức
            version: 1
        });

        // lấy file json từ url
        var json = Helper.request.queryString("file") || "demo-001.json";

        // load file
        Helper.api.get(json)
            .then(res => {
                // load thành công sẽ tạo đối tượng Demo
                // gán theo vào option selector
                res.selector = "#screen";

                var demo = new Demo(res);
                // phần này không cần
                demo.on('ready', function () {
                    var scene = this.scene, renderer = this.renderer;
                    var model;
                    var self = this;
                });

            })
            .catch(err => {
                console.log(err);
                Helper.query("#screen").append("<h2>Lỗi không xác định</h2>")
            })


    </script>


</body>

</html>
    

 

File JSON: http://demo.vcc.vn/threejs/demo-003-model.json