Uncaught ReferenceError: $ hxClasses не определен в проекте Haxe js - PullRequest
0 голосов
/ 23 февраля 2012

У меня возникла проблема, которую я обсуждал на канале Haxe IRC, но не смог найти решение.Кажется, это ошибка в компиляторе.

Вот код Haxe:

package;

import js.Lib;
import js.three.Three;
import haxe.Timer;

class Main {    

    public var timer:Timer;
    public var renderer:WebGLRenderer;
    public var scene:Scene;
    public var camera:PerspectiveCamera;

    public function new() {

        timer = new Timer(30);

        var w = Lib.window.innerWidth;
        var h = Lib.window.innerHeight;

        scene = new Scene();

        // create a red cube
        var material = new MeshLambertMaterial({color:0xff0000});
        var geometry = new CubeGeometry(50, 50, 50, 1, 1, 1, material, null);
        var cube = new Mesh(geometry, new MeshFaceMaterial());
        cube.position.set(0, 100, 0);
        scene.add(cube);
        // add some light
        var pointLight = new PointLight(0xffffff, 1, 0);
        pointLight.position.set(10, 50, 130);
        scene.add(pointLight);
        // and a camera
        camera = new PerspectiveCamera(70, w/h, 1, 1000);
        camera.position.z = 500;
        scene.add(camera);
        // setup renderer in the document
        renderer = new WebGLRenderer(null);
        renderer.setSize(w, h);

        Lib.document.body.appendChild(renderer.domElement);

        untyped Lib.window.onload = onLoad;
    }

    public function onLoad() {

        timer.run = function(){

            renderer.render(scene, camera, null, null);
        }
    }


    public static function main() {
        new Main();
    }


}

Решение состоит в том, чтобы заставить компилятор добавить следующее в начало файла JS, которыйэто создает.

var $_, $hxClasses = $hxClasses || {},

В нынешнем виде первая строка в файле JS выглядит следующим образом:

$estr = function() { return js.Boot.__string_rec(this,''); }

Не уверен, что нужно сделать, чтобы исправить это или возможный обходной путь, отличный отдобавить в эту строку вручную после компиляции?

1 Ответ

1 голос
/ 23 февраля 2012

Обнаружена проблема - в файле three.js есть файлы Date.hx и Timer.hx (более старые версии), удалите их, и это работает (при моей установке win он находится в каталоге c: \ Motion-Twin \ haxe \ lib \ three,js \ 0,2,46 \ и c: \ Motion-Twin \ haxe \ lib \ three, js \ 0,2,46 \ haxe)

...