2015-07-04 6 views
5

Ich benutze Haxe Targeting Javascript.Verwenden Sie Haxe API Klassen explizit

Ich habe ein Paket (definiert als extern), "phaser", das eine Math Klasse zusammen mit vielen anderen enthält. Ich benutze import phaser.*; am Anfang meiner Dateien, weil ich viele Klassen aus diesem Paket verwende und ich möchte nicht alle mit phaser. vorangestellt werden.

Ich mag the Math class from Haxe API verwenden, aber wenn ich versuche, es zu verwenden (z Math.random()), der Compiler denkt, dass ich phaser.Math verwenden will, und sagt mir, es in ihm keine solche Funktion ist.

Kann ich schreibe ausdrücklich, dass ich HaxeMath Klasse verwenden möchten, und nicht phaser.Math?

Ich habe haxe.Math versucht, aber kein Glück ...

Vielen Dank im Voraus

Antwort

4

versuchen

import Math as HaxeMath; 

dann HaxeMath verwenden. * Statt Math. *

Note, nichts besonderes über den Namen HaxeMath, könnten Sie

tun

dann Freddy verwenden * statt Math *:.. P

+0

Danke! Sogar 'import Math;' funktioniert und räumt haxe 'Math' höhere Priorität ein als Phaser's, ich dachte einfach nicht, dass ich es importieren müsste ... – YannP

+0

lol - Ich habe nicht einmal daran gedacht, das auch zu machen !! –

4

Zwei Möglichkeiten, um es zu lösen:

  1. Verwendung std.Math. z.B. std.Math.floor(1.1); oder typedef HxMath = std.Math; oder
  2. Fügen Sie import Math as HxMath; vor import phaser.*; hinzu. Verwenden Sie in anstelle von as, d. H. import Math in HxMath;, wenn Sie eine haxe-Version früher als 3.2 verwenden.
+0

Danke, std.Math ist genau das, was ich gesucht habe. Es erscheint nicht in Autovervollständigung ... – YannP

Verwandte Themen