2012-02-23 76 views
0

我遇到了一个我在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,''); } 

不知道需要做些什么来解决这个问题或可能的解决办法除了在该行加入编译后手动?

+0

问题在于haxe.Timer类。最小的非功能性示例 - http://pastebin.com/AxXF0CwC – 2012-02-23 16:15:37

+0

对不起,我还在工作。我想说的是,如果您导入Timer并使用three.js库进行编译,那么它与代码无关。在那。 – 2012-02-23 16:27:35

+0

它也适用于其他方式。删除计时器,你会得到它(只是一次;) – 2012-02-23 16:29:41

回答

1

发现这个问题 - three.js有它的Date.hx和Timer.hx文件(旧版本)删除它们,它的工作原理(我赢了安装它在C:\ Motion-Twin \ haxe \ lib \三,js \ 0,2,46 \和c:\ Motion-Twin \ haxe \ lib \ three,js \ 0,2,46 \ haxe)

+0

只是添加一些更多的信息 - 这将导致一些问题,因为这些修改后的文件是有目的的(请参阅https://github.com/labe-我/ haxe-three.js) – 2012-02-23 16:39:58

相关问题