2015-07-04 24 views
5

Uso il targeting Haxe Javascript.Utilizzare le classi API Haxe in modo esplicito

Ho un pacchetto (definito come extern), "phaser", che contiene una classe Math insieme a molte altre. Io uso import phaser.*; all'inizio dei miei file perché uso molte classi da questo pacchetto e non voglio anteporre loro tutti con phaser..

Vorrei utilizzare the Math class from Haxe API, ma se cerco di usarlo (es Math.random()), il compilatore pensa che io voglio usare phaser.Math e mi dice non v'è tale funzione in esso.

Posso esplicitamente scrivere che voglio usare HaxeMath classe e non phaser.Math?

ho provato haxe.Math ma senza fortuna ...

Grazie in anticipo

risposta

4

provare

import Math as HaxeMath; 

quindi utilizzare HaxeMath. * Invece di matematica. *

nota, niente di speciale sul nome HaxeMath, si potrebbe fare

import Math as Freddy; 

quindi utilizzare Freddy * invece di matematica *:.. P

+0

Grazie! Anche 'importa Math;' funziona e concede una priorità più alta a haxe 'Math' su Phaser's, non pensavo che avrei dovuto importarlo ... – YannP

+0

lol - Non ci avevo nemmeno pensato di farlo !! –

4

due modi per risolvere esso:

  1. Usa std.Math. per esempio. std.Math.floor(1.1); o typedef HxMath = std.Math; o
  2. Aggiungere import Math as HxMath; prima del import phaser.*;. Se stai utilizzando una versione di haxe precedente alla 3.2, utilizza in anziché as, ad esempio import Math in HxMath;.
+0

Grazie, std.Math è esattamente quello che stavo cercando. Non appare nel completamento automatico ... – YannP