问题
I use Haxe targeting Javascript.
I have a package (defined as an extern), "phaser", that contains a Math class along with many others.
I use import phaser.*; at the beginning of my files because I use many classes from this package and I don't want to prefix them all with phaser..
I would like to use the Math class from Haxe API, but if I try to use it (e.g Math.random()), the compiler thinks I want to use phaser.Math and tells me there is no such function in it.
Can I explicitly write that I want to use Haxe Math class and not phaser.Math ?
I've tried haxe.Math but no luck...
Thanks in advance
回答1:
Try
import Math as HaxeMath;
then use HaxeMath.* instead of Math.*
Note, nothing special about the name HaxeMath, you could do
import Math as Freddy;
then use Freddy.* instead of Math.*. :p
回答2:
Two ways to solve it:
- Use
std.Math. e.g.std.Math.floor(1.1);, ortypedef HxMath = std.Math;, or - Add
import Math as HxMath;beforeimport phaser.*;. If you're using a haxe version earlier than 3.2, useininstead ofas, i.e.import Math in HxMath;.
来源:https://stackoverflow.com/questions/31222219/use-haxe-api-classes-explicitly